日経ソフトウエア2007年1月号 に記事を書かせていただきました。いろんなプログラミング言語からその言語の特徴的なところを学んでみようというようなお話の中で、Rubyを担当してます。
日経ソフトウエアの大森さんには最後にはまる1日お付き合いいただいて記事を書いて、なんとも大変御迷惑をお掛けしました。で、大森さんと話して「Rubyに学ぶ『Ruby on Railsの正体』」たらいうどうにもタイトルで気を引こうとする気満々なタイトルになっていますけれど。
Rubyは本当に、昨今のある程度知られた言語たちに比べて真新しい点というのはないと思うんです。言語機能に関してはまつもとさんが常々おっしゃってるとおり「C言語で実装してある処理系の間であれができるこれができるというのを競っても意味がない」ですし。構文もどこかで見掛けたようなのを細かくチューニングしているに過ぎないわけです。殊に、この特集の中でJavaScriptやEiffelと並べられると非常に弱い。でも、チューニングするにあたって、やはりRubyの個性が出てきている筈で、私がRubyを習得するにあたり「こいつ本物のアホだ(褒め言葉)。普通こんなんやらない」と思ったような点をひねくり回してRubyの個性をできるだけ描写しようとしてみました。
Rubyはなー、本当にブロックの終わりがendであることとメソッドがオブジェクトでないこと以外は極めて普通だと思う。逆に、なんで他の手続き型/オブジェクト指向/動的強型付言語はRubyじゃないんだろう。Rubyからその普通じゃない2点を除くとGroovyになるのかもしれないけど。じゃあ、なんで他の言語はGroovyじゃないんだろう。
それより、この特集の見どころはまつもとさんによる総論「複数のプログラミング言語を学ぶ意義」だと思うのですよ。あとは、知ってる人は知ってるでしょうけれども、Design by Contractは大事なのでEiffelも。