«前の日記(2009-02-05 [木]) 最新 次の日記(2009-02-13 [金])» 編集
RSS: href="http://endoh-namazu.tierra.ne.jp/diary/index.rdf"


半期 四半期 全カテゴリ

新・なまず日記


2009-02-06 [金]

_ [その他] 『プログラミング言語Ruby』出版記念トーク、行ってきたお!



いやぁ、濃かったねぇ。

トークセッションは、大阪堂島のジュンク堂の三階の喫茶室を借り切って、薄型テレビでパワポ(いや、たぶん、OpenOfficeのimpress)で絵を表示しながらのプレゼン形式。椅子が足らなくて立ち見が出るほどの大盛況。

基本的に出版記念パーティなんで、出版にいたった経緯とか、共著者や挿絵作者のプロフィールや、本の中身で「この章の読みどころは」なんて話を、まつもとさんがダラダラしゃべって、卜部さんがそれにツッコむという、ゆるーい雰囲気の進行でおもしろかったです。でもまぁ、本が本だけに、リフレクション関係の話になると、ちょっと濃すぎて、フツーの人にはついてけないんじゃないかと思ったけど、まぁ、こんな本を買う人はどうせ濃いから、別にいいのかな。

リフレクション機能を使ってRuby on Railsが書かれた時のエピソードは興味深かったな。Railsを使うとJavaの10倍生産性が上がる、なんてことを言い出した奴がいて、それにJavaファンの連中が噛み付いて、大論争になったとか。そのおかげでマイナーだったRubyに日があたるようになって、世界中で使われるようになって、よかったよかったって話なんだけど。そのエピソードを話したときのまつもとさんのセリフ「でも、生産性って、うまく測れないよね。10倍気持ちよく書ける、とかならわかるけど」。いやぁ、気持ちいい、ってのもよくわからないと思うけど。でも、生産性、とか効率性、あるいは実行速度、とかも大事だけど、書いてて気持ちがいいか、ってことを重視してる、って感じは伝わってきましたね。


でもって、そのあと懇親会ってか、宴会にもずーずーしくも行って来たです。いやぁ、濃くて濃くて。「Ruby暦10年、Rubyでソフト書くのが仕事」なんて人がゴロゴロしてて、オイラなんてRuby暦8ヶ月だよ!たったの!しかも本業は特許屋!なんか狼の群れに放り込まれた羊みたいな感じだったよ。


でも、おもしろいエピソードを沢山聞かせてもらった。初期ののRubyはSunOSでかかれてて、ANSI CじゃなくてK&R(カーニハンとリッチー)スタイルだったから、今のコンパイラじゃ通らない。オレは今のコンパイラで通すパッチを持ってるけどね、なんて話とか。あー、懐かしいなあ。ANSI Cになって、関数の引数の記述スタイルが変わっちゃったから、オイラも苦労したよ。変換用のスクリプトをPerlで書いたりしてた。


オイラが、「ガベコレをあんまり起こしたくなくて、動作中にはnewは絶対にしないようなコードを書いたんだけど、やっぱり起こるよね。なんでだろう?」なんて話をしたら、「文字リテラルを評価するってだけでアロケートするからねぇ」なんて丁寧に教えてくれた。「eachでまわすより、findの方がガベコレ率が高い」って言ったら、「findはmixinされてるもんで、eachはArrayクラスのためにギンギンにチューンされてる」なんて話も聞いた。「でも、findの方がスッキリ書けるし...」「それでいいんだよ。細かいことはあんまり気にせず、気持ちよく書けるやり方を選ぶのがRuby流」なるほど。


最後のほうで、ちょっとだけ、まつもとさんとお話できた。「Rubyは、Lispが母さんでSmallTalkが父さんのような、血筋のよさを感じます」って言ったら、まつもとさん、「MazLisp(マッツリスプ)って思ってますから」って。「え?まつもとさん、Lispの実装もされてるんですか?」「いやいやそうじゃなくて、もしもタイムマシンができて、70年代のLisperの人を現代につれてきて、"ほら、これが21世紀のLispなんですよ"って言ったら信じるようなものを作りたいってこと」あ、なーるほど。

「今度のRubyは有理数をサポートします」あぁ、確かに、CommonLispは有理数サポートしますもんね。「だから、a = 1 / 3のaは、浮動小数点じゃなくて、こんどから1/3だよ」ええー!それ困る人沢山でるでしょ!「そこをあえてやるという(笑)」「いやせめて、メソッド名は"/"じゃないほうが...」「じゃぁ、unicodeの(JISの?)"/"にしようか?日本人だけが分数が使えるという...」んなアホな!
[]