人々がJavaを使う最大の理由

こんなにもJavaが使われる最大の理由は、以下の理由もあるかもしれないが「バカに使わせることが出来る」言語だからこそ現場で使われるんじゃないだろうか、と思う。Javaが好きな人ごめんなさい。でもそう思うんだもん。

  1. (何がそんなにいいのか知らんが妙に)人気がある
  2. 人員の確保が容易(田舎の専門学校でも教えてるんだぜ)
  3. ベンダのサポートがある(自分は Sun と IBM ぐらいしか思いつかないけど)
  4. やたら環境が整っている(ライブラリやらフレームワークやら IDE やら VM やら)
  5. プロジェクトが失敗しても言い訳が出来る
  6. 既に沢山の Java で書かれたシステムが動いている
  7. 処理系が枯れている

http://d.hatena.ne.jp/scinfaxi/20070118/1169046881

何故バカにも使わせることができるのか。

  1. Garbage Collection でメモリのことはVMにお任せ
  2. とても静的 = 動作が予想しやすい (RubyLisp系言語を知ってしまうと窮屈さを感じる所以でもある)
  3. 言語仕様がシンプル(ってJavaの開発者が言ってる)

ほかになんかあるかな。

Javaよりも圧倒的に強力な言語はいくらでもある。しかし、言語が強力であればあるほどそれを上手くコントロールするにはスキルが必要だと思う。LispのマクロはPaul Grahamが使えば最強の武器かもしれないが、センスが全く無いプログラマに使わせたら自滅用兵器にしか成りえない(あるいは全く使えないか)。そして、そのような武器を上手く扱えるプログラマは、きっと現場では数を確保するのは難しいんだろう。

強力な武器を扱える人間がいないなら、非力な武器を与えておけば仮に自滅してもダメージは少ないじゃないか。

木を切るときに、Lisperが一人で強力なチェンソーをつかうなら、Javanは大勢で1つのノコギリを引くんだろう。

という現場に立ったことの無い学生の妄想でした。今日Javaの課題の締め切りだ。。。