今日は久々にコンピュータのお話でも。(ぜんぜんSE的じゃないって指摘が多いのでw)実は最近、会社の研修でJAVAを使っております。学生時代にちょっとかじって、その融通の効かなさに閉口し、すぐさまC++へと逃げてしまったわけですが、ここでまた出会ってしまいました。さて、そんなJAVAですが今回研修で使ってみて思ったこと・・・。

「俺の背中から翼の折れる音がする」

 ・・・コンパイラ厳しすぎ!JAVAはメモリ管理がかなり厳しいので、コンパイルさえ通ればメモリ関連の例外処理は起きようがないのですが、それを意識するあまりめちゃくちゃ口うるさく「ここはおかしい」とか「これだと〜という可能性がある」とかコンパイラがごちゃごちゃ口出ししてくるんですよね。で、C言語とかならそれでも自分が「承知の上です」ってことを伝えればコンパイルしてくれたんですけど、JAVAだとそうはいかない。直すまで徹底的に注意されます。ま、今流行の標準化には向いてるかもしれませんけどね。
 あと、動作が「モッサリ」してる。JAVAっていうのは書かれたソースを完全にコンパイルせずにバイトコードっていう中間コードの状態で保持しているんですよね。そいで、各プラットホーム上でJAVA仮想マシンってのを起動させて、そいつが完全にコンパイルを行ってから実行するので、Cとかに比べると遅い。もともとはウェブ上で動的なコンテンツを提供することで広まった(当時はflashはなかった)JAVA(アプレット)でしたが、この辺のことが理由でウェブ上では廃れていったのでしょうね。
 基本的にオブジェクト指向は好きなんですけど、JAVAはちょっと肥大化しすぎた感が否めないですね。(かといってC++がスマートかといわれると疑問ですが・・・)ライブラリ関数も無駄に多いし、サーブレット、スウィング、アプレットと兄弟がゴロゴロ。あと10年位したら淘汰されて、ちっとはスマートになるのかな?ちょっと業務システムとして組み込んでいくには時期尚早な感も否めない・・・。