まつもとゆきひろ『プログラミング言語Ruby』を大いに語るの最近の記事

この記事は東京、大阪で行われた『プログラミング言語Ruby』刊行記念トークイベントの内容をもとに構成されたものです。このトークイベントの動画はニコニコ動画で公開されていますので、よりリアルな雰囲気を味わいたい方は、そちらをご覧ください。 http://www.oreilly.co.jp/editors/archives/2009/02/ruby-4.html

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第8回(最終回) lambda、YARV、そしてRuby 2.0へ

|

8回にわたってお届けしてきたこのシリーズも、いよいよ最終回。今回はその他の新しい機能、さらに、まつもとさんの口からは次のバージョンの話も飛び出します。

ラムダ

目立つ機能としては、「->」によるラムダ(λ)を入れたり、「.()」による呼び出しを入れたということですね、やっぱり関数型言語の影響が大きく、ラムダをこんな記号(->)で導入しました。

― まずこの話があったときは、まず最初に何があったかというと、「ラムダ」って書きづらいと。

1.8だとラムダメソッドってのがあって、lambdaだっけ、(綴りに)自信がないけど。Lispの人たちはそれこそ湯水のように使うけれど、普通のプログラマにはなじみがないし、読みにくい、書きにくい、長いメソッド名どうよって話があって。

あと、メソッドって再定義できるじゃないですか。「lambda」って書いても、本当にラムダを返すのか自信がない。ラムダじゃないものが返せてしまうかもしれない。いろんな最適化のことを考えると、こういうものは言語組み込みであった方がうれしいよねって思って、この2点から新しい記法を取り入れました。
ただエライ不評で、「この記号λに見えないじゃん」って。ターミナルっぽいフォントで表示して横に傾けるとλに見える、って言うとみんな笑ってくれるけど、それでも迫害は止まらないんです。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第7回 「M17N」が開く可能性

|

Ruby 1.9で注目の新機構、M17N(多言語化)を、まつもとさん、卜部さんのお二方が語ります。M17Nとは何か、どんなメリットがあるのか、M17Nが実装されたことで開かれる可能性とは?

Ruby 1.9では文字列の抽象度が上がった

Ruby 1.8ではすべてがバイト列だったんです。で、Ruby 1.9ではコードポイント1と対になっている文字を表現するようになりました。ちょっと抽象度があがりました。

ですから、これからは"ABCあいう"という文字列の0番目を取ると「A」という文字を返します。で、3文字目から1文字を取ると、変なバイトではなくて「あ」という文字を返します。

― 3番目というのはゼロから数えて3番目のことですね。

ゼロから...皆さん分かりますよね。数字はゼロから数えますよね。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第6回 Ruby 1.9に起きた変化

|

書籍『プログラミング言語Ruby』を章ごとに語り終え、ここからはリリースされたばかりのRuby 1.9の変更点についてのお話が始まります。

Ruby 1.8とRuby 1.9は非互換です。その中には大きなものから小さなものまであって、その中でも重要なのは「ブロックパラメータ」「文字列」「M17N」です。

ブロックパラメータ

rubytalk01.jpg

Rubyにはブロックというものがあります。縦棒(|)の中に変数があって、(直前に書かれたイテレータの各要素が)渡されパラメータとして代入される。これはもともとループの抽象化として誕生したので、棒の間はループの各要素が代入される場所だったんです。(ブロックパラメータは)任意の変数、つまりグローバル変数でも、ローカル変数でも、配列でも大丈夫。何でも置けたんです。

ところが1.9からはちょっと変わっていて、グローバル変数を置こうとするともうダメ。これまではオブジェクトの属性に代入できたり、配列のスライスを呼び出せたのも、できなくなりました。それと同時に、(ブロックパラメータに指定された)ローカル変数のスコープは、ブロックの範囲内にとどまるということ。xに15を代入してループにパラメータを用意して、xに10を代入する。1.8では、ブロックの外側のxと内側のxは同じものなので、10に書き変わったんですね。だけど1.9からはブロックの中身なので、同じ名前だけど違うものになったとみなして数が変わらない。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第5回 ブレーキが外れた後半戦 5から10章

|

前回までのあらすじ
『プログラミング言語Ruby』の生まれた経緯から書籍へと入ります。言語仕様の解説部分では、リリースマネジャーの卜部さんでさえ知らなかった内容が登場するなど、なかなか侮れない内容。Ruby初心者も上級者も楽しめる内容。今回はよりディープなRubyの世界へと移ります...

5章 文と制御構造

ch05.jpg

Rubyって文と式とあんまり区別がないんですけど、普通のプログラミング言語で文といわれているようなものとか、制御構造と言われているものについて解説しています。

―この辺から発展的内容って感じですね、4章までは、どちらかと言えばRubyの基礎的な内容でしたが、ここからですね、なんて言うんですかブレーキが外れてきて、

ははは。

―この章の一番最後の方にスレッドとかファイバとか継続について書いてあるんですけど、ファイバに関して言うと、この本の原著が最初に出たのが2008年1月。このころは、まだファイバが出てきたばかりで、これ本当に書くのか? という感じで。2007年の11月に飛行機の中でドラフト版を読んで「ファイバに何ページも割いてある」と言ったら、(まつもとさんに)「ちょ、ちょっと見せて」とか言われて。まだ当時そんなに固まってないのに「こんなに書かれるとヤバい」と。

ファイバ作っている本人でさえ嫌がると。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第4回 上級者にも楽しめる入門編 1から4章

|

前回までのあらすじ
「ヤギ」から「ハチドリ」へ至った経緯、そして本書がいかに変わっているかという話題から、これまた一風変わったRubyist、why_the_lucky_stiffへと話題は変わります。今回は1章から4章までを語ります。

―日本語版では、まつもとさんの「まえがき」という重要な部分が

日本語版ではまえがきを書いていて、すこし貢献度があがったと。

-みなさん、ぜひまつもとさんのまえがきを読んでいただいて...

はい。前書き作家としての(活躍を)ですね。僕がまえがき書くと本が売れるんですよ。『Googleを支える技術』1、去年のベストセラー。その前は『Code Reading』2、あれも前書き書いてるんですよ。今年はこれでベストセラーを狙います。まえがき書いても全然印税入んないんですけど。まえがきとオビ(の推薦文)で知名度を上げるべく頑張っております。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第3回 正体不明の人気者

|

前回までのあらすじ:
ヤギが表紙の『Rubyデスクトップリファレンス』が、ハチドリ本こと『プログラミング言語Ruby』に変化した経緯をお話いただきました。今回からは監訳の卜部昇平さんと一緒に、『プログラミング言語Ruby』の章立てを順に追いつつ、本書とRubyにまつわる話がはじまります。が、まず書籍のタイトルやクレジットの話題から、まつもとさんがウォッチする「あの人」の話題に...

『プログラミング言語Ruby』のヘンなところ

この本って、結構オライリー的には変わった本で、とさっきオライリーの人から聞いたんですけど、1つはタイトルが『The Ruby Programing Language』って書いてあるんです。

―原著ですね。

こっち(日本語版)でも『プログラミング言語Ruby』となっていて、他の、オライリーの他の本で、こういう『Programing Language』というタイトルの本がほかにない。

―例えばPerlだと『Programming Perl』ですね。

あれが原典ですね。Pythonは『Programming Python』。

―『JavaScript』とか『CVS』(のようなもの)もありますね。

そう、ソフトウェアの名前そのままというのはありますけど。

―そういえば『The Ruby Programing Language』みたいなのはあまりないですね。

そうですね。もっともピッケル本が「プログラミングRuby」なので、書名をとられちゃったという理由があるのかもしれないですけれど。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第2回 「ヤギ」と「ハチドリ」のあいだ(後編)

|

前回のあらすじ:
「ポケットリファレンス」と呼ぶには分量の多かった『デスクトップリファレンス』。英語版への翻訳が進んだが、分量を倍に増やして『in a Nutshell』になることに。死にそうな思いで加筆をし、無事出版されるも、期待したほどの売れ行きをあげることはできなかった。フランス語版とロシア語版の計画は、フランス語版のみが形となる。

驚きの共著者が登場『The Ruby Programming Language』

それで『Ruby in a Nutshell』の後、そのまま長らくなかったことになっている感じだったのですが、ある日、2007年だったと思いますけれども、オライリーの編集者から久しぶりにメールが来てですね、「in a Nutshellの新しい本を作りたいんだ」と。Rubyも大分広まったし(今の)「in a Nutshell」は薄いからと。でも「お前が書くのは無理だろうから」って、分かってらっしゃる。

で、ですね、「共著者を用意するから」という風に言われて、まあ、僕が書けないのは分かっているので、「これをベースに誰か書いてくれればそれに越したことはないけれど」と思っていた。次のメールが来て「(共著者を)見つけて来たから。David Flanagan」。聞いたことのある名前だなあって。

まつもとゆきひろ『プログラミング言語Ruby』を大いに語る

第1回 「ヤギ」と「ハチドリ」のあいだ(前編)

|

読者のみなさんへ:
この記事は東京、大阪で行われた『プログラミング言語Ruby』刊行記念トークイベントの内容をもとに構成されたものです。このトークイベントの動画はニコニコ動画で公開されていますので、よりリアルな雰囲気を味わいたい方は、[こちら]をご覧ください。

まつもとゆきひろです。Rubyというプログラミング言語を作った人です。『プログラミング言語Ruby』という本の共著者ということになっています。かなり名前だけですが。

ここから始まった『Rubyデスクトップリファレンス』

最初の最初から話をするとですね、奥付を調べたら2000年11月21日と書いてあったので、もう9年も前ですね。本を出したんです。『Rubyデスクトップリファレンス』っていう本です。本当はポケットリファレンスという、今でもあるのかな? ポケットリファレンスという本(のシリーズ)が出てたんですけれど、妙に厚くなってポケットには入らないということで、デスクトップリファレンスに急遽なったという、いわくつきの本です。当時出たばかりのRuby 1.6というバージョンに対応していました。

アーカイブ