COBOL技術者の憂鬱

COBOLプログラマは不在にしています

『プログラミング言語Ruby』出版記念トーク - 「まつもとゆきひろ氏 大いにRubyを語る」

ちょっと時間が経っていますが、先日、堂島のジュンク堂で行われていたトークセッションを聴いてきた時のことを書いておこうと思います。

Rubyのまつもとさんとリリースマネージャの卜部昌平さんがお二人でお話されるということで、とても気になったので残業中に抜けて行ってきました。
プログラミング言語開発に携わっている人達というと、私の頭の中では、なんとなく固くて重いイメージを勝手に作り上げてしまっていたのですが、お二人とも非常に軽快なノリで楽しそうにお話される方だったので、そこが少し意外でしたね。
(このセッションの動画は、後日オライリーのサイトで公開されるそうです。)



まずセッション冒頭で、これまでオライリーから出版されてきたRuby本の歴史についてお話された後に、今回出版された「プログラミング言語Ruby」について章を追って順番に内容紹介していくという流れになっていました。
ここでは、フランス語訳のRuby本があるといった話や、今回出版された本で挿絵を書かれた方の話題なんかが面白かったですね。途中、DHHのこともちょこっとお話されていました。



私が個人的に一番興味深かったのは、セッション終盤での「Ruby1.9の特徴」についてのお話でした。
M17N(マルチリンガライゼーション)の話題だったのですが、Rubyという言語の持つ文化や目指している方向がじわじわと伝わってくる内容でした。

これまであまり意識したことがなかったのですが、プログラミング言語やOSの内部では通常、日本語を処理する際に単独の文字コードを決めうちで処理しているそうです。なので、外部から受け取った文字コードについては、必ず内部で処理できるように変換する必要が出てきます。

この「文字コードの変換」には、処理時間がかかったり、あるいは文字化けを起こす可能性があったりと、様々な問題を引き起こす可能性があるので、Ruby1.9ではそもそも変換することなくあらゆる文字コードを扱えるような仕組みを提供していくそうです。

さらに、既存の文字コード体系の中では、未だにコードが割り振られていない文字や、異なる文字であるにもかかわらず同一のコードが割り振られているという問題があったりします。Ruby1.9では既存の文字コードよりもさらに広い範囲の文字を扱うことができるので、これらの問題にも対応できる可能性があるということでした。

これの具体的な利用例として、古典の研究をされている方がプログラミング言語の中で古語を扱う場面を挙げられていました。
これは非常にレアな利用ケースなのですが、それでも「プログラミング言語の持つ可能性を閉じない」という意味で、こういった機能を提供していこうとしているそうです。

このような考え方や仕組みのことを、CSI(Code Set Independent)というらしいのですが、実現が難しいわりに、あまりメリットを手にするユーザーが少ないので、他のプログラミング言語を見渡しても、あまり向きになって取り組んでいる例がないということでした。



最後の質疑応答の中で、Ruby2.0はどんな感じになるのかという話になったのですが、メンテナがあまりいないという理由から、既存のライブラリを少し減らそうと考えていることや、メソッドオーバーライドのカプセル化(制約をかけることができる)のようなことを考えているとおっしゃっていました。



セッション終了後のサイン会では、私の後ろで列に並ばれていた方のことが記憶に残っています。
おそらく私の父親くらいの年齢の方だと思うのですが、趣味で10年ほどソフト開発をされていて、いろいろ言語に触れてみたもののRubyが一番しっくりくるといった内容のことをおっしゃっていて、それを聴いていたまつもとさんが本当に嬉しそうな顔をしていたのが印象的でしたね。

これまでの私のイメージでは「プログラミング言語の開発」というと、いつからか技術的・抽象的な高みに到達すること自体が目標になってしまって、肝心のユーザーがないがしろにされていってしまうのではないかという懸念を持っていました。
例えば、パソコンを自作することが趣味な人の中には、液体窒素を使って無理矢理CPUのクロックを引き上げて喜んでいる人種がいます。そうやって向上したCPUの処理速度を、一体何に使うのか?といったところで、疑問を感じざるを得ないのです。
言語やOSを開発するエンジニアについても、どこかのタイミングでそのような世界へ入っていってしまいそうな気がして、私のようなアプリケーションエンジニアにとっては、そのあたりどうなのかなと疑問に思っていました。
一般的なアプリケーションエンジニアにとっては、ある言語なりOSなりを利用して、何かを動かして、それによって他人をどう驚かせるかといったところに興味があるので、そういった立場からすると、あまり面白い事をやっているように見えなかったのです。

けれども、さきほどのサイン会での場面を傍から観ていて、言語やOSなどを扱う方達でも、根っこのところでは、我々と何も変わらないんだなと直感的に感じとることができました。
M17Nでの「可能性を閉じない」という考え方にしても、最終的にはユーザーに喜んでもらうことが目標になっていて、そこがぶれることは今後もありえないのだなと思いました。
そういうことなんかも理解できて、このトークセッションを聴いて非常によかったと思っています。



オライリーの技術書はこれまでちょっと敷居が高いなと感じて敬遠していたのですが、本気だして読んでみると自分でもある程度までは理解できるような内容だったので、頑張って最後まで読破してみようと思います。