Lightweight Language Lovers

Python vs Ruby

いきない刺激的なタイトルですが、優劣を比較することが目的ではありません。
Python で書いていたプログラムを途中、カヤックの話題が何回か出てくるので「もしかして」と思っていたらやはり、
このサイトでも何度か触れた『軽快なJava』と同じ作者ではありませんか。

『軽快なJava』は、
EJBに代表される「甘やかされた肥満児になってしまったJava」に、
DI、アスペクト思考などの新しい考え方、Spring、Hibernate等の新世代のフレームワークによって
「新鮮な酸素を供給し、健康を取り戻す」という内容でした。
本書からは、筆者のJavaに対する情熱、思い入れのようなものが感じられました。
筆者は Javaの教育コース・コンサルティングに携わっているだけでなく、Javaに関する書籍も何冊か執筆しています。

それが、この『JavaからRubyへ』ではRubyに恋しているかのような変わりようです。

本書はサブタイトルに「マネージャのための」とあるように、Java と Rubyの文法を比較して
「Rubyだとこんなに簡潔に書くことができます。だからRubyに移行すべき」
といった類の内容ではありません。
正確には「Ruby on Rails vs Java」というべき本で、
「DBをバックエンドにもつWebアプリ」という特定の一分野 - しかしそれは一分野でも膨大な市場を持つ -
において、Rubyが発揮する圧倒的な生産性に着目しています。
「士気が高く、スキルも才能もある」オフショア企業のプログラマに対して優位に立つためには、
顧客との意志疎通の迅速化と生産性をもたらす新興テクノロジを採用することが一つの戦略であることを述べています。

私は Pythonと Rubyはどちらもオブジェクト指向言語でどちらも生産性が高く、
表現方法などがちょっと違うだけだと思っていました。

筆者は、あるプログラミング言語がメインストリームの言語に踊り出るためには「爆発」が必要であり、
これが無いとキャズムの壁を乗り越えられず、「駅に停車したままの錆びついた列車」になってしまうというのです。
Ruby on Railsはまさしくその「爆発」であると指摘しています。

であれば、理由は Railsかとも思いますが、- Joshua Habenmanへのインタビュー -の中に
「Pythonで書いていたスクリプトをRubyで書き直しました。それ以来、Pythonは書いていません」
という記述があります。

単に好みの問題かと思いましたが、 他にも、ビジョナリーと呼ばれる人達が次々にJavaを去って、揃って(Pythonではなく)Rubyに移行しているというのです。 何か理由があるに違いありません。

しかしまた、極端に生産性の高い言語は、その生産性の高さをもたらした理由そのもののために、
かえってよくない結果になる恐れがあるとも書かれています。
自然界でも、ある環境に適応しすぎたためにちょっとした環境の変化に耐えられず、絶滅した種は多いのではないでしょうか?
実際、メインフレームでも4GLと呼ばれた高い生産性をもたらす第4世代言語がいくつかありましたが、 結局はマイグレーションの際のお荷物になってしまったものです。最後まで生き残ったのは原始的なCOBOLでした。

これまで Pythonの視覚的に美しいソース、「乾電池同梱の製品」としてパッケージされていた素晴らしいライブラリと
便利なIDLEに目を奪われて、Rubyはなんとなく食わず嫌いできたのですが、本当のところはどうなのか、少し触ってみようと思っています。


CategoryRuby

PythonVsRuby (last edited 2007-12-08 23:35:10 by ymd)