«前の日記(2005-03-20) 最新 次の日記(2005-03-22)» 編集

Matzにっき


2005-03-21 [長年日記]

_ [Ruby] Java vs Ruby (or RIFE vs Rails)

ことの発端は、theserverside.comで Geert Bevinが「Ruby on RailsはJavaの10倍の生産性とは本当か」と提起したことだ。

彼はRailsの典型的アプリケーションであるTa-da Listを JavaとRIFE frameworkを使い、

  • 行数はTa-da Listより300行多い(50%増)
  • 開発期間は2日(サーバ側)
  • いくつかの機能追加とバグフィックスを行った

というBla-bla Listを作ったのだった。 ついでに、GeertはTa-da Listのセキュリティ問題も発見している(すでにfixされている)。

ま、Rails効果ってのは、Rubyを使っているという点以外には、 徹底してDRY (Don't Repeat Yourself)を実践することで実現されているので、 同じような設計思想のWebアプリケーションフレームワークがあれば Javaだろうが似たような生産性を実現できてもなんの不思議もない。 DHH(Railsの作者)がRailsに対してやったのと同じマーケティングを、 GeertはRIFEに対して試みたと見なすのが自然だと私は思った。

ところが、これに対して

  • Railsの10倍の生産性とは信じられない、というRails懐疑派
  • Rails効果は本物だ、というRails擁護派
  • Rubyの求人なんかないじゃんか、というJavaビジネス派
  • (Bla-bla Listの使っている)Laszloは駄目だ、というアンチLaszlo派
  • いずれにしてもFUDはヤメロ、というアンチFUD派
  • 「本物の」アプリケーション開発にRubyのような「スクリプト言語」は不十分、 Javaのような「本物の言語」が必要だ、というJavaラブ派(or アンチスクリプト言語派)

が絡み合って、コメントが伸びる伸びる。おまけにDHHも参戦した。こちらは(ソースは公開されていない)Ta-da ListとBla-bla Listでソースを並べて、Railsによるアプリケーションの簡潔性を示していた。

それに対するGeertの返事。要約すると「一番極端なところを比較してもしょうがない」ということ。説得力があるようなないような。

その後も議論は止まらない。最後には「〜じゃないか」「そんなことは主張してない」と泥仕合風味。

見かねたLucas Carlson(Rails派)が、 「Ruby vs. Java: A matter of taste」という記事を自分のブログに書いた。これは視点の違い、趣味の違いだとする公正なもの(だと私は思った)。

それでもまだ議論は収まりきっていないようだが、 いやあ、みんな自分のフレームワークを愛しているからこんなにもめるのか、 それとも「マーケティング」手段になにか根本的な間違いがあるのか。

個人的には、「スクリプト言語では不十分」という主張が気になった。 この主張に関する話はなんとなく尻切れトンボで終わってしまったのだが、 結局「遅いから」ってことなんだろうか。 そればかりでもないように感じられたのだが、具体的な指摘は出なかったなあ。

もちろん速度的な問題はあるけど、それ以外でRubyでは無理で、 Javaならできることなんてないような気がするけど。

本日のツッコミ(全8件) [ツッコミを入れる]
_ 三丁目の犬 (2005-03-23 09:52)

単に議論というか主張合戦が好きなんだと思う

_ long (2005-03-23 11:21)

Webアプリに限定しなけりゃ、どちらかにしかできない例なんていっぱいあるでしょうけど。結局「趣味の問題」に禿同。あと議論することに意義がある、とか?

_ AC (2005-03-23 11:43)

いやでも、仕事でも個人でも自前のサーバならTomcatでもJBossでも入れりゃいいけど、レンタルサーバだと逆にJavaを動かせるところは少ない気がするがその辺はどうなんだろう。<br>海外ではガンガン使えたりするんだろうか。

_ WXY (2005-03-23 12:24)

「Rubyでは無理でJavaならできる」的な発言は珍しいですね。<br>CでもJavaでもRubyでもできることに変わりはないと言うと思ったんですが。

_ まつもと (2005-03-23 17:04)

理論的には「できることに変わりはない」のですが、人間の限界で「できなくなる」ことはしばしばあります。複雑すぎるとか面倒すぎるとか。でも、RubyとJavaではその手の限界はJavaの方が先に来そうだけどな。わざわざわかりにくく書かない限り。

_ naruse (2005-03-24 00:50)

スクリプト言語は仕様が不安定、とか。互換性互換性言ってるSunもどうかとは思うのですが、Rubyも1.9はもう手遅れとして、2.0リリース後は落ち着いて欲しいよーな。

_ ben (2005-03-24 20:13)

どっちが好きかどうかというよりも、このソースコードって、結果が一緒なだけでやってる内容というか量が全然違うので参考にならないんですけど....

_ everes (2005-09-01 17:24)

「Rubyでは無理で、 Javaならできることなんてないような気がする」は、正でしょうが、「現在のJavaのアドバンテージは非常に多いライブラリである」ことを抜きにしてはいけない気がします。<br>#Rubyのライブラリは重複しているけど双方とも同じ事しかできないとかかゆいところに手を伸ばそうとすると、自作するはめになることがおおいのでは?<br>逆に、必要な資源という意味ではJavaはRubyに完全に劣る(ただし、資源が豊富な場合はそれもアドバンテージにしてしまいますが)。

お名前:
E-mail:
コメント:
[]

«前の日記(2005-03-20) 最新 次の日記(2005-03-22)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.