悪いのはJava? それとも

スラッシュドットジャパンに面白い記事があった。

欧州・中東・アフリカで"P言語"の利用が減少 | スラド デベロッパー

正確には面白いのはコメント欄なのだが、P言語の話がなぜかJavaの話になってしまっている。
意外にもJavaに人気がない。
これはP言語ユーザによるJavaの堅い文法に対する批判と、Javaユーザの技術レベルに対する批判だ。


前者に関しては仰る通り。
Sunもその辺は熟知していて、いろいろと手を打っている。
GroovyとBeanShellの標準化はその一つだろう。


BeanShellはかなり昔に使っていた。
Javaとほとんど同じ文法だが、Javaスクリプト方式でコンコン打ち込みながらswingが使えてしまうのはとても新鮮だった。
ずっと更新されずに興味を失っていたが、また復活したのは喜ばしい。


しかし本命はやはりGroovyだろう。
Rubyの影響を強く受けたその文法は、使っていて実に気持ち良い。
タイプ量が減ることよりも、直感的に打ち込めるあたりが良いのだと思う。
Groovyはライブラリも凝っていて、スクリプト言語本来の目的、ちょっと打ってさっと目的を果たすのにぴったりだ。


DeveloperWorksに良い連載がある。
少し遅れているが日本のサイトでも翻訳が出ている。
注意しなくていけないのは、連載が続く内にまだβ版だったGroovyにはいくつか変更が加えられ、サンプルがそのまま動かなくなってしまったことだろう。
例えばクラス宣言のインスタンス変数宣言には変数名だけは駄目になり、バリアント型にしたい場合にはdefを付ける必要がある。


惜しむらくはGroovyはドキュメント化が非常に遅れていることだろう。
先の修正の件もWhat's newくらいにしかなかったと思う。
公式のドキュメントはUnderConstructionやComingSoonばかりだった。
RC版も出て、仕様は固まったと思う。
一刻も早くドキュメントを整備して頂けたらと思う。


Java6にはこの他にもJavaScriptエンジンを内蔵する予定だそうだ。
どのような使い方をするのか楽しみである。
JavaScriptは最近Ajaxのおかげで書籍の売上も伸びているそうだ。
随分と昔にオライリーの本で本格的に勉強したことがある。
オブジェクト指向というかプロトタイプ指向っぽい、楽しい言語だった。


話をいきなり戻すが、Javaが嫌われる点としての理由の後者、これは少々納得がいかない。
メジャーな言語にはそれだけユーザが多いので初心者が集まるのも仕方がないだろう。
むしろJavaのような堅い文法の言語でもひどいプログラムを書けてしまうことが驚きであった。
これは結局正式な教育を受けていないこと、特にデータ構造やアルゴリズムについて知らないことが原因であるように思う。
さらに考えられる原因として、業務アプリの世界ではプログラムの品質に対する意識の低さが上げられる。
管理ばかりが優先されて、プログラムの品質は全く省みない技術者が多い。
Javaオブジェクト指向は難しいから使用するのはやめましょう、と本気で言う人が一流企業にすら多いのだ。
このような設計の元に、VisualBasicしか使ったことがないような安くて若い技術者が大量に投入される。
まるでJavaとは思えないソースが大量に乱造されるわけである。
これで火を噴かないほうがおかしい。


どうすれば良いのか、私にはわからない。
流行のペアプログラミングを行えれば良いのだが、コードレビューすらめったに行われない現場でそのようなものが理解される可能性は低い。
反復を用いる開発も、プロトタイプの作成もコスト削減重視のために実現されることはない。
このような環境にいると、つくづくSEになったことが悔やまれる。


ただ今回のコメント欄はそういう意味では希望だと思う。
これだけP言語とプログラミングを愛してくれいてる人たちが大勢いるのだ。
P言語は全てオブジェクト指向を取り入れているし、データ構造に関するライブラリも充実している。スクリプト言語愛する人たちはきっとアジャイルな開発メソッドを嗜好してくれるだろう。
世の中はゆっくりとしか変わってくれないけど、確実に良い方向に向かっている。
自分が先頭にいられないのはとても辛いけれど、この業界で変化を見つづけていこうと思う。