米子訪問。今日のテーマは「系図」。
『マタイによる福音書』1章にもあるように、古代の人は自分の系図を大切にした。 自分がどのような血統で世にあり、 自分の存在は過去の先祖のおかげであることを自覚することは重要である*1。
それから、1840年生まれの曽々祖父から始まる「まつもと家」の先祖の話を少し。 曽祖母、祖母、父と続く流れにはさまざまな歴史とドラマがあった。 我々も時々は先祖のことを思い返そう。彼らのために祈ろう。
とかいうような話。
神権会では労働の話。「私の作ってるソフトは各国の言語が使えるようなものだ」とかいうような話が飛び出す。 ずいぶん以前の『クローズアップ現代』の内容をそのまま反映したようなコメントだが、 嘘ではないから否定するわけにもいかないし、とはいえ、そのまま肯定するのもなんだか違う気が。
この機会にM17Nを再開させようかなあ。
実家に立ち寄ってから、帰る。
*1 やりすぎると選民思想になるけど
で、結局、朝4時までかかって完成させた。 約束が守れたのはうれしい。
いやあ、北海道とか筑波の講義とか重なって、 一時は本当に大丈夫だろうかと思ったのだが、 なんとか完成した。でも、今月はちょっとページ数が少ないみたい。 あと、この連載の今までの回ほど「ぶっとんでない」っていうかなんていうか。 おもしろみは少ないかも。
でも、ブロックはRuby固有だし、 これについて突っ込んで解説してくれる人も他にいないと思うので、 まあ、資料的価値がないわけじゃないかな。また自画自賛だけど。
眠い。午前中は寝るぞ。
で、午後になって、 次女と長男のピアノ発表会。 私自身が楽器ができないから子供にはやらせたいと思ってたんだ。 それなりに期待に応えてがんばってくれているからうれしい。
まあ、芸術という観点からは演奏はミスばかりだし、 曲想がうんぬんというレベルではないのだが、 そこはそれ、親馬鹿のためのイベントだから。
喜んで(後で見返しもしないのに)ビデオに録ったりする。
大雨。ラジオによると例年の7月1ヶ月分のあめがここ数日の間で降ったということ。
で、しばらくおさまっていた雨もりが再開した。 うーむ、屋根もだいぶボロになってるからなあ。
玉湯川も増水してて、ちょっと危険かも。
O'Reilly RubyのPat Eylerによるインタビューシリーズ。
JRuby開発者のCharles NutterとThomas Eneboのインタビュー。
面白かったのはここ。
I have heard folks semi-familiar with Ruby comment that Ruby the language seems to be one of the best, but Ruby the C implementation seems to be one of the worst. I would not go that far; matz and company have done some amazing things with the C implementation. However, I believe Ruby desperately needs to take a leap to the next level, from a simple scripting “glue” language to a real application platform.
まあ、自分のことを言語実装者としてよりも言語設計者と考えている私としては 「Ruby the language seems to be one of the best, but Ruby the C implementation seems to be one of the worst(言語は最高だけど、実装は最低)」と言われるのは逆よりもずっと良いわけだが、それでもまあやることは一杯あるよな。
笹田くんがやってくれると思うけど。
「まずは年俸」などと 言われてるわけだが、実際は人間はお金だけで動くわけではない。
んじゃなにかっていうと、「快適さ」かなあ。 その基準は人によってちがうだろうけど。
たくさんのお金をもらって生活に不安がないのが快適な人もいるだろうし、 新しい技術に触れられるチャレンジングな仕事が快適な人もいるだろうし、 自分の好きなことに専念できる生活が快適な人もいるだろうし、 尊敬できる人と一緒に仕事できることが快適な人もいるだろうし、 家族と一緒に過ごせる時間の余裕が快適な人もいるだろう。
全員を満足させることは不可能だが、 「人間的な生活」と「ハッカーらしい生活」のいずれか(できれば両方)は 提供できるといいなあ。
集中講義、2日目。今日は「プログラミング言語の実装」。
今日は言語処理系の典型的な構造や実行環境などについて。 字句解析、構文解析、最適化などの基本的な部分や、 仮想機械やガーベージコレクションについても説明する。
昨日はプログラミング言語概論という感じで 「お話」としても聞ける内容だったと思うのだが、 今日はいきなり実装の詳細部分まで踏み込んだのでかなり難易度が高かったように思う。 難しいと思った人はごめんね。
今年も昨年同様、実際に学生さんに前に出てもらって、 ガーベージコレクションを実地で体験してもらった。 リファレンスカウント、マークアンドスイープ、ストップアンドコピー、 それとジェネレーショナルの各アルゴリズムについて 実際に体を動かして学んでみた。
学生さんからは「オブジェクトの参照関係が見えにくかった」という指摘があったのだが、 これはある程度わざとである。 というのも、コンピュータにとってオブジェクト間の参照関係は鳥瞰的には見えない ので、いちいちオブジェクトを覗きに行かないとわからないからだ。
まあ、自分でGCアルゴリズムをデザインする機会はまずないだろうけど、 各種処理系のGCがどういうアルゴリズムで動いているか把握しておくことは 役に立つこともある、かもしれない。
集中講義はこれでおしまい。三年間やってみたけど、 三年目が一番うまく行ったような気がする。
来年もやりたいか、と聞かれると、ビミョー。
Lispのことをわかってない人は、結局Lispを「再発明」する破目に陥る、という話。 グリーンスパンの第10法則ふたたび。
まあ、RubyだってLispの再発明であると言えないことはないわけで、 それは認めちゃうんだけど、とはいえ、じゃあ、Lispが再発明も要らないほど 素晴らしい言語かっていうと、ちょっと疑問がある。
「Lispファン」にはまったく見えないが、 そうでない人には障害になる「なにか」が確実に存在して、 再発明されたRubyとかが(Lispよりも)人気があるのは その「なにか」成分が少ないんじゃないかと。
ということは、再発明したのも無駄じゃなかったんじゃないかと思う。
どうやら昨日、私のアドレスをFromに入れて スパムをばらまいた人がいたらしい。 大量のエラーメールやら不在メールやらが届く。 これらは文面がスパムとは違うのでフィルタに引っかからない。 困ったものだ。
考えてみると、これは結構巧妙だ。
攻撃を受ける方としては迷惑極まりないが。
来週、21日から24日まで福岡。
21日の夜とかならなにかできるかも > 福岡方面の人。