C++とJava。

 今日の飲み会とかさっき送ったメールとかで「これまでの経歴」を振り返ると、C++ VS Java 的せめぎ合いが自分の中にあるなぁと感じたり。
 ここ2年ほど Java べったりで、おしごとでもやってるしかぶスタのツッコミシステムも Java でやってるし、かぶスタドメイン移行時のツールも Java で作ったしでなにげに Java づくし。
 とにかく Java はライブラリがすごく強力で、なぜにこれの C++ 版がないのかと思うことしきり。頭の中でプログラムの実装をイメージした時に、 C++ で作るとなると「がーっ、あれとあれとあれは自分で実装しなきゃいけないのか!!」って思っちゃうんでそうなると現実的に C++ で作るのがかなりおっくうに(汗)。


 ……それでも、結構付き合ってるのに、 Java ってものを信頼しきれないです。
 わては元々「コンパイルタイム原理主義者」なんで、コンパイル時に解決できるものはできるだけコンパイル時に解決する、が基本だし、それ故に Java のキャストしまくりコードや Object スーパークラスの総称的使い回しやリフレクションやらはかなり嫌い。
 現に今やってるプロジェクトはPR層から渡された型が違って ClassCastException 、 ArrayList の第1引数に Integer 第2引数に String 第3引数に BigDecimal 入れて返してくるし、挙げ句にテーブル内の文字列からプロパティファイルを見てその中の文字列でクラス名を動的決定とかゆーへんてこな設計とかしてくるし。
 いやもちろん C++ でもこの辺のことはできるんだけど、 Java は簡単にできちゃい過ぎるし、多人数で実装を行ってスキルが均等化してないと変なことをあっさりされて死ねるのがまずいわけで。
 ……あーでも C++ でも起きる時は起きるか。っつーか C++ って書ける人少ないんで作る時はわてひとりってのがほとんどだった(爆)。
 なんか Java に対する自分の実感と、 Java の敷居の低さ&自由度の高さによる問題点のイメージがごっちゃになってるな。たとえ自分ひとりで作ったとしてもやっぱ Java への信頼度は微妙だ……何が原因なのかな……。


 ただ、何を言おうとやっぱ Java に傾いているのは当然かなぁとは思ったりも。たとえば、コンパイル時の解決を重視してもそれはセキュリティの高さは担保していなくて、むしろ「ランタイムにアプリを監視する」という点で生の Exe よりも安全というメリットは重要視すべきだと思うし。


 あーとりとめなくなっちゃったな。もう4時だし寝よう。
 ……感覚的に、 C++ は硬くて、 Java はふにょっとしてる、って感じてる。その差を枕に寝るとしますか……。