水曜日, 6月 17, 2009

【雑記】 JavaがGAEで復権しそうだけどLLの方がいい


 嬉しいことに、連想配列からXMLに変換するJavaScriptが海外のQ/Aサイトで参照されている。

www.experts-exchange.com
abel:
But this is perhaps simpler: http://www.virtual-tech.net/resources/json2xml.html. It contains a small JavaScript snippet (yes, I know you use Java), that shows how to parse the JSON code into XML. See the source of that page (the popup shows only the output).

avernet:
2) http://www.virtual-tech.net/resources/json2xml.html

This is some very simple (= good!) code that uses Prototype. I don't fancy Prototype, but maybe will run with the idea. (I would have preferred a more robust, server-side solution to this.)


 日本語なのによく見つけたなあ、というのはさておき、これがJavaだったら、こんなふうに海外で見つけられることもなかっただろうとも思う。そもそもシンプルに書けないしね。まあ、気持ちの問題が大だけど。

以下は下請けでいやな思いをしたときの愚痴メモ。


 Javaには、短く、エレガントに書く発想というか、そういう文化はないよね。単純に書くとチープだと思われてバカにされるし、むしろ不必要なスレッド処理とかやって無駄に長い方がすげーと思われるでしょ。だって、このプロジェクトなんてステップ単価ですよ。正規表現で書いた部分まで書き直させられたら、心折れるっつーの。


 一方、LLの代表であるRubyはというと、(ThoughtWorksでのRuby あおうさ@日記より)

 我々の強みは、典型的なIT企業では引き込めないような非常に有能な人たちを雇用しているという点だ。 Rubyには、あまり有能ではない開発者をエラーから守るよりも、 有能な開発者がさらにうまく物事を成し遂げられる環境のほうがよいという哲学がある。 Rubyのような環境を使うことで、我々の開発者たちは真の価値を生み出す能力を与えられているのである。


 これ、すっごくわかる。

 私の感覚では、アセンブラ<<C<Java<<LL、の順で、生産性は断然LLの勝ちです。それから生産性以上に大事なのは、rubyのような「真の価値を生み出す」こと。先の私のJavaSciptコードは、たった14行しかないんですよ。たぶん、rubyも同じように書けると思うし、そう書きたくなるような文化なわけでしょ。こないだの、Tokyo Cloud Developers Meetup で「何でJavaなんか使うんですか」と聞いていた方がおられたけど、それは、とても正しい質問。私もああ、GAEはやっぱりPythonがいいかもね、と思うときがある。

 Javaは昔から悪運が強くて、AppletでダメになりかけたときにServletで復活した。元々生産性が低かったんだけど、Eclipseのおかげでなんとか開発できるようになった。StrutsやDIで辟易してWeb2.0全盛期にLLに走った人も多かった。Javaは言語仕様的にダメダメで、もう寿命は尽きているんだけど、今はGAEとAndroidで延命しそうな感じになっている。

 え?何で私がJavaやってるかって?そりゃ、ビジネスのためですよ。ビジネス。というのは冗談で、強いて言えば、パフォーマンスとセキュリティだね。少なくとも開発生産性ではない、絶対に。そのあたりはGoogleも同じ考えだと思うよ。



<関連>
最も初心者向けの言語はJava or PHP?
Javaが本領を発揮する場面とは
僕とTAKE-DOS、ちょっとだけJava批判

2 件のコメント:

  1. ご無沙汰しております。

    最近、HH兄の書いたJavaコード見てアチャーとか思う悶々とした日々を過ごしておりますw

    Javaがダメと全否定するつもりはないのですが、ActiveRecordその他の Ruby の実装を知って使ったものとしては、いろいろと「もうちょいナントカなるやろ」とか思う日々でして。 takezaki さんが以前「PHPとJavaを使い分けて良かった」という件の話もだいぶ理解できました。

    言語仕様・開発環境・実行環境・パフォーマンス・セキュリティ・運用 もろもろを考えてパイチャート作ると面白そう、と思いました。

    返信削除
  2. いやあ、ご無沙汰です。引き継いだ話はHH兄から若干、聞いております。まあ、そういわんとJavaをかわいがってあげてくださいな。ただ、Rubyと同じことを求めてはだめですよ。

    返信削除