January 15, 2006
どっちが良いとか悪いとかは関係なく、世の中のオープン技術で開発をしている会社は、
・Java + Oracleを主流とする会社
・Perl + MySQL、PHP + MySQLを主流とする会社
と、完全に二層に分かれてるなと思っている。
はてブ経由で見つけて、mixi内のリンクしちゃうけど、
業務経歴書にPerl案件を書くと馬鹿にされる件
就職活動の面接でPerlやってますとアピールすると、Java圏の面接官にバカにされるという話があった。
ありきたりだけど、Perlを良しとする会社は、エンジニアリング指向が強くて、自分で解決したい方向性が強い。割と柔らかくてもOK。ライブラリに不備があったら、直して使ってしまおうというタイプ(というか、きっとそれが求められる)
Javaをメインとする会社は、きっちりしていたいと思う指向が強く、それこそPerlのライブラリのようなのを適当で、うさんくさいものとして見ている。後のバージョン管理も含めて、できればライブラリの改造は避けたいと思う。(フリーのライブラリを使いたくないのは、「いい加減ワールド」に入りたくないという。これはエンタープライズアプリにおける選択責任の重さにも繋がるので、一概に否定はできない。)
実はJakartaがあるので、結局、誰もかれもオープンソースの恩恵は受けているんだけど、永遠のベータ版みたいなモジュールで許されることが嫌とか、そういう発想はあるみたいだ。
僕も割とそれは同意で、Jakarta級のフレームワークにしても、「普及していて信頼のあるオープンソースは結果的にOK」で、「作っただけで満足してしまうような、ハズレフレームワークには近づかない」という部分で、受動的に選択するという発想はあると思う。(だから逆説的に、CPAN authorとか、PEAR authorを尊敬するわけ)
で、この両者の間には文化としての断絶があるなぁと思う次第。それがPerl方面が、はてなのような、現状勢いのあるネットベンチャーであることと、大手SIerとそこと関連する会社群が、Javaでビジネスアプリを作っている。どっちにしろエンタープライズ向けのSIerがなくなることはないわけだから、こういう断絶は今後も続いていくことだろう。昔からある、メインフレーム vs オープン技術、 COBOL vs C言語と変わらんでしょう。別にどっちが勝つとか負けるとかじゃなくて、時代の流れで、適切な技術が選択されるよう変化していくだけだと思います。
今のところ、やっぱりJavaの言語仕様は、大規模開発に向いている・・・これは、単純にスケーラビリティで語る問題だけでなく、コーディングにおいて、派遣やオフショアなど「一見さん人材」に依存しなくてはいけない開発プロジェクトの中で、人材の能力差によってポカをやる可能性が高いかもしれないというリスクに晒されながら、如何に設計思想を、安全に実装に置き換えていくか?というところを、統制しやすい言語仕様になっているのがJava言語であると言えよう。
ここを無視して、割となんでもあり、もしくは、個人の判断で「やろうと思えばなんでもできる」PerlとJavaの違いを語っても、気持ちが晴れる以上の生産性は得られないと思う。
結局、できる奴がプログラミングすれば、OOに特化した言語仕様であるか否かなんてのも無関係に、どんなプログラム言語でも問題ないわけで、性能面でもmod_perlなどを使えばOKとかは、そういうのは置いておいて、問題はそういうことではなく、如何に仕事をまわしていく不確定要素のリスクを下げられるか、否か?というところにJavaの魅力があるのではないだろうか。
そして、商用アプリケーションサーバの存在価値そのものが、そこのフォローにあると言っても良いだろう。商用アプリケーションサーバはスケーラビリティという商品性がついてくるが、スケーラビリティが高いということは、落ちにくい=サポート工数が経る=トータルでウマーというロジックがあってこその存在意義とも言えなくもない。Websphereは使ってもApache単体は使いたくないとか。
言語仕様の善し悪しってのは、そういう文化、歴史を無視しては語れないので、どっちが良い、どっちが悪いじゃなくて、その会社のやり方として、どっちが合っているか、あっていないかで語るようなレベルかと。
逆に、Perlをあまり主張されても、「輪を乱す可能性があるかもしれない」と捕らえる会社もいるし、そのままそのとおり、「技術志向の高い人」と評価されるかもしれないし、それはその会社の文化かなぁと思います。
Java文化圏に、Perlの良さをまっこうから宣言するのって、クラシックの楽団の面接で、私はエレキギターが弾けます。エレキギターでも数万人の人を感動させられますよと言ってるような感じとも言えなくもない。(もちろん、言うこと自体は重要ですが)
あとは、時代の変化としてどこの波に乗るのか?ってのが会社選択のポイントじゃないでしょうか。
クラシック楽団に入団して、統制されたプロジェクト管理手法を学ぶも良し、ロックバンドに入って、自己の個性を磨くも良し。それが人生の選択って奴で、今のところは、どっちを選んでも、自分が選んだ道なら損はしないでしょうとか思うのが、Java圏か?perl圏か?という現状のような気がします。