アークランプさんのエントリ、「我らJava世代の課題」。その中で、
はてななどの20代の開発者と交流する機会に、自分たちのアプリケーションをデモしあったりします。僕はWindowsにEclipseで、彼らはMac OS XにEmacsやVi(もしくはTextMate)。
彼らは実に楽しそうにコーディングします。会社を超えて、*自分*のコードをネットで公開しあい切磋琢磨しています。そして世界に向けて発信し続けています。
Javaは成熟し大人になりました。でも、一方で忘れてしまった感覚がある気がします。彼らとの、なんともいえない違いはなんでしょうか?
「なんともいえない違い」という言葉を読んで、ハタと思い浮かんだのは、「自己責任」。
スクリプト言語を自在に操り表現している技術者集団は、自分の書いたコード・発言・行動すべてに責任を持っています。責任の所在が自分しかありえない。
AjaxやRailsといった元気な潮流が、なんでスクリプト言語から派生しているか?それも自己責任で発信してるからではないでしょうか。言語仕様うんぬんは小さい問題のような気がします。たぶんオープンソースが元気なのも、同じ利用でしょう。
一方、Java業界は、良くも悪くも「高度に多層化した」技術・ヒト・モノ・カネの上に成り立っています。これを全部面倒みるには、相当なスキルセットが必要だし、大きなチームが必要になる。
それだけのスキルと責任と覚悟を持たなければならないはずなのに、
ややもすれば、責任の所在がたらいまわしになる可能性も、ある。
多層構造の中でナーナーになってはいないか?そのしわ寄せのために、最後の砦のプログラマに、過酷な労働を強いてはいないか?
どっちが優れてるとかではありませんが、10人くらいのプロジェクトチームでシステム作るなら、別に、使う言語がなんだろうが関係ありません。でも、なにか大きなもの(たとえば政治とか)を動かすには、JavaかMSが近道でしょう。ホワイトハウスと国会議事堂がWeb2.0でマッシュアップとか、仮にそんなプロジェクトがあるとしたらさ。
そういうことかも。中途半端な理由でJavaを選ぶと、振り回されて疲れてしまうだけでしょう。逆に、それだけの視野を持って、乗りこなすことができるチームを結成できれば、世界中を味方にできる言語です。
Javaの圧倒的なアドバンテージは、そういうところにあるように思います。