Rubyist Hotlinks 【第 32 回】 卜部昌平さん

はじめに

著名な Rubyist にインタビューを行う企画「Rubyist Hotlinks」。 第 32 回となる今回は、Ruby 1.8 系のリリースマネージャを担当されている Ruby コミッタ、卜部昌平さんにお話を伺いました。

では、お楽しみください。

1.jpg

プロフィール

好きな言葉
перестройка
尊敬する人
Михаил Сергеевич Горбачёв
ご本人のサイト
卜部昌平のあまりreblogしないtumblr

インタビュー

聞き手
ささださん
語り手
卜部さん
野次馬
ryopeko さん、arton さん、たなべさん、川口さん、郡司さん
日にち
2013 年 3 月 23 日
場所
渋谷ヒカリエ

目次

プロフィール

生年月日、出身地

2.jpg

ささだ 今日はよろしくお願いします。

卜部 よろしくお願いします。

ささだ まずはいつも訊いている生年月日、出身地、現住所、家族構成、いずれも差し支えないところで。

卜部 はい。けど、僕が '81 年生まれっていうことは、けっこう、いろんな人に言われているような気がするんだけど。

ささだ 言われるものなの?

卜部 Hotlinks とかで言及されてませんでしたっけ。あ、Hotlinks ではないのか。Twitter とかでは、けっこう言われている気がしますね。

ささだ Twitter で「'81 年生まれ」って、言われるの?

郡司 Ruby のリリースマネージャが '81 年生まれが多い、という話は、聞きましたよ。

ryopeko Yugui さんとか。

卜部 えっとね、そもそも、Ruby のコミッターに、'81 年生まれが 8 人ぐらい居るんですよ。

ささだ 8 人もいるの!? そんなに居たっけ?

卜部 えっとね、僕が把握してる限りでは、年齢わかんない人はちょっとおいとくとして、*1

というわけで、僕らの世代はムダに沢山居るので。

ささだ なんと。

卜部 というわけで、まあ、Ruby のコミッターは、だいたい三十代が、こう、いちばんメインという感じで。

ささだ そろそろ三十代になっちゃったわけだね。

卜部 そうですね。ヤバいですね。二十代がぜんぜんいない*10ですね。

郡司 sora_h 君が十代ですよね。

卜部 えっと、十代は、sora_h と、あと誰だっけ? 最近、ごく最近入った、Charlie Somerville という人が自称 18 歳なので。本当かどうか知らないけど。

ささだ なるほど。次、出身地。

卜部 出身地は島根県ですね。

ささだ Ruby のふるさと。島根にいるとき、Ruby って知ってた?

卜部 いや、だって、生まれた時、まだ Ruby 無いし。

一同 (笑)

卜部 で、Ruby を知ったきっかけ、みたいな話は、あとでやると思うけど、大学入ってからなんで、東京に来てからですね。

ささだ 今や Ruby City ですよ。

卜部 そうですよね。

ささだ 親御さんから何か言われる?

卜部 あ、言う言う。今度 11 月くらいに Ruby のイベントとやらがあるらしいよ、というくらいの話はしますね。

ささだ RubyWorld Conference ですね。「お前は出るのか?」みたいな。

卜部 「まあ、出ません」みたいな話をする。

ささだ それ出たほうがいいってこと? 出たいと言えば出られるんじゃない?

卜部 どうなんですかね*11。言えば出れるのかも。

郡司 故郷に錦を飾るということで。

一同 (笑)

ささだ 今はどこに住んでいるんだっけ。

卜部 東京都です。

ささだ 東京を転々としているよね。

卜部 そうでもないけどね。どっちかっていうと、今のところに住み始めて三年くらいだけど、そのうち一年ぐらいは、なんかどっか他のところに、例えば福岡行ったりとかしてたんで、そういう意味では東京にいない時間が、結構長いって感じですね。

ささだ 家族構成は。

卜部 一人ですね。独り身です。

ささだ 彼女は、募集中?

卜部 募集といえば募集中。まあ、今はいないですね。

好きな言葉、座右の銘

ささだ 好きな言葉、座右の銘。

卜部 いろいろ考えたんだけど。

ささだ 皆さん色々考えます。

卜部 どうしようかな。今日は、じゃあ。

ささだ 何で「今日は」なの。

一同 (笑)

郡司 表の好きな言葉、裏の好きな言葉があるとか。

尊敬する人

卜部 じゃあ今日は、好きな言葉は「ペレストロイカ」で。そして尊敬する人はミハエル・ゴルバチョフということでどうでしょう。

arton ペレストロイカって何だっけ。

郡司 革命、とかそんな感じでしたっけ。

卜部 「改革・開放」ですか*12

ささだ 何か由来とかあるんですか。

卜部 僕が子供の頃って、ロン・ヤス*13とかさ、あるいはサッチャー*14とかさ、あるいはゴルビーとか、そういう時代なんですよ。

arton あー。

卜部 僕が子供の頃には、テレビを見ると、そこではだいたいエーリッヒ・ホーネッカー*15とか、ニコラエ・チャウシェスク*16がどう、とかっていう話をしていて、僕が見ていた大人の人たちっていうのは、お話の分かる人と分からない人に二分されてて。で、お話の分かる人の代表がゴルビーだった、という感じですね。まあでも、別に、もちろんゴルバチョフが一人でやっていたというわけではなくて、レフ・ワレサ*17とか色々いたわけですけど、ま、そういった中で、「新思考外交」だっけ、柔軟な頭の方、というイメージですね。もちろん当時ゴルバチョフがやったことが正しかったのか、ということを今評価するとどうなの、というのは色々あると思いますけど。

arton すげえ難しいよね。

卜部 ね。

arton 改革・開放したら、とんびに油揚げさらわれてなくなってしまったと。なんだそれ。

卜部 今で言えば、たとえば「オバマが Change って言ったらアメリカなくなった」くらいの感じですよ。

一同 (笑)

arton しかもなぜか大統領がシュワルツェネッガーになってた、という感じ。何でエリツィンなんだよ、と。

卜部 エリツィン、(今のアメリカだと)誰みたいな感じなんですかね? 戦車乗って演説してるのは分かったけどさ*18

ささだ 子供の頃にそれを見てかっこいいと思った?

卜部 まあそうですね。

ささだ 今ペレストロイカのようなことをやっているところってありますか。今この辺が熱い、という。

卜部 今この辺が熱い!? それは難しいですね。

ささだ アベノミクスとかは。

卜部 別にアベノミクスは改革じゃないじゃん。うーん、特にないですね。

ささだ ペレストロイカが最高だったと。

卜部 最高とは言わないけど、そのあとみんな色々やろうとして、理論的な発展とか色々あったと思うんですよ。なので逆にとんがった感じにはなっていないというか、オールラウンドに攻めようとしているので。

ささだ みんな賢くなった。

卜部 そういう意味では、賢くなったっていう感じですね。ゴルバチョフも、改革が成功したとは言いづらい。最終的に、ソ連がなくなっちゃったわけだし。

代表作

ささだ 代表作。

卜部 僕を代表しているのかよくわからないんだけど、個人的に頑張ったのは、Hotlinks の最初のほう。超がんばりましたね。

一同 (笑)

ささだ 著作じゃなくて、ソフトウェアのことを聞いているんだけど。いや、インタビューのテープ起こしではお世話になりました。

arton 江渡さんのとか。

郡司 江渡さんのインタビュー記事はすごい量ですよね。

卜部 今ここで思い出してみると、たださんが最初かな。たださんの回に野次馬として行って、「テープ起こしをやりますよ」と言って、やったのが最初ですね。

ささだ あの頃は、まだ 1 時間くらいだったっけ。

卜部 たださんの回は RHG 読書会の前とかで、ふらっとやったんですよね。

郡司 第四回ですね。

卜部 そのあと徐々に長くなるに従って、僕も頑張ってみました。江渡さんと田中哲 (akr) さんの回がすごかった*19ですね。

arton あれは圧倒的だよね。

卜部 あの頃は本当に、るびましかやっていなかった。寝ても覚めてもテープ起こししてましたもん。

ささだ 本当にすいません。

一同 (笑)

ささだ 代表作は Ruby 1.8 とかじゃないの。

卜部 Ruby 1.8 は僕が作ったわけじゃないので。

ささだ 「俺のおかげでおまえら使っているんだぞ」って言ってもいいのでは*20

卜部 今の会社に転職したら、一番最初に「あ、.screenrc の人だ」って言われたので。周りから見た僕の代表作は .screenrc*21 らしいですね。

一同 (笑)

ささだ tumblr に書いてあるやつですね。

卜部 そうそう。「今度 .screenrc について一時間喋ってくれませんか」とか訳のわからない依頼*22をされたこともあります。

一同 (笑)

arton screenrc で検索すると、上から 2 番目に出てくる。.screenrc の記事、いきなり「生産性のない話題」って書いてある。代表作って、まさに生産性じゃん。

一同 (笑)

ささだ あれは、TiMidity++*23 とかは?

卜部 あれも、僕が作ったわけじゃないからね。

ささだ あれはどうなったの?

卜部 どうにもなっていないというか。まあ、地道にやってます、って感じですね。

ささだ まだ続いているの?

卜部 まだ続いてはいます。

ささだ 次、著作。

卜部 著作はあまりなくて、ささださんの論文に co-auther として書いていただいたのが 2 編あるのと、あとは Flanagan の Ruby 本に監訳ってのがあるくらいですね。

ささだ 本は書かないの?

卜部 本ねえ。お話があればって感じですが。

ささだ screen についてとかは。

卜部 書いても、そんなに売れなそうだし*24

一同 (笑)

嫌いなメソッド、好きなメソッド

ささだ 好きなメソッド、嫌いなメソッド。

卜部 実は、好き嫌いをあえて作らないことにしている。嫌いなメソッドを作っちゃうと、「これ嫌いだからメンテしなくてもいいや」って感じでメンテナンスしない、とかあるじゃないですか。

ささだ メンテナンスか。使わない、じゃなくて。

卜部 こいつバグってるけど嫌いだからいいや、とかなっちゃうと、やっぱり問題あるじゃないですか。

ささだ バグっているからみんな使わないようにさせよう、とか。

卜部 というわけで、あまりあえて作らないようにしている。あえて言うとすれば、1.9 以降の新機能とかですね。lazy とか便利だなと。

ささだ lazy は 2.0 ですね。lazy 使ってますか。

卜部 無駄に lazy って入れて、動きが変わらないね*25、と思ったらバグった*26りとかして。あー、とか思ったりする。

一同 (笑)

Ruby に関して

Rubyist になったきっかけ

ささだ Ruby について。Rubyist になったきっかけは。いつからですか。

卜部 2000 年の 4 月だと思うのですが、大学に入って、大学の生協に入ってみたら、例のマヨネーズ色*27の Ruby 本*28が平積み*29になっていたと。それまで僕は Ruby というものは一切知らなくて、「オブジェクト指向スクリプト言語 Ruby」って書いてあって、なにこれ、みたいな感じで買った覚えがあります。

ささだ まつもとさん石塚さんが書いたやつですね。それを買ったのがきっかけ。

卜部 Ruby を知ったきっかけはそれで、その時は本を買っただけで、CD-ROM がついてきたのでちょっとさわってみた程度*30で、そんなに真面目に使っていなかった。

ささだ ちょっとさわってみただけと。

卜部 ちょっとさわってみた程度。2 年くらい経って、日本にもブログブームみたいなのがやってきて*31、ブログやるか、みたいな感じになって。2002 年くらいに tDiary を始めて。

ささだ その頃はブログといえば tDiary だったと。

卜部 そうでもないかもしんないけど、日本人作者だし、いちおう Ruby の本買ったことくらいは記憶にあったからさ。と思って使ってみたら、これが見事に動かないわけですよ。

ささだ 動かなかったんですか?

卜部 自宅で Apache で CGI とかやろうとすると、パフォーマンスが悪かった*32りすることもあって、がーっとアクセスが来るとがーっとリファラとかが溜まって、非線形に遅くなって、全く動かなくなったりとかして。しょうがねえなあ、ということで手を入れたりとかしていた。

ささだ なるほど。tDiary で人生が変わったってやつですね。人生曲がったと。

卜部 そうですね。この間、たださんが言っていたやつですね。

arton そのたださんへのインタビューが、記念すべき第一作か。

卜部 Hotlinks に遊びに行ったのはそういう理由ですね。tDiary で遊んでいてバグを見つけて、これおかしいじゃん、って tDiary に書くと、まつもとさんとか中田さんとかが来て、僕のダイアリーのコメント欄に diff を貼って去っていく、という感じで。そうじゃなくて直せよ、みたいな。

一同 (笑)

ささだ これで動くから、って。そういう時代だったよね。コミュニケーションは tDiary のコメントで。

arton そこが tDiary だからね。

卜部 ツッコミができると。

arton あれ、「mputの日記。」って今存在しないよね。

卜部 あれですね、自宅サーバーだったので、自宅のサーバーが壊れてしまって*33終了しました。

arton そういえば代表作と言えば RubyConf のレポート

郡司 リアルタイムレポートされてましたよね。

卜部 ごく最近、Twitter のログが落とせるようになった*34ので、おっと思って落としてみたら、11 月くらいがばーっとログが出ていて、おお、11 月には毎年 RubyConf に行っているんだと。傾向として明らかになってすごいですね。

郡司 なるほど、最近やたらと「My First Post」って言い出したのは、Twitter のログが落とせるようになったからなんですね。

卜部 月別の傾向とか分かるので面白いですよ。

ささだ 今 Twitter でコミュニケーションするっていうのの代わりに、昔は tDiary のコメントと、アンテナで Ruby 関係を巡る、っていうのを数年やっていたような気がする*35

卜部 やってましたね。

ささだ 今アンテナとか使ってます?

卜部 るるりんとか生きてるんじゃないの。

ささだ 生きていると思うけど。

卜部 今、読者の人を完全に置いてけぼりにしているような気がする。るるりん、という Ruby 関係のアンテナがありまして。

ささだ るるりんが出来た時に、すごい便利になりましたよね。

郡司 はてなアンテナみたいなやつですか。

卜部 今「るるりん」でググると上から 3 番目くらいに出てくる。素晴らしい。動いてる動いてる。

arton さみだれ。これがるるりんなの?

卜部 ここに移ってくる前は、rrr.jin.gr.jp に置いてあって、やがてここに移ってきたんだったと思います。

郡司 おお、意外に便利ですね、これ。

ささだ ちなみに、このインタビューの記事名、「Rubyist Hotlinks」は、このアンテナの名前である「Ruby Hotlinks さみだれ版」から取っています。

現在の Ruby との付き合い

ささだ 現在の Ruby とのつきあいを教えて下さい。

卜部 現在の Ruby とのつきあいは、日本 Ruby の会。これは Ruby とのつきあいというか、Ruby の会とのつきあいだけど。Ruby 本体とのつきあいは、コミッタということですよね。Ruby 1.8.7 のブランチメンテナをやっています。あと最近、作ったスライドを Speaker Deck に置いたら 15,000 Views くらい行って良かったなと。

ささだ それはすごい。2.0 についての発表資料ですよね。

卜部 そうそう。

ささだ ポジティブだと駄目っていうコメントが Twitter であったけど。なんでポジティブだと駄目なの?

卜部 やりづらい。駄目というか、難しい。疲れる。

ささだ ちゃんと Dis らないと駄目だと。芸風と合わないと。

arton C 死ねとか。

卜部 あんな感じのノリだと、ストレスなく言える。

ささだ 1.8.7 の話はまた後でしますか。

Ruby の好きなところ、嫌いなところ

ささだ Ruby の好きなところ、嫌いなところ。

卜部 やりたいことと記述のギャップが少ないですよね。割と。プログラムを書くということに関しては、すごく簡単だと。今仕事で Perl 書いてますが、Perl と比べるとね*36

一同 (笑)

ささだ Perl と比べると Ruby はよい、と。

卜部 そうですね。書きやすいですね。

ささだ そうですか。何かツッコミづらいなあ。嫌いなところ。

卜部 プログラムを書くのは超簡単なんだけど、その前後が難しいと思っていて。たとえば設計をするだとか、あるいはデバッグをするだとか。そういったところに関して、あんまりツールが足りないと僕は思っています。

ささだ というと?

卜部 設計の話をすると、たとえば「型がない」という話があるわけですよ。プログラムのデザインというのは、アプリケーションはともかくとして、ライブラリのデザインというのは、やらないことを決めるというのが大きいんだよね。ユーザーに何をやらせないか、というのがデザインとしてすごく重要なポイントなんだけど、Ruby の場合は何でもできちゃうので。ユーザーがなんでもできてしまうと。最終的に、だから eval すればいいでしょ、みたいな話になってくるので。そういう意味では、ユーザーができることを制限させてデザインをするという方向が、実はすごく難しいですね。というところを何とかしたいんですけど、でもどうするの、って。

ささだ そこはまつもとさんはけっこう否定していたと思っていて、そういう意味ではプログラマの自由*37を奪わないことが大事という言い方をしていたと思う。ライブラリという観点からすると、そういうわけにもいかんでしょ、という話?

卜部 そうですね。

arton 改革開放したらゴルビー追放されちゃった、みたいな話?

ささだ それはちょっと難しい話に。

一同 (笑)

卜部 作った後の話としては、デバッグやっぱり難しいですよね。何が起こっているかよく分からない*38

ささだ 何が起こっているかよく分からない、と。何があればいい?

卜部 どうなんでしょうね*39

ささだ それは何があったら解決される? たとえば C++ とかなら?

卜部 C++ では、あまり解決されていない気もするけど。でも IDE とかがあれば、インタラクティブなデバッガとかあるじゃないですか。ブレークポイントとかが仕掛けられたりして、そこに来たら止める、とかできるよね。

ささだ それ ruby-debug とかでは昔からできてたよ。

卜部 できる、ということと、簡単、ということには、だいぶ差があるので*40

arton ruined とか、簡単じゃない? 俺が作った。

卜部 どうなんですかね。僕はそれは使ってみないと。

ささだ 有名じゃないから、使われていないからできない、という感じ?

卜部 最近だと Pry というのがあって、Rails の中に pry と書いておくと、Rails を動かしながらポンと止まって。コンソールに落ちてくる。便利、ってみんな叫んでいるんだけど。

ささだ それで便利とか言うなと。

卜部 いや、便利だと思いますよ。実際。でもまあ、そうなのか、と。もうちょっとそういう方向に(言語から)支援があってもいいかなと。あとはデバッグも、パフォーマンス測定、instrument の方ですね。

郡司 ベンチマーク?

ささだ ある特定のところだけ図りたいとか。

卜部 けっこう面倒くさいですね。TracePoint が入ったから今後はわからないけど、パフォーマンスを測定しようと思うとパフォーマンスデグレードがでかくて、精度の高い測定ができなかった、とか。

ささだ ruby-prof は、かなり頑張ってる。

卜部 という話もありましたね。

ささだ けっこうそれに関しては昔の印象が強くて、それが改善されてもその悪評が消えていないというのがあるかな、と思う。IDE の話だと、売っている奴はけっこういいらしいと聞くけど。使ってないけど。

卜部 なるほど。

ささだ いわゆる普通の人たちが「Ruby ってこう使うんだよ」って広めている使い方が、まだそこまで至っていない使い方なのかな、と。それで「使いづらいね」っていう話をしていると。

卜部 プロファイラの研究とかは、まあやっていましたよね。笹田研で*41

ささだ あのへんをうまく取り込みたいですね。

卜部 そういったところがもっと発展するといいなと思っていますね。

ささだ 頑張ります。他にある? 設計というと、今は UML を使うんですかね。

卜部 どうなんでしょうね。まあ僕はシーケンス・ダイアグラムは作ったりとかしますけど。

ささだ 石塚さんがけっこう Rational Rose でぱーっと書いてプログラムを書いていらっしゃったみたいですが。あのへんのツールとの連携とかをやると嬉しいとかあるんですか。

卜部 かもしれませんね。言語側のサポートじゃなくて、ツールとして。UML を書くと正しさが分かるみたいな。

ささだ そういう意味では卜部くんの Ruby の嫌いなところって、処理系というより環境の話?

卜部 環境と絡むところですね。どこまでが処理系でどこまでが環境か、というのは非常に微妙なので。

ささだ 処理系、環境。言語としては、さっきの制限をかけられないっていうのが嫌いなところと。

卜部 まあそうですね、言語としては。

ささだ で、ほかにも環境として足りないところがあると。

卜部 Smalltalk とか見ると、環境って何だろう*42、っていう話になりますよね。

ささだ そうだね。では次に行きましょうか。

Ruby を使った成功事例

ささだ Ruby を使って成功だった、うまくいったという事例は。

卜部 前職では Ruby を使って仕事をしていたので、非常にたくさんありますね。具体的にはなかなか言えないのですけど、数はたくさんあると思います。

ささだ こういうところでうまくいった、っていうのを、ぼかして言えないですか。Web 開発とか。

卜部 まあ Web 開発は普通に、いいですよね。あとは前職で言うと、Ruby 合宿とかやったりしましたね。中高生を集めてきて、Ruby でプログラムを何泊かで書く、みたいな感じで。そういうのをやるときに、ぱっと書けるので。実装するところが容易、というのはすごくいいですよね。

ささだ Haskell を一週間でやりましょう、というのだと厳しいと。

卜部 わかんないですよ (笑)。Haskell ではやったことがないのでわからないですけど。

郡司 昔、AR の発表をされていましたよね。それを中高生にやってもらったんですか?

卜部 そうですね。それですね。

ささだ AR のコンポーネントを渡してあげれば、生徒さんはそれを使って作っていけると。

卜部 そうですね。

ささだ 何か面白い結果になった? それを拡張して。

卜部 インタラクティブなもので、画像を見てみたり。アイコンを登録すると、中にぴょんと表示される。

ささだ そういうのを配置したのをつなげる、と。

Ruby のキラーアプリケーション(ライブラリ)

ささだ では次。キラーアプリとかライブラリ。

卜部 tDiary ですね(断言)。

一同 (笑)

ささだ 久々ですね、インタビューのこの項目で tDiary が出たのは。昔はみんなそう言っていたような気がします。

卜部 あとまあ tDiary は僕の個人的なやつなんだけど、そういうのではなくて仕事で、というのであれば、GitHubTravis CI の組み合わせは、どっちも Ruby が使われていますが、だいぶ仕事のやり方が変わりましたね。

ささだ なるほど。すごい、いい話ですね。

卜部 あのへんはキラーアプリというか、ライフチェンジングな気がする。時々 unicorn が出て*43、けっこう悲惨な時もありますが*44

ささだ 今の仕事でも使っている、と。

卜部 使ってます。GitHub Enterpriseですね。

ささだ 仕事のやり方がだいぶ変わったと。

卜部 それはねえ、僕が入社したときにはもう入っていたので、元からどう変わったかは分からないですね。元からの方はどうですか*45

たなべ すごい変わりましたよ。

ささだ それまでは?

ryopeko svn のすごい巨大なリポジトリで。各個人が何をやっているか分かってなかった。GitHub になって、みんなが連携して作業するようになって、すごく良いですね。

ささだ みんながリポジトリ見えていたのに?

ryopeko svn のときはログを意識していなかったんですね。使い方の問題ではあるんですけど。

ささだ svn log だと遅いから?

たなべ 単純にコミットコメントが update だけみたいな感じでひどかったり。

ryopeko ちょっと便利な tar.gz くらいの使われ方しかできてなかったのが、急に github が来てすごい世界が変わった。

卜部 あとは pull request が便利ですね。

ryopeko そうですね、pull request で仕事の仕方がずいぶん変わりましたね。

卜部 でも、最近の(GH:e の)更新でアクティビティが自分の個人ページで見えるようになって、働いていないのがまるわかりになってやばいですね。

たなべ さぼっているのが分かってしまうと。

卜部 アメリカに行っている期間はコミットが全く無かったりとかして。「ここ何やってたの、俺?」みたいな。

ささだ それで査定されるわけじゃないよね。

卜部 もちろんそうですよ。違うんだけど。でも、見ていると冷や汗をかきますよね。俺、働いてないわー、みたいな。

ささだ 単にインデント直したりとか、わざとバグ入れてバグを直すとか。

卜部 それはひどい。

一同 (笑)

Ruby の習得

ささだ Ruby の習得は簡単でしたか。

卜部 最初のマヨネーズ色の Ruby の本を見て分からなかったのは、ヒアドキュメントの使い方が分からなかった。

ささだ ヒアドキュメントの仕様は分かった?

卜部 分からなかった。どうなっているかさっぱり。

ささだ 使い方が分からなかったと。なぜこれで行けるのかと。

卜部 あと実は yield も分からなかったですね。Ruby を始めるまで、そういう概念を知らなかったので、何これ、みたいな。

ささだ 関数を渡して内側で起動するようなのが難しかった?

卜部 そういう意味では、実行の順序が飛んでいくようなのが難しいですね。ヒアドキュメントも流れの中であっちに行ったりこっちに行ったりするじゃないですか。

ささだ 中田育男先生が、Ruby の JIS 規格や ISO 規格を検証するために、Ruby の parser を書かれているんですけど。

卜部 Scala でね。

ささだ そう、だけどヒアドキュメントだけできなかったっていう。

卜部 それは、parser だけではダメで、scanner と連携しないとたぶんできない。

ささだ scanner と連携しなきゃいけないのはヒアドキュメント以外にもいくつかあるんだけど、その中でも特別変で。

arton なんで?

ささだ なんて言えばいいのかよくわかんないんですけど、ヒアドキュメントは、後ろにずらずら書けるんですよ。end の後とか。

ryopeko 一行に、複数のヒアドキュメントのブロックが書ける。

ささだ し、その後に普通の式も書ける。次の行にヒアドキュメントが書けるので、method の def から end の間を見れば、method の実装が全部取れると思ったら大間違いなんですよ。end って書いた後に、ヒアドキュメントが続く可能性がある。

卜部 (サンプルコードをホワイトボードに書き始める)

1  def foo; <<bar end
2    ここは foo の中でーす
3  bar

卜部 end で終わったかと思うと実はそんなことなくて、bar に対応するのは末尾 2 行なんですよ。

arton こんな便利な使い方があったとは知らなかった。

ささだ この仕様良くないよね。

卜部 良くないよねとは言うけど、ヒアドキュメントとはこういうものだ*46と、マヨネーズ色の本には書いてあった*47ので。

ささだ 良くないよね、というのは、仕様・処理系書く方からすると。

郡司 使う方からすると便利だけど。

卜部 shell とか awk とかはこうなので、ヒアドキュメントの仕様というのは僕らが勝手に決めて良いものではないという感じですね。

ささだ なんで end の後ろに来たら嫌かというと、いくつかの議論で、メソッドの実装しているプログラムを文字列で取り出しというのがありまして。def と end の行番号を取り出すというのは作れそうなんですよ。99% は def と end の間を見れば上手くいきそうなんだけど、この仕様があるからそれが上手くいかないという話がありまして。(さらにホワイトボードに書く)

1  def foo; <<bar end; def baz; <<quux end
2    ここは foo の中でーす
3  bar
4    ここは baz の中でーす
5  quux

ささだ これの嫌なところは、def foo end の後にさらにヒアドキュメント quux を書いちゃうと、quux の中身は、他の def の後ろに来るということになるんですね。こういう風に書くと、foo の body は 1 - 3 行目、baz の body は 1, 4, 5 行目となってしまう。

郡司 一行にヒアドキュメントを 2 つ書いてつなげるとかできるんだ。

arton 気持ち悪いけどこれは便利だな。

ささだ で、メソッドの文字列を取る機能は、単純な機能に見えるんだけど、こいつがあるせいでなんかよくわかんないことになる、という話があります。

卜部 ヒアドキュメントは、Perl と Ruby はこんな感じですね、PHP はちょっと違った仕様*48。Python には、ヒアドキュメントという概念はない。

ささだ せめて、end をまたがないとか、ブロックはまたがないとか、そういう制限をしても誰も困らないと思う*49

プログラミング全般

ささだ プログラミング全般の話題に。初めてコードを書いたのはいつぐらいですか?

卜部 これはですね、これまでインタビューを受けた方とは違って、僕は親がエンジニアとかではないという話があって、結構遅いんですよ。思い返すと、93 年ぐらいに中学校に入ってから。一番最初にコードを書いたのは HyperTalk*50 というやつですね。

郡司 Mac。

卜部 その当時、MACPOWER という雑誌があって*51ですね、「掌田津耶乃の Stack 10 行勝負」*52という連載があって、一番最初に magic って書け*53って書いてあるんですよ。で、しょうがないので Home スタックに行って magic って打ったのが一番最初のコード。

ささだ あったあった。

卜部 それが中学一年生ですね。

ささだ なんで Mac なんかあったの?

卜部 それは生い立ちの話と絡むんだけど、うちの親が、自分の仕事に使うために Mac 買ってきたという感じですね。

ささだ それを横からいじって。

卜部 そうそう。

ささだ プログラムというのができるらしいと。やってみたら楽しかった?

卜部 まぁ比較的。

Ruby 以外

ささだ Ruby 以外のプログラミング言語は何を使いますか。

卜部 まぁ Perl ですね。

ささだ 笑。趣味とかは?

卜部 Ruby の開発やってるんで C ですね。好きかどうかは微妙だけど、良いと思っているのは最近の言語。特に LINQ が入った以降の C#*54 は結構良いなと。僕らが思っているような静的言語みたいな感じじゃなくて、動的言語のようにぽーんと書くと、勝手に型推論してくれて勝手に動く。

ささだ LINQ はそれに絡む?

arton 絡む。LINQ の場合テンポラリなオブジェクトを result として作って、そこから値を引っ張ったりするから構文の中で class を作んなきゃいけない。静的型言語だからコンパイル時にその class は定義されていないとできないはずなんだけど、LINQ の構文の中で型が作られちゃうから。

ささだ それをコンパイル時に解析しちゃダメなの?

arton もちろん、その通りです。ただ、それを、プログラム書いている人には見せないわけ。

卜部 つまり、select 文とかで返ってくる型って、文によって何が返ってくるか変わるじゃないですか。そのたびに、後ろ側で新たに無名の struct 型*55が毎回作られて返ってきていているんだけど、そのことをプログラマには一切意識させずに、あたかも動的に返ってきているかのように見せかけている。

arton そこが工夫されているところ。

ささだ なるほど。C# で何か書いてる?

卜部 仕事では書いてないですね、趣味とかでちょっと遊んでみるぐらい。

ささだ なるほど、好きな言語で他はありますか?

卜部 ごく最近は C# で遊んでるぐらいですね、好きとか嫌いとかはあんまないかな。

今まで読んだ中で最も美しいソースコード

卜部 この質問さ、るびまの wiki に書いたのって俺じゃないかって気がするんだけど*56

ささだ 知らないよ (笑)

卜部 もうおぼえてないけど、俺が書いたような気がしなくもない。そういうような問題意識を持っていた時期があるので。

ささだ なるほど。

卜部 美しいソースコードってわかんないじゃないですか、誰も。だから、ほかの人が美しいと思うソースコードを聞いていくと、その輪郭が浮かび上がってくるのでは、と思っていた気がする。でも、るびまを読んでみると、そうでもないよな、と (笑)

ささだ 何を美しいというか。

卜部 そう、突き詰めていくと美しいとは何ぞや、という話になっちゃって、さらに行くと竹内先生*57みたいに*58、美とは何か*59っていう話に行っちゃうわけですよ。美しいとは別に、バグがなくて読みやすくてきれいなコードってのはあるんだけど、それを美しいと呼ぶかはまた別の話、という話になりがちですね。

ささだ (バグがなくて読みやすくてきれいなコード)というのは?

卜部 CRuby のコードとかきれいですよね。

ささだ CRuby の一部のコード、いや、一部以外のコード。

卜部 うん、parse.y とかはそうでもない*60けど。

ささだ そういうのは皆さん良く言われるテンプレの答え。

卜部 だけど、それは美しいソースコードってのとはちょっと違うなってのが、わかってきた感じ。

ささだ 遠藤さんだっけ、あれ、arton さんだっけ、美しいとは字面が左右対称になっているとかと言っていて。

arton それは遠藤さんのソースじゃん。yugui さんかな?

ささだ 9 年インタビューやってるけど、インタビューで何を聞いたかまったくおぼえていない、ははは...。誰かが言っていた気がする。

卜部 全部おぼえているのはたいへんですよね。

arton その手のが美しいって言うなら、column 7 の美学が美しいのかっていう。

ささだ Fortran。

arton COBOL でもいいけど。

ささだ && arton びっちり*61

卜部 今でも、イコールの位置を揃えようとする人とかいますよね。流儀があるので、僕はどっちが良いとは言えませんが。

今興味を持っているテーマ

3.jpg

ささだ 今興味を持っているテーマは?

卜部 ごく最近だと、僕らがぜんぜん使っていなかったタブレットとかが広まってきているので、コンピュータとの関わり方が変わっていくような気がするんですよね、わかんないけど。今年とか、タブレットの方が PC よりたくさん売れるという話もあるぐらいなんで。デバイスも変わるし、キーボードも使わなくなるだろうし、ポインティングデバイスもマルチタッチになるし、というところで、どういうふうなプログラミングになっていくかが気になっていますね。

ささだ それ向けのプログラムをどう作っていくか、ではなくて?

卜部 どう作っていくかも含めて。あるいはそういうタブレットみたいのでどうやってプログラミングすんのってのも気になるし。

ささだ そういう世界でのプログラミングとは一体何かと。

卜部 あるいはデバッグもしづらいだろうし。どうやってるのかなと。

ささだ そういう新しい世界でプログラミングをどうするかというのはまだあまり世間に話が無い気がしますね。

卜部 考えている人は考えているはずなんですけどね。

ささだ もちろん、ただ私の観測範囲ではない気がする。

卜部 結局みんな PC でプログラミングしてますからね。

arton エミュレータでデバッグしてる。

ささだ サーバとクライアントの関係だと、ブラウザのリッチさも上がってきて、だいぶクライアントで処理するようにはなってきている。でもそれはタブレット関係ないもんね。

卜部 そういったところのフロンティアがあるかと思って転職してみた感じ。

ささだ なんと、そんな裏が...裏でもないか。で、DeNA では、キーボード? (笑)

卜部 それはまぁ... iPad で Perl 書いてますとかすごいね。

ささだ Perl Top とかね*62

arton くだらねーw

郡司 タブレットのアプリを、タブレットで開発するっていうこと?

卜部 ていう世界になっても良いと思うんですよねー。

arton 実機一番だからね。

郡司 GUI のコンポーネントを組み立てるとソフトができるっていうの、昔から研究されてますけどモノになっていなくて、あれなんでなんですかね?

arton かったるいから? toy program にはいいけど、product code を書こうとすると、コピペできない時点で使い物にならない。エディタなら簡単だけど。

卜部 その辺は、デバイスの問題もあって、マウスだとやりづらいっていう話だったのかもしれない。マルチタッチで両手が使えると違う、かもしれない。

arton それはあるかもしれない。

ささだ 単純な処理だけなら、たとえば Salesforce.com の VisualForce なら、GUI だけで出来るらしいですよ*63

卜部 Perl とか Ruby とかは、サーバサイドのプログラムとしてはずっと残っていくと思いますけど、今、クライアントサイドのプログラムは*64、だいたい Java か Objective-C で書かれているわけですが、それがずっと残っていくのか、viscuit のようなやつになっていくのかは、非常に気になっている。

ささだ そういう環境での、Perl プログラミングはどうなるか。

卜部 そうですね。まぁ、だからといって自分が何をやっているわけでもないんだけど。

ささだ 何かやろうと思っていることはないの?

卜部 思わなくもないけど、ツールが足らなすぎるので、がんばってやらないといけないのがたいへんだと思っていますね。クライアントサイドのプログラミングをしばらくやっていなかったので、やろうかなと思ったりするんですけど、めんどくさいですね、GUI プログラミング。すんごく。

ささだ 昔から進化してない?

卜部 そうねえ、Interface Builder*65 が昔からすごかったという話なのかもしれないけど。

ささだ 結局今って GUI 作ろうとすると何使うの?

卜部 Interface Biulder。Mac だと XCode ですね。iPhone アプリのソースコードとか読んでるんだけど、たいへんそう。

生い立ち

ささだ 生い立ち、また長そうだぞー。

卜部 さっきも言ったんだけど、中学生くらいまではパソコンと縁がない生活をしていたわけですよ。

ささだ どんな生活でした? 島根の生活は。

卜部 いや田舎ですけど。僕が通っていた小学校は 母衣小って小学校で、特筆すべき事項として、小学校の校区内に NaCl の本社があるわけですけど。そういった地域に住んでいました。で、建て替わっちゃった*66んで今は違うんだけど、その当時は学校の中に図書館が 2 つあって、司書さんがいて、非常に恵まれた環境でした。今でも小学校に司書さんはあんまりいないと思う。

ささだ 図書館専属の方がいた?

卜部 そう。 図書館は高学年用と低学年用で、非常に充実していました。 だから、ずっと図書館にいた感じ。

ささだ 本を読み漁っていた? なんでもかんでもっていう感じ?

卜部 比較的なんでもですね。

ささだ 印象に残ってる本とかあります?

卜部 むずいですね、『エルマーとりゅう』、それ小学校じゃないかな?

arton 小学校でしょう、幼稚園じゃつらいかな。

郡司 内容ぜんぜんおぼえてないけど、表紙のイメージがある。

arton 竜がいじめられているから助けに行くんだよ。

郡司 そんな話でしたっけ?

arton 竜が、空から落っこちてきて、動物の森に捕まっちゃうんだよ、ライオンとかカバとかゴリラとかに。それをネコと一緒に助けに行くんだ。

ささだ で、じゃあ、読書少年だった?

卜部 そうですね、うちの親が考古学者だったということもあり、教育的にも文系のそういう話を(よく読んでいた)。

ささだ 親御さんは、大学?

卜部 いや、島根県。

ささだ そうか、島根だとたくさんありそうだもんね、考古学。

卜部 実際には大学と、官公庁ぐらいですけど。で、中学生ぐらいの頃に、親が報告書を作成するということで、Mac を買ってきたというのが最初ですね。Mac の使い方を勉強するという意味で MACPOWER とかを買ってきていて、それを読んで HyperCard 使ってみたのがさっきの話。

郡司 漢字 Talk 6 ぐらいの頃?

卜部 6 じゃないですね、7.1.2 だったかな。

郡司 もう System 7*67 の頃か。

ささだ 白黒じゃない、タイルじゃないやつね。

卜部 Macintosh LC 630*68 でした。

郡司 一体型のやつ?

卜部 いや、セパレートです。

ささだ ピザボックス。

郡司 ああ、薄いやつ*69

卜部 そう、一体型は Performa とかでしたね*70

ささだ ぼく Performa 588 なので、LC 630 は羨ましいなぁと思っていた。

卜部 LC 630 は、FPU がついてないんですよ、整数演算しかできない。で、FPU が付いてないと何が困るかというと、BSD とかを動かそうとすると、FPU が要る*71んだ、これが。やがて Mac に飽きてくると...。

ささだ え、ちょっと、いつぐらいの話? BSD とかって。

卜部 しばらくしてからですね、中学 3 年から高校 1 年ぐらい。

郡司 そんな早いんだ。

ささだ まずは話を戻して、買った当初は、MACPOWER のスタック10行勝負の連載を読んでコピーして動かしてたの?

卜部 最初はそうですね。HyperCard って、スタック*72の中のスクリプトだけ書いてもしょうがなくて、絵とかもがんばって描いたりとか。意外に IDE っぽくなっているので、カードとかを増やすとかやんないといけなくて、その辺面倒だなと思いながらがんばってやっていた。

ささだ 何作ったの? 自分で。

卜部 ランチャーとかですかね。フォルダをたどって行かないとアプリケーションが起動しないので、一発で起動するように。

ささだ HyperTalk はどうやって学んだ?

卜部 スタック 10 行勝負は、10 行という制限があるので、言語のこととかは書いてないんですよ。

ささだ うん。しかも 2 ページの連載だし。

卜部 そう、だからしゃあないと思って、HyperTalk Reference を買ってきて読んだ。

ささだ HyperTalk Reference って、関数が書いてあるだけのやつでしょ?

卜部 うん、あー、文法とかは、Home スタック*73読んだ。

ささだ なるほど、あれに書いてあるんだ。 俺もその Reference 買ったのだけど、それらの関数をどう使うかがわかんなかった。HyperTalk って英語*74なんですよ、なになに is なんとかとか書くんですけど、ここには何が書けるんだっていうのがわかんなくて。結局、私にはわからなかった。

ささだ HyperTalk は、日本語版もあるんだよね。

卜部 AppleScript*75 の日本語版*76があるはず。

ささだ すごいよくできている環境だという印象がある。でも結局使い方がよくわかんなくて、わたしは PC-98 に逃げました。で、中学時代も本の虫だったの?

卜部 Mac と並行してっていう感じですね。

ささだ 中学でも図書館?

卜部 図書館も行ってたと思います。

ささだ 親御さんの本も読んだり?

卜部 親の本は、専門的過ぎてバックグラウンドがないと読みづらい。だからあまり読まなかったかな。

ささだ CNN 聞いてたっていうのは?

卜部 それはその頃ですね、中学時代。

ささだ 卜部くんと言えば英語が堪能、ということでも有名ですが。「どうしてそんなに英語がうまいの?」と以前聞いたら、CNN をずっと聞いていれば耳なんか慣れますよって言われた記憶が。なんで聞いてたのそれ?

卜部 93 - 95 年が中学生なんですけど、95 年ぐらいに、一時期、日本の TV 局がオウムしかやらない時期があって。

一同 あー。

卜部 で、島根県なんでテレ東とかない*77の。

arton 逃げられないんだ。

卜部 そう。NHK 見ても常にオウム真理教しかやってなくて。しょうがないな、どこかないかなってチャンネル回してると、なんか違うのやってるんですよ。で、意味わかんないけど、とりあえずこれがオウムじゃねーやと思って流してた。

ささだ えー、それで英語できるようになるの?

卜部 いや、ならないと思いますよ。それだけではね。なるためにちゃんと学校に通ったりとかしたので。耳はそこで、っていう感じかな。

ささだ 部活は?

卜部 中学は PC 部だった。

ささだ PC 部があったんだ。先進的な感じがしますね。うちはなかった。

卜部 中学校には PC が置いてあった。

ささだ PC-98 ?

卜部 なんだっけ。

arton もう DOS/V になってるんじゃない?

ささだ 学校って NEC が入っているイメージ、勝手なイメージです。

郡司 98 が入っていました。

卜部 思い出せないけど、N88Basic*78 が乗っていたのはおぼえています。

ささだ それでゲームとか作っていたりした?

卜部 Basic でゲームを作るのは超むずい*79ので、既存のゲームがあるので、それを見て遊んでいたりしました。

ささだ 既存のゲームで遊んで終わり?

卜部 いや、print するとソースコードが見えるじゃないですか。

ささだ あー、それで勉強したり、ちょっと変えてみたりとかか。

卜部 でも部活っぽいことはしてなかったね、そうやって遊ぶ感じ。

ささだ で、その中学校の後半で、Mac に飽きてきた?

卜部 そうですね、HyperTalk ってやれることがそんなに多くないんですよ、オーサリングツール*80なんで。 HyperCard の中では完結しているんだけど、HyperCard の外の、 例えば Finder と連動したりってことをやりだすとちょっと難しいので、 どうしましょうかね、という感じになってくる。で、その頃、Mac の環境では C のコンパイラとかなくてですね。いや、あるけど、中学生のお小遣いで買えるような値段ではない。

ささだ CodeWarrior*81、10 万円するんだよね。欲しかった。けど買えませんでした。

卜部 買えませんでした。で、ResEdit*82 とかをいじったりもしました。ResEdit を見ると、CODE っていうリソース*83にコードが書いてあるからそれをいじればできるよ、って言われるんだけど、見てもさー、MC680x0 のフルアセンブラなんで。

ささだ バイナリ列が入ってる?

卜部 入ってる。

ささだ アセンブラでも何でもない。

卜部 これをいじれと言われてもなかなかね、みたいな。アイコンいじったりは楽しいんですけどね。で、あるとき、NetBSD というものを動かすと、コンパイラがついてくるらしいと。

ささだ 中学とか高校で、なんで NetBSD を知ることが出来るの?

卜部 いや、本屋さんに行くと、島根の本屋さんは大きくない*84ので、 Mac とか BSD とかは、コンピュータ書籍のその他の欄に積まれているんですよ。Mac の本を見ようとすると、隣に BSD の本があることがわかる。

ささだ 見つけてしまったわけだ。

卜部 で、NetBSD/mac68k を入れると、C コンパイラがついてきて gcc が動くらしいと。入れてみると、FPU がないので動かないとかあったけど。

ささだ 乗り越えた?

卜部 それはねー、結局乗り越えてはいないですね。浮動小数点演算を走らせようとするとマシン例外が起きるので、そういうことをやらなければ OK という感じですね。 ただ、そういうアプリであるかは判定が非常に難しいので、 やってたら時々 kernel panic になるみたいな。

ささだ なるほど。ねんがんの C コンパイラをてにいれたぞーと

卜部 そう、ねんがんの C コンパイラをてにいれたぞー、なんだけど、C のコンパイラを手に入れたけど、何も書くものがないじゃないですか*85? で、仕方ないから BSD のソースコードを読んだりとか。

ささだ あはは (笑)

卜部 インストールすると、NetBSD はソースコードがついてくるんですよ。なので、それを読む。

ささだ オープンソースの教育効果が如実に現れたわけですね。

卜部 オープンソースってもうあったのかな。96 年の頃、今オープンソースと呼ばれているものがあったことは間違いないけど、オープンソースという概念だったかはわからない。

arton オープンソースは 97 年のはずだ。

卜部 なるほど、じゃあまだなかったわけだ、BSD という文化圏しかなかった。だから Linux にはあんま行かなかったんだよね、Mac だから。Mac で Linux が動くの随分後なので。*86

ささだ その辺全部一人でやってたの? 本読んで。

卜部 うん、全部一人ですね。その頃パソコン通信とか知らなかったので、周りに仲間がいることを知らなかった。

ささだ なるほど、すぐそばに NaCl があったのに。

卜部 ないでしょまだ。

ささだ ないのか。松江の方にインターネットはきてなかった?

卜部 ありましたよ、僕の中学は島大の附属中学なんだけど、大学から専用線が道路の上を引かれてきていて、中学校まではインターネットが来ていた。

ささだ インターネットは知ってた?

卜部 うん、Yahoo! の日本語版ができましたわーいみたいなのは。

ささだ PC 部とかでそれを見ていた? それとも授業?

卜部 どうだったっけな、中学校の途中で PC の入れ替えをして、入れ替えをしてからつながった。 で、 Firefox、じゃないや、

郡司 Mosaic?

卜部 NetScape*87。3.0、gold*88 だったかもしれないけど、これを入れて。

ささだ 見えるぞと。

卜部 そうそう。島根県はバスケットが盛ん*89なので、バスケット少年とかは、アメリカのバスケの試合の結果を見たりとか。

ささだ すごいまっとうな使い方だ。

卜部 だって当時日本はそんなにインターネット文化圏とか熱くなくて。

ささだ 商業化した直後ぐらい?

卜部 そうですね。

ささだ じゃあ、中学・高校とそういう意味ではネットワークは繋がってたけど、それを追求するという方向には?

卜部 そうそう、中学校はそんな感じで、大学から専用線が引かれてきていて。95 年に 10M でバックボーンまで繋がっていた*90と。高校になったらいきなりダイヤルアップに退行して、これは遅いみたいな。

さだだ でも、あったんだ?

卜部 あるっちゃ、ありましたけど。そんなに激しくなかったので。ダイヤルアップの 1 本の回線を皆で使ってたみたいな感じですよ。ちょっと辛いのでそこで大分退化しましたよ。

ささだ なるほど。高校では、なんか部活やってたんですか?

卜部 放送部でしたね。担任の先生が放送部の顧問をやっていて巻き込まれた感じですね。

ささだ 放送部って、ラジオとか?

卜部 そうそう、ラジオ番組を作成したりとか、あとは朗読ですね。

arton 英語の朗読?

卜部 いや、朗読は日本語でやりましたけど。

ささだ そういうので競いあうんでしょ?

卜部 コンテストとかやりましたよ。予選落ちでしたけど。

ささだ そういうのって自分たちで脚本を書いたりする?

卜部 色々あって、朗読のやつは、指定の課題を読むってやつ。

ささだ 聴きやすさを競い合う?

卜部 聴きやすいペースとか、正しい発音とか、方言出ないとか。それとは別に、自分たちで脚本作って番組制作みたいなのもあります。

ささだ 映画作ってみたり?

卜部 5 分間とかのですね。

ささだ リア充っぽい。

卜部 そういうことも無いけどね。

ささだ なるほど。という、高校時代。高校の時は卜部君の中でコンピュータについての知識はどう進化したの?

卜部 いや、特にはそんなでもないですね。

ささだ 中学校の延長? BSD のソースコード読んだりとか?

卜部 BSD のソースコード、すげぇたくさんあるので、それを読むだけでも時間掛かるんですよ。で、まぁ大体それで費やされた感じですね。

arton ほぼ読んだ?

卜部 ほぼって程では無いと思いますけどね。ドライバとかは、BSD でもドライバは特殊な文法で書いてあって*91とか、ネットワークは特殊な文法でとかあるわけですよ。ここの部分と、ここの部分は全然違うこと書いてあって、「これ同じ言語なのか?」ってなったりとかしてるわけですよ。

ささだ ていうのを、高校の頃から親しんでるっていうのがすごいことだよね。それはすごいアドバンテージだよね。

卜部 今から思うと、そうなのかもしれないですね。

arton それは島根?

ささだ 島根すごい。

卜部 島根関係ないと思いますけど。

一同 (笑)

ささだ ソースコード読んだのいつですか、arton さん。

arton 俺は、会社入ってからだよ。一番最初に読んだのはメインフレームのソースコード。

ささだ まぁ、会社入ってからが普通というか。普通ではないけど。

arton いや考えたら、大学の時一般教養で 360 アセンブラ読んでたな。

ささだ それでもちょっとでしょ? 授業で出る範囲なんだから。でも、卜部君は膨大なソースコードの海を中学高校の頃から。

卜部 あ、そういう意味では、いきなりインストールした NetBSD にソースコードが付いてきてたのが良かったですね。

ささだ 僕の場合は、全然分かんないままに PC98 で買って、ソースコードなんてついてこないから、逆アセンブルですよ。

arton いきなり、逆アセンブルしたの?

ささだ そう。これが育ちの違いか。(ほかの人にも一通り聞いてみようとして) 初めてソースコードっていつくらいですか?

郡司 私はベーマガ世代なので、当時、ぴゅう太というやつを買ってもらって、日本語ベーシックなんですね。ちょっと変わった言語なんですけど。

ささだ ただ、腐るほど読むっていうのは無かったでしょ。

郡司 それはないです。腐るほど読むって経験はないですね。

ryopeko 僕も、仕事してからですね。

ささだ 仕事してから? 仕事で他の人のソースコード読んでから、理解して。

arton ただ俺気がついたけど、会社の仕事とは別に Amiga を買って Fred Fish*92 コレクションの nethack とか xlisp とかのソースを読んでいたから*93趣味ですね。

ささだ じゃあ同じ時期に

卜部 入手性の問題もありますからね。ソースコードとか流通するようになったのがその頃かもしれないですね。

ささだ でも Amiga。

arton C だし。

ささだ ドライバとかは特殊だったかも。

卜部 ドライバは読んだとは言えないかもしれないですね。僕は歯が立たなかった。

ささだ あることは知った。その頃は OS のアーキテクチャとか分かんないでしょ?

卜部 わかんない。

ささだ ドライバと普通のソフトウェアの違いとか分かんないじゃん。

卜部 あ、そうか。確かにカーネルとそれ以外は非常に違うなという感じが分かったくらいですね。

ささだ どういうレイヤーに分かれて、そういうのは。

卜部 わかんない。

arton あれでも、そのころ『4.3BSD の設計と実装』って出てなかった?

卜部 出てたと思うけど、出てたのに気付かなかったですね。

ささだ まぁ、普通の本屋さんに売ってないよね。

arton そりゃそうだ。

ささだ そんな感じで、高校生は過ごした。で、島根を出る。

卜部 で、そういう方向に向かって、専門にしましょうかって思って、電通大に入った。

ささだ 計算器をやろうと?

卜部 そうですね。

ささだ 数ある大学のなかで、電通大ってのは何が?

卜部 受かったから。

ささだ 東京がよかった?

卜部 それはありますね。島大 (島根大学) よりはっていう感じですね。偏差値の関係で、僕が行ける大学のレンジはこの辺ですってのがある。その中だと筑波大とか、電通大とか、東工大はちょっと僕だとチャレンジングって感じで。あと九大とか。という中で何個か受けてみて、色々落ちたりとかして電通大受かったので入った。後期で入ったので、それまで全部落ちたって事ですね。結構色々落ちました。

ささだ え、結構落ちたって、一浪してる?

卜部 いや、ストレートだけど

ささだ ストレートだと二回しかできないじゃん

卜部 当時は中期ってやつがあってですね

ささだ えー? あったっけ? だって僕と 2 つ違いでしょ?

arton 81 年って人数多いから、そういう考慮したのかもしれないよ。

卜部 中期ってのは公立大学ではあったんですね。

ささだ で、大学入ったと。そこで Ruby との出会いはあったけど、大きなイベントではなかった?

卜部 まぁ、そうですね。Ruby みたいなスクリプト言語は全然知らなかったので。HyperTalk があって C があって Ruby。

ささだ でも、NetBSD だとシェルがあるんじゃ?

卜部 シェルはあるんだけど、シェルスクリプトはあんまり書かなかった*94んですよ。当時は Perl もやらずなので。

ささだ Ruby の本でスクリプト言語ってのを知ったと。

卜部 そうですね。

ささだ 大学で普通に学生やってた?

卜部 アルゴリズムの単位とかあるんだけど、大体知ってることしか言わないので、暇でした*95ね。

ささだ アルゴリズムは知ってた?

卜部 配列の話とか Hash の話とかやるんだけど、C のソースコード読むとか Hash の実装とか大体載ってるじゃないですか。

ささだ そっちから知るのかー! アルゴリズムの本とかじゃなくて。

卜部 あ、これあんとき読んだわー。

ささだ あ、これ Hash っていうんだみたいな?

卜部 そうそうそう。

一同 (笑)

卜部 へー、これこんなバックグラウンドがあるんだって。

ささだ オーダーがどうとか。

卜部 そう、計算量理論とかそういう理論的なバックグランドは学んだのは良かったですね。

ささだ ソースコードからアルゴリズム知るってすごいな。

卜部 BSD ってリンクリスト大好きで、だいたいの物がリンクリストになってるんですけど、「これ何なの?」って思ってたのが大学入ると、そういうふうに意味があるんだって。

郡司 具体例から入ったほうがいいとは思うんですよ。抽象的なことを言うんじゃなくて。

ささだ 大学はやっぱ、抽象的なところから言おうってしますよね。

郡司 具体的なこと散々やったあとに、体系立ったほうが早い。

ささだ 私も番兵とか言われてもすぐには理解らなかった。なんで番兵って。アルゴリズムの本とか読むと、番兵の絵が書いてあって。ソースコード読めば分かるんだけど。

卜部 なんか日本語に訳そうする流派ありますよね。

ささだ 授業はそんな感じ、と。

卜部 で、さっきも言ったけど 2002 年くらいにブログブームとかあったりして、それからはインターネット経由で色々学ぶという。

ささだ 東京来てどうでした?

卜部 東京来てって感じの事は特に無いですね。けど 2004 年くらいに Rubyist で花見やりだして、井の頭公園とかで花見やったりしてましたね。代々木公園とかでもやったかな。やがて Asakusa.rb の花見に繋がっていく。

ささだ 2003 年から RHG 読書会をはじめたんだっけ。

卜部 RHG 読書回、二回目くらいから行ってる感じですね。

ささだ インターネット経由ってのはそういう話。そのときもう TiMidity++ やってたよね?

卜部 やってましたね。その話をすると、大学入ったときにもとからの繋がりで Mac を親に買ってもらったと。時を前後して Mac の OS が 9 から X に変わるということになって。その時の切り替えではソースコードの互換性がなくって、既存のソフトウェアが軒並み動かなくなったんですよ。しかたがないので移植をしていたことがあって、そんなかで TiMidity++ は。最初は Mac に移植する人でした。

ささだ Mac 用のオープンなソースコードってのは、それなりにコミュニティ大きかった?

卜部 TiMidity++ の Linux の元からあるソースコードを Mac に向かって移植してた。

ささだ そのころ GCC とか Mac で動くんだっけ?

卜部 X になってちょうど GCC とかが動くようになったんですよ。これで移植出来るわーって。その時、はじめて C じゃなくてシェルを書いたというか、configure なんだけど。UNIX のソフトウェアの移植ってのは C を書くことよりも configure を書くことの方が大きいというのを実体験して、頑張ってシェルのコードを書いた。

ささだ 大学とは関係なく?

卜部 そうですね。自分の Mac を快適にするために。

ささだ 大学でなんかサークルとかは入らなかったの?

卜部 大学は入らなかったですね。

ささだ 研究室はアルゴリズム系だった?

卜部 まぁそうですね。学科がネットワークの学科*96で、そのなかでアルゴリズムの研究をやってる。とは言うものの僕の行ってた研究室は理論系なのでグラフっていうデータ構造*97をどのようにして分類していくかってことをやっていた。僕は理論系の研究室で実装の話をしていて、並列に動かすと早いねとか話をしていた。グラフってネットワーク同士くっついてるのでバサッと 2 つにわかれなくて、塊にわけないとなんだけど、塊にすると大きいのと小さいのが出てくるので並列に動かそうとしても動かないので、そこをうまくどうするのかをやってた。

ささだ いま、その知見は生かされてる?

卜部 いや、仕事には生かされてないけど、考えかたは役に立ってる。計算量とか学んだので。

ささだ 話は戻るけど RHG を 2003 年くらいからやってて、あれは何で知ったの?

卜部 花見だと思う。花見いくと読書会やってるの知った。

ささだ その花見は何でしったの?

卜部 多分、日記コミュニティ。

arton Ruby-list じゃないの?

卜部 誰かの日記をアンテナ経由でしってという流れかもしれない。

ささだ それで Ruby 1.8.7 がこんなに良くなったってのはいい話ですね。tDiary のおかげで。

ささだ で、大学卒業っていかないんだよね。

卜部 大学は出たんだけど、大学院に入ったくらいのころから並行して TNT という会社で仕事もやってて。しばらくして、並行してやるのは無理って気づいたので、会社の社長にお願いして半年休学して会社働いてて、そのあと半年休職して大学院を出た。

ささだ なんの会社でしたっけ

卜部 その頃は BSD からの繋がりで、下まわりの会社を選んでいて。

ささだ 俺 BSD 読んだことあるみたいな?

卜部 それは言わなかったけどね実は。BSD の仕事をしてました。

ささだ 選んだ理由がそれだった?

卜部 あと、未経験の大学生をやとってくれる会社っていうのがありますよね。

ささだ 下まわりをやっていた。

卜部 まぁ、最終的にはデバイスドライバとか書いてましたが、それだけに限らず、そんなに大きい会社じゃなかったので色々やらせていただいた。

ささだ そちらを一段落させて。大学院を出て。晴れてフルタイムになった、と。

卜部 そう。

ささだ それで、転職を考えた?

卜部 いや、まだ。

ささだ Ruby コミッタになるのはその辺ですか?

卜部 そうですねその辺でなるかな。

ささだ なんでなったんだっけ?

卜部 1.8.5 くらいでちょっと大分駄目みたいな流れだった。なのでリリースマネージャをやるって話に。コミッターになった瞬間リリースしてた気がしますね。そのころ tDiary とかに Ruby の駄目なところとか書いてましたね。

ささだ 2004/11/13 のメールに、卜部くんが、リリースなんとかしようぜって書いてますね。まつもとさんの負担を減らすために何が出来るだろう? っていう。

卜部 その時もう大学院だと思うけど、そんな感じのことやってましたね。

ささだ じゃ、リリースまわりのお付き合いって感じ?

卜部 最初はそうでしたね。とはいえ、今もそんなに trunk にコミットしてないので、リリースのお付き合いって感じですね。

ささだ そのころに、標準ライブラリのメンテナのリストを作ってる。

卜部 そのころから成瀬さんとか僕とかはそういうことやってたって感じです。

ささだ それで Ruby とは、そういうふうな付き合いをしていた、と。初めての Rubyconf は 2005? サンディエゴ?

卜部 サンディエゴですね。

ささだ それで、卜部くんのリアルタイム日記で、日本中が固唾を飲んで見ていて。

卜部 なんで夜中なのにこんなに見ているんだと。当時は自宅サーバーだから Apache のアクセスログとか見えるわけですよ。だからこの人達はおかしいみたいな。

ささだ その後、転職?

卜部 はい、NaCl に拾ってもらった感じですね。それまでは Ruby で仕事やったことないわけですよ。Ruby で仕事やるようになったので、面白いなと。とは言ううものの NaCl で 50% くらいは笹田さんとの研究をやらせていただいてたので、そういう意味では研究っぽいこともやってましたね。

ささだ 大変お世話になりました。

卜部 で、福岡に行ったりとか。その後転職ですね。

ささだ DeNA に。

卜部 DeNA に来たら、わりと直後くらいにアメリカ行っちゃってましたが。

ささだ それ、去年だっけ?

卜部 去年の 10 月。

ささだ 10 月に一ヶ月くらい?

卜部 とりあえず、二週間のつもりで行ってたんだけど、結局年末まで居たので 3 ヶ月くらい居ました。

ささだ そちらの仕事が忙しくて?

卜部 途中で、去年の RubyConf に抜けてたりしたので、ずっと仕事してたわけじゃないけど。

ささだ でも、抜けてたのは数日ですよね?

卜部 前回は関さんを連れて行く任務があったので、サンフランシスコから一旦日本に戻って、また行くという。

ささだ Ruby の会との関連とかいうのは?

卜部 話が戻るけど 2005 の Rubyconf に初めていったときに、高橋さんが日本でも RubyConf やりたいって話があって、その流れで日本 RubyConf が 2006 くらいにあったと。任意団体だったころの Ruby の会にはあまり関わってなかったけど、法人になるにあたって監事がいるのでなってくれませんかとご依頼をうけて、やらせてもらっている感じ。

ささだ それが 2011。

卜部 1 年経ったからそういうことか。まぁ、RubyKaigi は毎年出ていたので皆勤賞ですね。今のところ。コミッターは無料なので、今更出ない理由もないので、今後も続くと思いますが。

ささだ Ruby コミッタはコミット数に応じて参加費無料って、誰のアイデア?

卜部 あれ、誰のアイデアなんでしょうね。僕じゃないのは確かなんだけど。

ささだ 卜部くんだと思ってた。

卜部 僕無料じゃないですからね。あれで言うと。あれは 2.0 に貢献した数なので、僕はそんなに 2.0 に貢献してないのであんまり減らない。

arton あれは 2.0 までに? 累計で 1.4 とかも入ってるんじゃないの?

卜部 メインストリームにコミットした人は入ってるんだけど、横のブランチとかは入ってない。

ささだ Backport とかカウントされないんだよね。さて、仕事のはなしで、言いたいこととかある?

卜部 いや、特には?

ささだ 生い立ちてきなところで、俺の人生はもっとかっこよかったみたいなエピソードは?

卜部 いや、ないですね。旅行も毎年一回アメリカに行くくらいだし。

ささだ RubyConf は大きかった?

卜部 大きかったですね。色々と。

郡司 RubyConf に参加する前は、アメリカに行ったことなかった?

卜部 行ったことなかったですね。

郡司 行こうと思ったキッカケは?

卜部 Debian の Ruby のパッケージを見てる森脇さんが行きませんかって言ってくれたので、じゃあ行くかって感じですね。

普段の生活

仕事

4.jpg

ささだ 普段の仕事、何してるんですか?

卜部 秘密ですとか言ってたけど、僕の仕事が明らかになってしまうわけですけど。ソフトウェアエンジニア in Test。テストっぽいことをやってる。

ささだ QA?

卜部 に、近いかな。これまでの Hotlinks に出てきた人で言うと、関さんの仕事に近い。

ささだ 統括ってわけではない?

卜部 既存の職業とちょっと違うので、微妙なんだけど。

ささだ ソースコードパトロールみたいなこと?

卜部 それも近いですね。

ささだ ソースコードをながめて?

卜部 眺めてるだけじゃだめなので、機械的なテストも含めて。もっとエンジニアリングしていきましょうって

ささだ テスト足りなかったら書けよって言う仕事?

卜部 書けよじゃなくて、自分で書く。テストしていく上で、もっと品質とか性能とかよくしていきましょう。

ささだ それ何人くらい居るんですか。

卜部 全体では何人いるかわかんない。部署ごとにバラバラってやってるので。

ささだ 卜部くんは何人中の何人。

卜部 僕らのチームだと 30 人くらいの中で、5 人くらいのチームです。

ささだ だいぶそこに手厚い感じですね。

卜部 そうですね。

ささだ アメリカ行きとは違う話しなの?

卜部 違う話ですね。ただ、ちょっとしか違わなくて、アメリカとか中国とか色んなところにmobageのシステムが展開されてるんだけど、それらを含めて統一的にテストしていきたいねって話になっていますので。

ささだ 全世界的なフレームワークをどうしよっかって話をしに行ったと。

卜部 一つの理由ですね。

ささだ 入社してすぐにそれをやらせるってすごいですね。海外の人と、ずっとディスカッションするの?

卜部 まあそうですね。

ささだ そのディスカッションの方法とかは RubyConf で覚えた?

卜部 そうですね。RubyConf はそういう意味ではすごい役に立ってますね。

ささだ 仕事はそんな感じ、と。ゲームとかは作ってないんですね。

卜部 いわゆるプレアブルなゲームは作ってないですね。QA をやるにあたって、ゲームプレーする観点があるので、テスト用のゲームは作ってる。

ささだ 入社後の研修というか、「これを読んでその辺の方法を覚えろ」ってのはあるの? それとも自分の経験で?

卜部 自分の経験からですね。経験からやると人が育たないので、そこをなんとかしようかなってなりつつあるんだけど、掛け声だけかかってる状態ですね。

ささだ じゃあ、その中で統一的な本を書いたりとかレジュメ書いたりとかっていう?

卜部 うん。まあそういったことで、ブランディングから攻めていきたいとは思っていますが。

ささだ じゃあ卜部ブランドみたいなので、アジャイルとかそういうのに並ぶようなものが出てくるっていう?

卜部 そうそうそう、でてくるといいなと思う。という風に上司からは言われているんだけど、名前なんか中々思いつかねえよみたいな感じで (笑)

ささだ ウラジャイルとか、そういう (笑)

一同 (笑)

ささだ この間大江戸 Ruby 会議 03 で、松田明さんがホニャイルって言ってましたが(笑)

卜部 ああ、Cookpad でいうと mrkn のバットマンみたいなのがあるじゃん。

ささだ うん、井上さんがバットマンという話を言っていて。

普段の生活スタイル

ささだ 普段の生活スタイル。

卜部 普段の生活スタイルはまあ会社員なのであんまり変な感じではないですね。

ささだ ちゃんと朝来て、夜帰る?

卜部 一応、朝会ならぬ昼会というのをやってるので。10 時には一応来ることになっていて、それは若干守れていないので心苦しい点ではあるんだけど。まあ 10 時前後には来るっていう感じですね。で、普通に働いてそんなに遅くならないうちには帰るって感じ。

ささだ ふむふむ。超ホワイト?

卜部 そうですね。まあでも今のスタイルはそうだからそうなんだけど、別に僕がこれまでそういうスタイルでずっと生きてきましたってわけでは全然ない。

ささだ そうですか。今、会社まで近いよね?

卜部 うん、今は家から会社まで乗り換えなしで来れるっていう話もありますね。

仕事とプライベートとの両立

ささだ 仕事とプライベートとの両立は?

卜部 いきなり海外出張行って三ヶ月帰ってこれないとかなので、もはやプライベートってなんですか、みたいな感じになりつつありますよね。

ささだ (笑)。でも土日とかはちゃんとあるんでしょ?

卜部 そうですね。土日とかは仕事の話はあんまりしないように頑張ってはいますね。ただ現職もふくめて今まで働いたところ全部そうだけど裁量労働制なので、いつ働いていいかは自分で決めてねって話にはなっているので。そういう意味では渾然一体となってますみたいな感じですね。一応、労務管理上の話はあるのでそんなにひどくはないけど。

ささだ でも、仕事は家に持って帰らないでしょ?

卜部 持って帰れないですね。そういう意味では仕事とプライベートの両立という話で言うと、家ではちゃんとプライベートな時間ですね。仕事の中にプライベートが混ざり込んでくるっていう感じ。ときどき座ってますけど Ruby のコミットしてます、とかいう瞬間はある。

ささだ なるほど。では普段の余暇の間とかは何をされているのでしょう?

卜部 ごく最近の話をすると、何件か書籍のレビューをやってくれって話があって。レビューをずっとやってるって感じですね。

ささだ おお、素晴らしい。

卜部 っていう話をいっていいんでしょうか。このるびまが出る頃には言っていいかもしれないけど。

郡司 間に合えば今回のるびまは 5 月にはでますね。

卜部 じゃあ微妙だな。まあ、なんか出るかもしれません。だから最近のプライベートで何やってるかって言うと、そんな感じのをずっと読んでるってことですね。

ささだ ほんと仕事してるんだね (笑)

arton うーん……仕事……だね。

ささだ レビュー以外の本とか読まないんですか?

卜部 読みますね。最近読んだ本だと 1984 を最近。ついに読んだって感じ。オーウェルの方ね。『1984 年』*98

郡司 あ、そっちか (笑)

卜部 そう、だからついになんですよ。今まで読んでなかった。

ささだ どうでした?

卜部 いや、どうでしたという程のものでも (笑)

ささだ 古典だよね。

卜部 古典だよね*99

ささだ まあ俺は読んでないけど。私は最近、村上春樹の方*100を読み始めた (笑)

卜部 えっ、あれオーウェルの方読んでなくても、あれ通じるの?

ささだ いやーどうなんだろう……。

郡司 直接は関係ないですよね? オマージュではあるんですけど。

卜部 そうなんだ。

郡司 いや、まあでもストーリーの中で言及はされますけどね。

arton やっぱりニュースピークのとかあるわけ?

郡司 それはないですね (笑)

卜部 その前は、ウンベルト・エーコ*101*102って人が書いた『完全言語の探求』*103って本があって、これが超厚くて昔は手が出なかったんだけど、最近、平凡社ライブラリー*104に入って持ち運べるようになったので頑張って読んだって感じですね。

arton それって人工言語に対する興味で読んでんの? オーウェルも含めて。

卜部 それはえっと、その流れはそうですね。『完全原語の探求』読んだので、その流れで読んだって感じかな。

arton エーコかぁ。すげえな。

卜部 あれねえ、なんか学術的な本でしたねって感じでした。趣味で読む感じじゃなかったわ。参考文献の塊だった。

美術館巡り

5.jpg

ささだ 本以外は?

卜部 本以外は、一人で博物館とか美術館とか行くのが好きで。これは親の影響もあると思うけど。

ささだ 卜部くんと知り合って十年くらいたってるけど、知らなかった (笑)

卜部 さっきもいったけど親が考古学者なので、これは親の影響が強いと思っていて。暇な日とかはけっこう美術館とかいったりしてますね。で、一人でダラダラしてる。清澄白河とか行きますね。

ささだ 清澄白河にあったっけ?

郡司 現代美術館*105がありますね。

卜部 そう、すげーデカイやつ。

ささだ あそこいいですか?

卜部 うん、あそこね。人がいないときは超ガランとしてる。

arton あそこ空いてるよねえ。

卜部 ところが夏休みに毎年ジブリのやつ*106とかやっていて、夏は超込む。

arton あー。

郡司 常設展はガラガラ*107で、いいんですよ。

arton あのさ、地下の中庭の方に迷路みたいなのがあんじゃん。あれがなんか好きでさ。

郡司 あと、あのあそこは図書館というかライブラリがあって。

卜部 ありますね。

郡司 あそこが凄くいいですね。

卜部 いいですねえ。

ささだ それは美術書が入っているの?

郡司 基本は美術書です。

ささだ それで造詣を深める?

卜部 造詣が深まっているって感じはないですね*108。たんにぼーっとしてる感じ。

ささだ おお。じゃあ彼女にするんだったら美術館に一緒にいって、ぼーっとできる人がいい?

卜部 あー、それはありかな。

ささだ (笑)

卜部 たしかに。いいかもしれないですね。

ささだ 以前、あそこのそばに住んでて、何回も前を通ってるんだけど、一度もいったことなくて。今度行こうと思っているうちに引っ越してしまった。あとのおすすめ美術館は?

卜部 おすすめ美術館。美術館ってジャンルが全然違ったりするとグッと来る人と来ない人がいるので。

ささだ まあ、卜部くんがグッとくるってやつを。

卜部 そういう意味で言うと、全然ジャンルが違うのでいうと出光美術館*109は行きますね。

arton 東京駅?

卜部 東京駅なのかな、日比谷? まあ丸の内側ですね。ここは日本の古美術とかですけど。

ささだ あの、東京駅の地下の通路を通るとディスプレイやってるけど、あれはなんか関係あるの?

卜部 いや、そういうわけではないよ。東京駅で言うと、新しくなったからステーションギャラリー*110とかできたんですよ。

ささだ ふーん。

卜部 で、一回は行ってみたって感じですね。あれは駅の真上なのでいいですね。

ささだ じゃあ東京都とか、その辺の美術館は行き尽くしたって感じ?

卜部 そうでもないけどね。東京ってすごく美術館多くって。そういうことだと島根の方が行き尽くした率は高いと思います。東京はポコポコ沢山あるから大変なんだよね。

ささだ なるほど。島根の美術館は湖のところにあるやつ*111しか行ったことないや。

卜部 うん、まああれがデカイね。

ささだ 博物館は?

卜部 博物館と美術館はそんなにきっぱり分かれてるってわけじゃないんで。渾然一体となっている部分がありますけど。特に考古学の方はね。

arton あーなるほど。

ささだ そういう興味もあったの?

卜部 興味っていうか、これは親の影響だよねえ。親がだから連れていくわけですよ。逆に親が上京してくると美術館とか行ったりする。

ささだ なるほど。

arton じゃあ清澄白河はあんまりあれだね。

卜部 そう、だから清澄白河はあんまり親は関係ないね。

郡司 国立博物館とか?

卜部 そうそう、国立博物館とか。上野だとあとは都立美術館とか。

ささだ なるほど、いっぱいあるんすねえ。私は全然行かないのでわからないんですけど。日本科学未来館*112とかはジャンルが違うの?

卜部 いや別に違わないと思いますよ。未来館はね、今日美術館いきたいわ、とかってあるとき有給取っていたらお子さんが修学旅行でバスで乗り付けててガーッと来ていて。

ささだ (笑)

卜部 おおーっと思った (笑)

一同 (笑)

卜部 平日来るじゃなかったわーみたいな感じ。だから平日はそんな感じですね。

郡司 お台場の方ですか?

卜部 うん。

arton いつか RubyKaigi やったじゃん。

卜部 そうそうそう。RubyKaigi2006 ですね。

郡司 私、2006 だけは行ってないんですよね。

卜部 あ、未来館でやったわけじゃないですよ。未来館の隣の建物でやりましたね。

郡司 インターネット物理モデルとかあるところですよね。

ささだ そうそう、江渡さんも携わっているやつ*113ね。2006 年の RubyKaigi では未来館の最上階の食堂で懇親会をやりましたね。

郡司 ほー。

卜部 そういう意味で言うと RubyKaigi2013、今年のやつもそこの辺ではありますね。

ささだ 隣の。

卜部 そう、逆向きの隣。だから未来館の産総研じゃない方ですね。

ささだ うん、あの辺ですね。あとは……。海外では美術館なんかありました? おーっていうのは。

卜部 美術館で言うとサンフランシスコ近代美術館*114っていうすごい有名なやつがあって。

ささだ うん。

卜部 でも、これもどっちかっていうと現代アートですよね。アメリカは現代アートが凄く強くて*115

ささだ そうだよねえ。

卜部 謎の抽象画とかですよ。壁一面にバーって謎の模様*116が書いてあって。抽象画です、みたいな感じのやつ。はぁーって感じ。あとは無駄に大きいですね。

ささだ 博物館とか美術館とかで、特にこの作品がっていうのはあったりするの?

卜部 うーん、まああんまりないかなあ。作品って実は展示期間が決まっていて、一年中ずっーとっていうのは日本ではあまりないと思うんですよ。海外はわかんないけど。なので、見に行こうと思っていても実際行くと「展示されてません」みたいな結構あるので。思い入れっていうか「これ見なきゃ」みたいことで行くと結構悲しい思いすることが多いですね。

ささだ なるほど。

郡司 さっきも出ましたけど、国立博物館はやっぱり国宝とかは順繰りで出してるんで。必ずあるってわけじゃいないんですよね。

ささだ これを見たいと思って行ってもないことがある、と。

郡司 鳥獣戯画だと、もう、ここの部分だけとか (笑)

一同 (笑)

郡司 全部やると長いので、あれは (笑)

ささだ あとはなんだろう。有名なところだとジブリ美術館とかですね?

arton ジブリってたぶん 100 年後には考古学的に面白いものになるだろうね。

ささだ (笑)

卜部 うん、かもしんないですね (笑)。この人たちはなにをやってたんだみたいな。でも 100 年だとまだ文字が読める*117からあれかもしれないですね。

arton そっか、300 年くらいたつといいかな (笑)

卜部 (笑)

arton この頃はいったいどういう文明だったんだって (笑)

映画・音楽・ゲーム・スポーツ

ささだ あとは映画・音楽・ゲーム・スポーツ。

卜部 映画・音楽・ゲーム・スポーツはそんなには……。

arton アニメもみない?

卜部 あんまり観ないっていうか、テレビ持ってないのでアニメ観れないので。映画、映画ねえ。あんまないですね、そのへんは。

ささだ ゲームとかもしない?

卜部 ゲームしない。あとmobageのアカウントもってない。

一同 (笑)

ささだ テスト用にはいらないの?

卜部 あっ! テスト用はもちろん持ってますよ。

ささだ (笑)

卜部 それはアカウント持ってるとか持ってないとかそういう話しとはちょっと違うので*118 (笑)

ささだ あー、なるほど。仕事とは関係ないものはもってないと。

卜部 うん。

ささだ mobageってなにか知ってた? 入るまえに。mobageとはこういうものである、みたいな。

卜部 あ、それは、まあ知ってたよ(笑)

ささだ やったことあった?

卜部 やったことはないですね。

郡司 面接とかで好きなmobageのゲームとかは聞かれないんですか?

卜部 ああ、そういう意味で言うと聞かれたかもしんないけど、僕は何もやってなくても入れたって感じですね。

ryopeko 僕もおんなじように答えましたよ。

一同 (笑)

ryopeko やったことありますか? いやないです、って。

川口 受ける前超やったのに……。

一同 (笑)

ささだ スポーツは?

卜部 スポーツもあんまりやんないですねえ。

ささだ 動かないとヤバイよ。

卜部 ねっ。

ささだ 三十超えてるんだから (笑)

卜部 そうそう、って言われるんだけど。やっぱりやってないみたいな感じですね。よくないですね。

arton なんか、居合いとかやったらいいんじゃない?

卜部 居合いねえ (笑)

ささだ それ、髪だけ見てない? (笑)

arton えっ、見てる (笑)

ささだ (笑)。スポーツやんないとヤバイっすよ。

卜部 ヤバイね。思っております、はい。

ささだ 家から駅までは歩く?

卜部 うん、ただそんなに遠くないんですよね。あとはこの建物の中で上下している程度で。

ささだ あ、けっこうウロウロする?

卜部 えっと会議室があるフロアと、自分の居室が違うので、そこの間を上下しますね。

ささだ なるほど。

使ってるマシン

ささだ 使ってるマシンは ThinkPad ?

卜部 自分で使ってるやつは ThinkPad ですね。会社から支給されてるのは Mac っていう感じです。なんだけど、別に ThinkPad に思い入れがあるわけではなくって、これの前は VAIO を使っていたし、VAIO の前は Let's Note を使っていた。とかなので、別に ThinkPad がないと生きていけません、という人ではないですね。

ささだ 以前の VAIO は GPU がすごくてうんぬんとか言ってたよね。

卜部 VAIO X の前のやつかな、GPU がえらべるやつ(VGNSZ92PS)。GPU がデュアルでついてたやつがあって、それを使っていました。

ささだ なんかウィンドウをうにゅうにゅさせてたよね*119

卜部 そうそうそう

好きな女性のタイプ

ささだ 好きな女性のタイプは?

卜部 あんまりタイプとかで女性を好きになったりしないんですよ。

ささだ 好きになった女性がタイプ?

卜部 どうなんですかね? さかのぼって分析とかしたことないのでわからない。

ささだ なるほどねぇ。えっ、これでおわり?

卜部 うーん、そうかなあ。まあだから、嫌いなものには理由があるけど、好きなものにはあまり理由が無いので。

ささだ 好きになった人が好きという?

卜部 そんな感じですかねー。

ささだ おんなじ事言ってるような気がする (笑) 趣味があうとかは気にしないんですか?

卜部 まあ、趣味があってくれたほうが嬉しいなとは思うけど。

arton さっき「一緒に美術館に」って話してたじゃん。

卜部 それはあるかもしれないですね。あるとプラスになるねくらいの話で。

ささだ それだから好きってことではない?

卜部 そうですね。

ささだ DeNA は合コンとかあるの?

卜部 どうなんでしょう、DeNA といっちゃうとすごい広いからさ。

ささだ (笑) やっぱ部署によっても違うのかな

卜部 違うんじゃないですかね、というくらいのことしか言えない。僕の周りはないですね。

ささだ 募集とか、なんか言ったほうがいいですか?

卜部 いや、知らないけど。

ささだ ご連絡をここまでみたいな (笑)

卜部 じゃあ、るびま編集部まで (笑)

一同 (笑)

ささだ こないだアドセンスで恋人募集って載せてた人が付き合ったって話があったので。

卜部 ああ、ありましたね。

ささだ あんな感じでるびまに載せたから付き合ったみたいな。

卜部 なんか楽しそうな感じですね。

今後について

今後の展望、将来の夢

6.jpg

ささだ 今後の展望、将来の夢。

卜部 えーっと、僕がやっているような、プログラミングみたいな仕事というのはなくなっていくべきだと実は思っていて。将来的には人間の手を介さないようなプログラミングとか、できるべきだと思っているので、全然道は遠いですが、そういうふうになっていくといいなあ、と。

ささだ 将来的にはそういう予想があると?

卜部 うん。

ささだ 要するに今のプログラミングっていうのは人間がやるべきものではないし、将来的にはそれをやらなくていい世界が来る?

卜部 来て欲しいなあと思う、という話があるので、そこに向けてそういう風なことができないかなということを、考えたりやったりとかしていきたいですね。

ささだ じゃあそういう将来において自分の立ち位置というのはどのへんに置きたい?

卜部 どうなんでしょうね。そのときどこに立ってるのかはよくわかんないですね。

ささだ そういう世の中を見てみたいって感じ?

卜部 そうですね。

その他の質問

ささだ で、その他の話になるんですけど、咳さんから卜部くんへの質問がきていて

卜部 うん

ささだ 「シャンプーなに使ってるの?」だって (笑)

卜部 何使ってるっていうか、アメリカとか行くからさあ、そんなに特別なシャンプーとか使ってないんですよ。そこら辺のドラッグストアとかで入手できるようなシャンプーを使っています。

ささだ はい。

卜部 はい。

mput の由来

ささだ あとは私の質問。ニックネームに使っていた mput ってなんで mput なの?

卜部 えっと、「computer」は 8 文字ですが、その真ん中の 4 文字。

arton あっ、そうなんだ。俺、FTP の mput かと思ってた。

卜部 そう、で、あとからググってみたらそっちがヒットしてきたので、グーグラビリティが低いのであんまりよくない名前だった。

ささだ へー、そっからなんだ。

Ruby 1.8.7 について

ささだ あとは、Ruby 1.8.7 について。

卜部 はい。

ささだ Ruby 1.8.7 の思い出はまあ「頑張りました」という感じでしょうか。

卜部 思い出は、そうですねえ。

ささだ で、2013 年の 6 月でサポートが切れる、セキュリティフィックスもしません、ということだよね。

卜部 そう。という状況になる。あ、やべ、そのアナウンス忘れてたわ。

ささだ (笑)

ささだ で、そうすると卜部くんは、御役御免というか、大団円というか。

卜部 まあ、なんというか、普通のコミッタになるというかですね。

一同 (じわじわ (笑))

卜部 平コミッタというやつです。

arton 普通のコミッタになると、RubyKaigi が安くなるような trunk へのコミットもできるようになる。

卜部 ああ、いいかもしれないですね。とりあえず、eval をキーワードにしてみますか。

ささだ ははは。1.8.7 はもう、卜部くんは少なくとも見ない、と。

卜部 そうですね。他の人がやってくれることに関しては、とくに意見はありませんが。

ささだ なるほど。

arton じゃあ、1.8.7 のユーザに対して二言三言。

卜部 今、1.8.7 を使っている人は多分僕がリリースしたやつをそのまま使っているという人は少ないと思っていて。たとえば CentOS に入ってるものとか*120、RedHat に入っているものとか*121、そういうのを使っておられると思うので。そういう意味では僕がメンテナンスをするという意味は相対的に下がってきていて、そういう部分でも終わってもいいとのかなと思うところがある。なのでユーザのみなさんは RedHat とかにお金を払ってください、って感じですね。

ささだ 僕が辞めても Ruby 1.8.7 は永久に不滅ですっていう (笑)

卜部 そうだ、ひとつ言いたいことがあるのですが、るびまを動かしている Hiki のバージョンが古いです。

ささだ よく存じております……。

郡司 それはやらないとですね。

ささだ 今、鋭意改良中ということで*122

卜部 このインタビューが終わるくらいの頃にはなんとかなっていて欲しい (笑)

たなべ 柴田さんが Hiki にプルリクしてたのはその流れだったんですか。

ささだ そろそろこれも 1.9 にしないと。

arton 2.0 にしない?

一同 (笑)

arton 自分たちで食わないって何それ (笑)

卜部 ドッグフード食うの重要ですよ。

arton いやでもね、1.9 から 2.0 っていうのはかつてないほど移行が楽だったと思う。

卜部 ほとんど変わってないですからね。新しいものとかは沢山入ってるんだけど非互換の変更っていうのがない。

RubyConf 渡航支援のモチベーション

郡司 RubyConf へ行く支援を自費でやられてたじゃないですか。

卜部 はいはい。

郡司 あれのモチベーションって何だったのでしょうか?

卜部 あれはね、あれのまえの Ruby の会とかで、行く人を支援しようみたいな話が前からあったんですよね。でも、結局誰も応募してこない。若干広報が足りてない気がしていたので、なんていうのか、話題になったほうがいいかなと思ってやってみたっていう感じ。

郡司 話題になったほうがいいから自費でっていう (笑)

ささだ それは後進をという意味もあったの?

卜部 ありますねえ。さっきの話でもあったけど、なかなか十代二十代の人たちが入ってこないという話もあり、どうしたものかみたいな感じだったんですよね。今でこそ十代のコミッタが何人かいますけど、ほんとうにいなかった時期もあるんで。なんとかしないとなあみたいなことを思っていた時期がありました。

ささだ たしかに。

arton でもその一方で新しいデバイスがでて、プログラミングの方法が変わるんだったら、当然この古臭いプログラムシステムのコミッターがどんどん若い人がいなくなるのは当たり前っちゃ、当たり前なのかな。

卜部 うん、まあ、そうですね。

arton にしちゃあ、次のもんが全然見えてないんだよね。

卜部 Ruby は少なくとも新しいプログラムとは呼びづらい感じになってきているはずですよね。20 年もやったわけだし。そろそろ新しいものが出てくるっていうのであれば、若い人がそっちに、というのもわかんなくはないですね。ただ出てこないのが残念。

arton そういう意味で言ったら、MRI よりは Rubinius、あっちに行くのがほんとうは得策なんだよね。

卜部 Rubinius どうなんですかね。最近どういう風に動いているのかあんまりよくわかっていないんだけど。

ささだ うん、あと元気なのは Topaz ですね。やっぱり。

卜部 Topaz、元気なんだ。

ささだ うん、活発ですよ。開発の当初ってやれる事たくさんあるじゃないですか。

卜部 そう、Ruby も処理系に関して面白いのは、開発が進むに連れてどんどん速度が遅くなっていくんだよね。

arton (笑)

卜部 エッジケースとかを考えだすからさ。最初は何百倍とか超速いんだけど徐々に遅くなっていって、だいたい JRuby くらいの速さに収斂していくみたいな。なので Topaz に関してはこのまま速いままでいてほしいなと思いますね。

ささだ そうですねえ。と、質問の回答としてはよろしいですか、RubyConf 行きたい人への支援やつ。

郡司 はい。ありがとうございました。

卜部 まあでも、あれはそんなに続けるつもりはなかったので。

ささだ 今はうまいこと Ruby の会の方でやっている?

卜部 今はそうですね。もとのは続けるつもりはなかったっていうか、続けると俺が破産して終了するので。続かないことは明らかで。

ささだ あ、じゃあ、いまアピールしておく?

卜部 そうですね。というわけで、続かないと思っていましたが今は Ruby の会でやれるようになった。で、Ruby の会もそれくらいのことでは破産しない感じになっているので、気にせず応募していただけると。

ささだ 今年も(RubyConf に)送る?

卜部 そうですね。やりますやります。

ささだ 素晴らしい。

卜部 で、Ruby の会的には日本国内にいる知られていないような Rubyist を海外に紹介するっていうのがあるので。

ささだ へー、そんなミッションが。

卜部 というわけで、特に自分は Rubyist だと思っている方々はぜひ応募していただけるといいかなと。

ささだ なるほど。

卜部 というわけで去年は咳さんだったんだよね。

ささだ あー、名前は知られてるけど顔は誰も知らないみたいな?

arton ERB とか使われまくってるのにね。

卜部 dRuby の作者という感じで連れていきましたね。

前のインタビュイーとの関係、次のインタビュイー

ささだ 前のインタビュイーとの関係は。

卜部 樽家さんとの関係。なんでしょうね。何ヶ月か前にささださんの家で一緒に鍋を食った感じですかね。

ささだ そうですね (笑)。インタビューのときね。

卜部 ね。

ささだ 次は誰にします?

卜部 その話をする前にここで言っておくべきなのは今回のインタビューで一応ささださんはインタビュアー終わり。

ささだ そう、御役御免。

卜部 というわけで、次回も僕は参加します。インタビュアーとして。で、誰がいいかと思ったんだけど、個人的には大場さんに振りたい。

一同 おお。

ささだ いいですね。ご夫婦どちら?

卜部 どっちかいれば、どっちかその次でしょう、みたいな。

arton 両方でいいんじゃない?

ささだ 両方! いいですね。

arton あれ後藤兄弟のときは後藤兄弟二人だったよね。だから同じような感じで。

ささだ でしたね。兄弟で前編後編。

郡司 遠藤さんも一応お二人でしたよね。

ささだ あれは遠藤侑介さんって形で出したんだけど、今回は二人共 Rubyist なので。

arton もしかしてテープ起こしが死ぬほど大変?

ささだ まあそれもあるだろうし、今お子さんがいらっしゃるから。

卜部 そうだね。だからお二人同時は無理で。片方がお子さんをあやしている間に片方がインタビュアー、みたいな感じなるかもわかんないですね (笑)

ささだ 素晴らしい。

ryopeko 静内でやるんですか?

卜部 ああ、まだ場所はわかってないです。じゃあ、次のインタビュイーへの質問は静内に掛ける情熱の話を聞くということで。

arton DeNA 対 GREE だね。

ささだ そうそう (笑)

一同 (笑)

卜部 そういう方向にするのはどうなんすかね (笑)

arton いやあ、しちゃだめでしょう (笑)

ささだ じゅあ場所は Heroku で用意しますので。

一同 (笑)

たなべ 中立な場所で。

一同 (笑)

若手へ一言

ささだ 若手へ一言。

卜部 はい、ええ、まあなんていうんですかねえ。Hotlinks を始めた頃は、若手に一言ってときに「若手って誰?」っていうと、「じゃあ卜部くんに向けて」ってささださんは言ってたわけじゃないですか。

ささだ はいはい。

卜部 ついに若手に一言を言う側になってしまって、こう、隔世の感がありますね。

一同 (笑)

卜部 そういう意味で言うと、Hotlinks を始めた頃に比べると若い人達の環境ってずいぶん変わってきてると思うし、僕らの頃に比べてもずいぶん恵まれた環境でやっておられると思うので。僕らがアドバイスをするほどのことでもなくてですね。ま、ふつうになんかズンズン開発をしていっていただけると、たぶん僕らのことなんか追い越していくのはすごい簡単だと思うんで。

ささだ はい

卜部 うん、ぜひ。たゆまぬ努力をしていただければいいかなと思います (笑)

読者に一言

7.jpg

ささだ 読者に一言。

卜部 読者に一言っていうと、うーん、Hotlinks を読む暇があったらコード書いたら?

ささだ ひどい (笑)

終わりに

今回は Ruby コミッタの卜部昌平さんにインタビューをさせて頂きました。

次回の Rubyist Hotlinks は、インタビュアーを笹田から卜部さんに交代して、大場さんにお話を伺う予定です。 お楽しみに。

(インタビュー:ささだ、編集:すぎむし、川口、小西、nari、郡司)

Rubyist Hotlinks 連載一覧


*1 順不同です

*2 本人による CO

*3 本人による CO

*4 本人による CO

*5 本人による CO

*6 本人による CO

*7 本人による CO

*8 本人による CO

*9 本人による CO

*10 成瀬注「コミッターにおける二十代」: nari さん*123とわたしが二十代

*11 卜部注「どうなんですかね」: 無理に出させていただくほどの強いコンテンツではないと自認しているので。枯葉も山の賑わい程度に末席を汚させていただくのはよいとしても、ぜひにと売り込むほどのことはないかなー。

*12 卜部注「改革解放」: 適当なこといったけど調べたところによるとペレストロイカは「リストラ」くらいの意味のようですね…。

*13 卜部注「ロンヤス」: とはいうものの実は、相当小さかったので中曽根首相の頃の記憶はない。島根に住んでたので、さすがに竹下首相の記憶はある。

*14 卜部注「サッチャー」: このインタビューを行った当時まだ存命であった。なお卜部にフォークランド紛争の記憶はない。

*15 卜部注「ホーネッカー」: 当時からホーネッカーといえば頭の固さに定評ある人物だが、実のところ彼とて政治手腕があったからこそ東独の元首にまで登ったわけで、ある種の有能な人ではあったのだろうと卜部は思う。なので、なぜ東独がうまく立ち回れなかったか (逆にうまく立ち回ったハンガリー共産党は、90 年代以降 3 回も政権に返り咲いている) を、彼個人のパーソナリティーの問題に帰着するのは、あまり正しいとは思わない。が、いずれにせよ頭は固かった。

*16 卜部注「チャウチェスク」: チャウチェスクのリアルタイムの記憶がないんだよなー。当時子供だったのでそもそもルーマニアとか知らなかった(さすがにドイツは分った)というのはあるかもしれない。

*17 卜部注「ワレサ」: この人に関して特筆すべき事項は、元電気技師ということである。おそらく世界の国家元首の中で一番、プログラマに近いはず。

*18 卜部注「戦車乗って演説」: これ Boris_Yeltsin_19_August_1991-1.jpg

*19 卜部注「eto さんと akr さんの回」: いまだから言えるが、この 2 人の回のインタビューテープは 6 時間もあった。それをほぼノーカットで収録したらああなった。

*20 卜部注「言ってもいいのでは」: これは後の方で詳述されているけど、まとめだけ先に言うと、「てか 1.8 なんて使ってないでしょ今更」

*21 卜部注「screenrc」: Screen という強烈にぐぐりづらい名前のソフトウエア*124の設定ファイルである。どう贔屓目に見ても使いやすいとは言えないソフトウエアだ。なので設定ファイルの解説記事といったものに一定の需要がある。

*22 卜部注「Screenについて一時間」: これは実際社内で喋った。

*23 卜部注「TiMidity++」: お、これの解説がないぞ。入れておこう。MIDI という、ボカロの要素技術のような技術(語弊があるが「だいたいあってる」)があるのだが、TiMidity++ はこれをレンダリングするエンジンである。当時広く使われていた Gravis Ultrasound という PC 向けサウンドカードの音源ファイルや SoundFont などの形式のいわゆるシンセサイザー・パッチと MIDI を入力として受け付けて、MIDI の指示にしたがいパッチをコピペして出力するのである。こういうのをソフトウエアシンセサイザーという。ところで MIDI の指示というのは意味深な表現であり、TiMidity++ の実装上はファイルやネットワークから読み込んだ MIDI イベントを一旦内部表現に解釈し直した後、これを前から順に評価器で評価することにより…こう書くとだいぶイメージがわくと思うが、実態としては MIDI はやや特殊な(チューリング不完全な)インストラクションセットの仮想マシンなのである。ただし音楽には時系列というものがあるから、速すぎず遅すぎずのある一定のタイミングで実行する必要がある。このあたりが普通のプログラムとは違うところだ。

*24 卜部注「売れなそう」: Screen が生まれた当初、少なくとも X11 はなかった。実際にシリアル端末を使ったことがある人なら Screen が必要不可欠なソフトウエアであることに異論はないはずだ。とはいえ、きょうび「本物の」端末などもはや失伝して久しいし、VT100 互換でない仮想端末ですら、およそ駆逐されている。Screen の初期の目的はおおむね消滅した、と見てよいだろう。

*25 卜部注「lazy の便利さ」: lazy のポイントは実行順序は変わるけど実行結果はよほどひねくれた使い方をしない限り、だいたいの場合で同じというところが良いのである。なので随所に意味もなく lazy って入れておくだけで勝手に遅延実行してくれるかのような幻想があって大変によい。

*26 卜部注「lazy のバグ」: というか、これは ruby 本体がバグってた。 https://bugs.ruby-lang.org/issues/7878

*27 卜部注「マヨネーズ色」: あの本をマヨネーズ色と最初に言ったのは arton さんだったように思うのだが。

*28 卜部注「Ruby 本」: ちなみに今これを読み返すと逆に新鮮な驚きがある。たとえば Enumerable についてほとんど記述がない (今なら間違いなく一章かそれ以上は割かれるだろう)、あるいは proc とか lambda についてもほとんど記述がない (これも今なら詳細な解説がつく)。基本的にマヨネーズ色の本は Ruby な本ではあったかもしれないが、Ruby 「の」本という総括には若干の違和感を感じる仕上がりとなっている (けっして悪い意味ではなく)。歴史的価値以上のものがあるので今でも読むに値すると思う。

*29 卜部注「マヨネーズ色の Ruby 本が平積み」: 手元の現物の奥付を見ると 1999 年 12 月 1 日初版 2 刷、とある。

*30 卜部注「ちょっと触ってみた」: つまり卜部が最初に触った Ruby は 1.6 ということ

*31 卜部注「ブログブーム」: いわゆる「ブログ草創期(笑)事件*125がこのころである。卜部はこの事件を期に逆にブログってものがあるということを知った。

*32 卜部注「tDiary のパフォーマンスの件」: (当時の)tDiary というのは普通に設置した状態だとアクセスが来る度にリファラの集計が走り、かつ、もちろん、そのアクセスのリファラが記録されるのである。したがって n 回のアクセスでだいたい n の 3 乗くらいのループが回るのだ。高木先生の日記がスペランカーなのも同様の理由と思われる。これはリファラを記録しないようにするだけで一気に改善する。

*33 卜部注「自宅サーバが壊れて」: 実際には壊れたのはサーバではなく ADSL モデム。ただそれを期に家から常時接続する機運が完璧になくなってしまった。潮時ではあったのだろう。

*34 Twitter の Web サイトにログインし、画面上部の歯車アイコンから「設定」を選択して、下の方にある「全ツイート履歴」をクリックすれば、自分の過去の全ツイートがダウンロードできます。

*35 卜部注「tDiary のコメント」:コメント欄はそのまま放置しとくとすぐ spam かアホか両方が湧いてきて壊滅する、というのは tDiary で学んだ。コメント欄が成立するのはコメント欄を開ける覚悟がある場合のみだ。その点で卜部は覚悟が不足していた。

*36 卜部注「Perl と比べると」: まあこれは比べるのが悪い。さすがに設計された時代が違うというより他にない。ただ Perl が書きづらいということは忘れられないように言っておく歴史的価値がある。これを書いている今、Perl はほとんど顧みられることのない太古の技術となりつつあるが、マジョリティが Perl を使わなくなったのは、ようするに「便利ツール」というポジションにもっとよいものが出てきたからだろう。

*37 卜部注「プログラマの自由」: Rubyは奇跡的に書きやすいが、それは、デザインというよりはアートに近い領域の産物ではないかという風に卜部は思っている。つまりデザインとはフィーリングを言葉にすることだし、言葉にできないフィーリングはアートだ。ここでいう自由とは何か? なんでもできすぎて逆に面倒な状態を自由と呼ぶのか? それとも不自由でも気持ちよければそれでいいのか? 型の議論はつきつめると、自由の定義の問題となる。

*38 卜部注「何が起こっているかよくわからない」: tDiary の場合で言うと eval の中でメソッド定義されたメソッドの中で例外が起きたときね。これはもう手に負えない。tDiary 以外の例で言うと EventMachine ね。これも手に負えない。

*39 卜部注「どうなんでしょうね」: ただ、ひじょうに大きな枠の話をすると、動いている ruby の動くさまを横から観測する仕組みが不足しているのだな、とは思う。たとえば Java などを見ていると、JVM を観測する仕組みの豊富さには驚かされる。

*40 卜部注「できると簡単には差がある」: これね。とっても大きなポイントね。インタビューではさらっと流しちゃったけど。tDiary でいうと tDiary を ruby-debug でデバッグしてみようと思ったことは実はあるんだ。で、どうなったか? みなさんもやってみれば分かりますよ(笑)

*41 卜部注「プロファイラの研究」: 実は Ruby の VM 側からの支援によるリアルタイム・プロファイラといったものが笹田研には存在した。あのままでいいから svn に突っ込めばよかったのに、というのは卜部が所詮趣味で ruby やってるだけだから言える発言で、きっと研究としてはそういうわけにもいかないのだろう。

*42 卜部注「環境ってなんだろう」: 逆から言うと言語ってなんだろうっていう話でもある。マンマシンインターフェースだと思えば、たとえば Java と Eclipse の境界線や C# と VisualStudio の境界線は、さほど自明の話ではない。

*43 これ angry_unicorn.png

*44 卜部注「unicorn が出る」: 本文にあるとおり Github は Ruby で作られているが、その下回りで unicorn によってホストされているのだ。ただ しunicorn は理想的な環境下ではただの Rack フロントエンドなのでユーザーにとって透過的である。これが観測できるようになるというのは、その上で動いているアプリケーション(つまりここでは Github)がなんらか不調であることを示している。したがって unicorn が見えるというのはあまり良い状態ではない。unicorn が観測されているときというのはだいたい、github が使えなくて仕事が強制的に中断される。github の .com のほうでは最近はあまり見れなくなったが…。

*45 たなべ注「元からの方はどうですか」: ryopeko さんと川口さん、たなべはインタビューが開催された 2013 年 3 月当時に卜部さんと同じ会社で働いています。

*46 卜部注「ヒアドキュメントとはこういうものだ」: そもそもシェルというのは行指向なのである。なのでシェルでは一行に完結している事に対する要請が強い。そのためヒアドキュメントがこのような奇怪な仕様として発展した面があるのではないかと卜部は想像している。

*47 卜部注「マヨネーズ色の本に書いてあった」: 正確を期すため引用すると「ここで説明しているような行指向の文字列がヒア・ドキュメントです ^^;;;」(p.70) である

*48 卜部注「PHP のヒアドキュメント」: あれはまがいもん。まがいもんだからダメってわけではないが、だからといって違うものは違う。もうちょっと別の名前で呼ぶべきだと思う、あれで便利っていう局面があるのも理解できるので。詳細 http://tinyurl.com/btougo9

*49 卜部注「ヒアドキュメントに制限を入れるのはどうかというささださんの発言」: これいま注を入れてて思ったけど、逆に parser むずくね? end の前とかブロックの前とかそういう状態をきちんと管理せんといかんってことですよね? まあ今でも既になんかそういうのやってるっちゃやってるけど。既存のフレームワークでうまく扱えるのか?

*50 卜部注「HyperCard」: HyperCard には、やれ「Ward Cunningham が最初に Wiki というコンセプトを実装した環境である」だの「Robert Cailliau を経由して WWW の哲学のバックボーンに影響を与えた」だの「その Web がプログラマブルでないことを嘆いた Brendan Eich に JavaScript を作らせる動機となった」だの、虚実さまざまの伝説がある(いくらかは事実だろう)が、それはさておきじゃあ HyperCard ってなんやの、というのは意外に知られていないのではないか。あれは、今で言うと すごいパワポ といったようなものである。まずスライドに相当するもの(カード)がある。カードは増やせる。カード同士は行ったり来たりできる。マスタースライドに相当するものもある。そして、VBAに相当するマクロ言語が HyperTalk だ。笹田追記: すごいパワポという表現は初めて見た...。スライドは 1 方向へ進む、という前提があるけど、HyperCard は任意のカードに進むので、その辺はかなり違うと思うな。いや、もちろん 1 方向に進む紙芝居アプリもあったようですが。卜部さらに追記: カードも順番あったよー。 go to next card とか書いたじゃーん

*51 卜部注「MACPOWER」: 日本で一番最初に DTP やった雑誌である(ということを誌面で盛んに喧伝していた)。今結局どうなっちゃったんでしょうね。一旦休刊して、ムックあつかいで復活したけど、でも放置?

*52 卜部注「掌田津耶乃」: この人はすごい。卜部が中一の時にはすでにプロのライターだった。のに今でもまだ「Heroku ではじめる Rails プログラミング入門」とか著作がある 。この業界で中断をはさまない数十年のキャリアってちょっと尋常じゃない。ネットでは叩かれがちな人ではあるので残念だが、そんなことで止まらずに走りつづける姿勢は本当に頭が下がる。

*53 卜部注「magic」: 解説しよう! 当時の Mac についてきていた HyperCard は HyperCard 2.1-Lite J とかいうやつで、これはパワポでいえば PowerPoint Viewer に相当するような、ようするに再生専用ツールなのだ。しかし実際には専用の再生プログラムをいちから作り直すといった高度なことは当時のアップルは行わず*126、実際にはこれはフルセットの HyperCard にちょっと手を加えて編集機能をパスワードロックしたに過ぎないものであった。このロックを解除するパスワードが「magic」だ。

*54 卜部注「LINQ 以降の C#」: それ以前の C# とは文法が同じだけでコンセプトはまるで別物である。どちらかというと Scala の仲間だ。Scala にせよ C# にせよ、型推論を積極的に使って便利にさっくり書けるようになった(しかも型安全はしっかり保証されている)あたりの言語から、世代が変わったという気がする。

*55 卜部注「struct 型」: いや、言っといてなんだけどこれは本当は class 型かも。すいません。そのへんまったく意識してないでも使えてしまうので。

*56 笹田注: インタビューしたい質問を何にするか、るびま編集部内で募集したのですが、その応募方法がるびま編集 wiki に書き込む、ということでした。ちなみに、もう 10 年近く前に集めた質問項目を、未だに続けているんですねえ。

*57 卜部注「竹内先生」: 竹内郁雄、国際的には竹内関数にその名を刻む。国内的には未踏ソフトウエア創造事業など。ささださんの元上司でもある。

*58 卜部注「竹内先生みたい」: ここでいう「みたい」というのは 2012 年夏のプログラミング・シンポジウムで竹内先生のご発表「プログラミング美学」のことを指している。

*59 卜部注「美とは」: 美学、Aesthetics という学問領域がそれである。多くの大学では美術ではなく哲学の一分野として開講している。

*60 卜部注「parse.y」: 魔窟。ruby 1.0 が出たころの ruby 2.0 の目標としてパーザーと評価器の刷新、があったはずだが、評価器は YARV が入ったものの、parse.y に関してはついに秘伝のタレを継ぎ足しつづけて 20 年だ。底のほうでどんな虫が繁殖してるか分かったもんじゃない。また、理解している人間が少ないので数人欠けるとやばい。後継者の養成は急務といわざるをえない。

*61 卜部注「Fortran」: 解説しよう! 当時、プログラムというのは今と違って自由にインデントしたりするものではなかったのだ。むしろ逆であり、インデントの幅によってその行の意味が決まっていたのである。なぜそんなことになるかというと、当時まだエディタのような便利な仕組みがなく、というかキーボードすらあやしくて、人々はパンチカードでプログラムしていたのだ。パンチカードというのは当然穴が開いている。なので穴の位置、すなわちインデント幅というのはずれたら意味が通らないのだ。これが実際に使われていた Fortran のパンチカード だが、「FORTRAN STATEMENT」の欄が左から 7 欄目で始まっているのが分かるだろうか?

*62 ダジャレに解説を付けるのは野暮ってもんですが‥‥。かつて、手のひらサイズのデジタルガジェットのことを総称して Palm Top と呼んでいた時代があったのだ。それに引っ掛けて「Palm Top で Perl プログラミングだから Perl Top」というダジャレ。

*63 笹田注: 親会社のステマ。

*64 卜部注「クライアントサイド」: ここでいうクライアントというのはすなわち Android か iPhone かということである。

*65 卜部注「Interface Builder」: これほど完成した形で登場し、いまだに多くの人に使われ続けているプログラムもちょっとない。

*66 卜部注「建て変わった」: 今、校舎があるあたりは、昔はグランドだった。

*67 卜部注「System」: 昔の Mac は OS のことを単に System と呼んでいた。Mac が Mac OS を自称するようになるのは 10 以降だ。で、漢字 Talk というのは日本語版についてた愛称みたいの。

*68 こんなやつです。 http://www.soundstock.org/mac/lc630.html

*69 郡司注:余談だが、このとき郡司の頭の中では Macintosh LC とか LC II とか LC III とか LC 475 とかが頭に浮かんでいた。LC 630 はそこまで薄くなかった。

*70 郡司注:ちなみに Performa は一体型かどうかではなくて、廉価版のマシンに付けられるブランド名でした。LC シリーズでも 500 番台は一体型でした。

*71 FPU エミュレーションというソフトウェアで FPU をエミュレートする機能もありますが、NetBSD/mak68k のものは色々と問題があった。

*72 卜部注「スタック」: HyperCard のプログラムはプログラムとかスクリプトとか呼ばずにスタックとよぶ慣習だった。

*73 卜部注「Home スタック」: 解説しよう! HyperTalk というのはあれでいてオブジェクト指向言語ではあるが、そう言われてみんなが想像するようなものとはかなり趣きが異なる。まずクラスがない。Unity でいうところの Prefab に相当するようなものもない。じゃあ何がオブジェクト指向か? それは メッセージ で駆動されている点なのだ。たとえばマウスがクリックすることなどでメッセージが発生するのである。このメッセージをオブジェクトが理解することにより処理が進むのである。これは GTK+ で「シグナル」と呼ばれている機構に近いであろう。ただ微妙に特徴的なのは、HyperTalk の場合、メッセージが処理できないものに関しては他のオブジェクトに順次たらい回しにされるところにある(GTK+ ではデフォルトは無視だ)。したがって Ruby におけるメソッド探索パスと同様、HyperTalk においてはメッセージが呼ばれるパスが存在する(メッセージパスと呼ばれる)のである。これは、無限に続いていると無限に処理が終わらないから、どこかで終端される必要がある。その端点が Home スタックだ。これは、バイナリではなくて、一見ごく普通の HyperCard の作品であるかのように見えるもので、したがって編集機能でその実装をいろいろと閲覧してまわることができるのだ。

*74 卜部注「英語」: 解説しよう! HyperTalk には型がないのだ。というと、普通じゃんと思うかもしれないが、「配列すらもない」、と言ったら、どうだろうか? HyperTalk には本当に配列がない。ただ文字列はある。なので、もし、配列のようなことをしょうと思ったら、改行をデリミタに使って "put the fifth line of foo into the first line of bar" とかいう記述になる。これで Ruby でいえば bar[0] = foo[4] くらいの意味である。あるいは二次元配列を必要とする場合はさらにスペースもデリミタに使って "put the eighth word of the fifth line of foo into the third word of the first line of bar" とかなる。このように、あらゆる記述が英語っぽくだらだらと書けるというのは、アチラの方々としてはうれしい機能なのだろうが、日本人としては正直少々ウザいと言わざるを得ない。

*75 卜部注「AppleScript」: という、さらに別の言語があるのだ。これは旧 Mac におけるシェルスクリプトのようなもので、たとえば QuarkXpress を自動化することにより書籍の組版をオートメーションするなどに使われていた。

*76 卜部注「日本語版」: 上の注のように(まあ Smalltalk->HyperTalk->AppleScript と連綿と続く伝統といえるかもしれないが)基本的に英語圏の人であれば、プログラミングの素養がなくとも、読むとなんとなく意味が分かるようにできているのである。であるからして、日本語話者にとっても同様に「読むと意味が分かる」というものを考えようというのは、当然の流れであった。ただ、これは、今で言えば cuke の DSL を日本語に置き換えましたとかいうレベルの対応なので、若干中途半端だったという印象である。つまり、結構書きづらい割に、さほど読みやすくなかった。

*77 卜部注「島根にテレ東はない」: 島根にパソコンなんてあるわけないじゃん! というが、実際にはテレ東こそ存在しないのだ。オウム事件の時まだ AT-X などというものもなかった。

*78 卜部注「N88Basic」: こいつはアンティークである。変数が全部グローバルなのはベーシックだから当然としても、行番号必須・サブルーチンなし GOTO のみという、当時としてもなかなか… 95 年ですよ? 85年じゃないよ?

*79 卜部注「Basicでゲームはむずい」: つまるところ規模に限界があるのだ。ちょっとしたお絵描きとかはむしろやりやすい。でも、そこからトリビアルでないゲームに発展させようとすると、根性以外の武器が一切存在しない。これは辛い。

*80 卜部注「オーサリングツール」: まあ今パワポでソシャゲ作ろうと思う人は少ないだろう。でも当時 HyperCard で作られたゲームってのは結構あった。そう明示されてなくても起動時に HyperCard を要求するものは多かったし、そもそも標準添付なので何の問題もなかったのだ。だから、今思えばあれで結構なことができたのである。ただ限界は明らかで、あくまで HyperCard の枠の中でしか記述することができなかった。できないことはどうやってもできないのだ。

*81 卜部注「CodeWarrior」: 全然使ったことがないが、これの吐く PPC バイナリはそれなりに速かったらしく、Mac で gcc が動くようになってからもしばらくは覇権を争っていたし、結局現在は買われて Freescale Semiconductor (PPC の総本山だ)の製品となっている。商用コンパイラとしては成功した部類であろう。

*82 卜部注「ResEdit」: ResEdit はリソースを編集するツールだが、たんにリソースのバイナリを取得するだけでなく、たとえばアイコンならグラフィカルに編集できるし、メニューとかなら文字列をそれっぽくいじれる。のだが、さすがにバイナリを逆アセンブルしてくれたりはしなかった。それは MacsBug*127 などを使う必要があった。

*83 卜部注「リソース」: 解説しよう! Mac のファイルシステムは Unix とかと全然違うのである! というか、Unix みたいなほんとうになんも一切区別しないフラットな仕組みは(今では勝ち残ってるが)当時としては異端なのだ。Windows ですら拡張子とかテキストモードとかあるもんね。「違うものは違うってことをシステム上も違うように扱う」っていうのは、自然な発想といえる。で、Mac の場合はファイルの中がさらにどういう仕組みになっているかが決まっていて、一個のファイルがある種の Key-Value Store みたいな感じになっているのである。この仕組みがリソースだ。なのでたとえばファイルに対してアイコンを取得するようなことが、ファイルシステムレベルで "ICON" リソースを取り出すという自然なクエリとして実現できていたのである。

*84 卜部注「島根の本屋さんは大きくない」: 念のため注記しておくのだがこれは「その頃の話」だ。当時はちょっとした繁華街に出ると小さいながら書店があったものだ。

*85 卜部注「書くものがない」: もともと Finder と連携したいから C コンパイラを手に入れたかったはずが、手に入ったけど OS から別物になっちゃったので連携できたりしてないわけで。

*86 卜部注「Mac で Linux」: というかですね、そもそも 90 年代の Linux は今と違ってそう移植に熱心でなかった。まだ 386 べったりだった時代ですんで。その点、NetBSD という OS は昔からそういう移植とかは大好きな風土がある。その後 Mac は PPC->Intel と CPU が変わったし、Linux としてもプレステなどを経て移植は当然なので、今となっては隔世の感がある話とはいえるだろう。

*87 卜部注「Netscape」: IE が Netscape と喧嘩しだす前夜くらいの話だ。卜部は NetBSD も CDROM を買って入手したので、本気で無料のソフトウエアがおおでを振って落としてこれるという体験はこれが最初だった。

*88 卜部注「Netscape Gold」: よく言われることだが、今の Web の姿というのは双方向性の面で若干、元となる思想とは乖離がある。Gold が成功していればこの状況に一石を投じた可能性がある。つまり Wiki のような、だれでもが情報を編集できる仕組み…に、なるかもしれなかった。ならなかったけど。

*89 卜部注「島根はバスケットがさかん」: まあそれも事実やねんけど、これ 95 年ってのもポイントね。スラムダンクリアルタイムですからね。

*90 卜部注「10M でバックボーンまで」: いや、これは怪しいかもしれんなあ。構内はたしかに 10M だったけど、上流はもっと細かったかもなあ。1M とか。

*91 卜部注「特殊な文法」: とはいえ C なのでまあ C の文法ではあるのだけれど、まあ、分かるでしょう? あの話通じない感じ。

*92 卜部注「Fred Fish」: gdb のすごい人である。

*93 卜部注「xlisp」: このへんの逸話はRubyist Hotlinks 【第 15 回】 arton さんでも語られている。

*94 卜部注「シェルはあるけど」: シェルはシェルでも NetBSD のシェルは csh だぜ(当時)。これでスクリプト書くのはやはり狂気の沙汰と言わざるを得ない。

*95 卜部注「アルゴリズムの単位が暇」: あまりに暇すぎるので講義出ずに試験だけ受けてそれも間違いなく 100% 正解だったが、出席しないとダメな先生だったので不可をくらい再履修した思い出。

*96 卜部注「ネットワーク系の学科」: 電通大はなにせ「電気」と「通信」の大学なのでネットワーク系ってのは保守本流みたいなもんで、なので逆にネットワークっていうキーワードにちょっとでもかすってれば案外なんでもありなのであった。もう十年以上前の話。今は改組したのでどうだか存じ上げませぬ。

*97 卜部注「データ構造のグラフ」: これはエクセルとかで作るグラフじゃなくて、ネットワークを抽象化したような概念で、なにかのオブジェクトとそれらの間の関係性を考える領域だ。

*98 卜部注「1984」:「On January 24th Apple Computer will introduce Macintosh」からそろそろ三十年だが、結局 1984 は回避できたかというと、テレスクリーンは(まさに)iPhone として実現したし、二分間憎悪は togetter として実装されつつある。案外回避できてない。

*99 卜部注「古典」:膨大なエピゴーネンが存在するゆえ、本気で読んだことがなくても、出てくる小道具や敵やあらすじや台詞はいずれもどこかでなにか見聞きしたことがある。今となっては上から下までお約束の塊なのだ。もちろん、だからといって読む価値が微塵も減らない(むしろ、あああれはこれか、ってのが分かってさらに理解が深まる)。そういう点も含めてまさに押しも押されぬ古典であった。

*100 卜部注「春樹のほう」: 80 年代生まれにとって春樹は親ほども年が離れてるんですよね…。

*101 卜部注「エーコ」:言語、論理学、記号論、聖書、トマス・アクィナス、中世キリスト教、フランシスコ会、テンプル騎士団、そしてホルヘ・ルイス・ボルヘス。どれかの単語にかすった人は必ずエーコにたどり着かざるをえない。現代における知の巨人の一人だ。

*102 卜部注「エーコ」#2 :この人は自分ちの本棚に「ビブリオテーカ・セミオロギア・キュリオーサ・ルナティカ・マギカ・エ・プニューマティカ!」とか名づけて悦に入るというなかなかアレな趣味をお持ちである。人気小説家にして大学教授という肩書きとは裏腹に、日本で言うとどちらかといえば太田出版系の香りがすると思うのは僕だけだろうか。

*103 卜部注「完全言語の探求」: 神は「光あれ」と言った… 何語で? 疑問は素朴だが深い。その神を信じる民にとて神は全能だから、喋るなら不完全な言語ではありえない、というわけだ。彼らを悩ませてきた苦悩の歴史をきわめて詳細に記した本。

*104 卜部注「平凡社ライブラリー」: 講談社学術文庫等と並ぶ本邦におけるソレ系叢書の雄である。共産党宣言から鼻行類とかまでラインナップされている。

*105 卜部注「都現美」: アクセスの微妙さに定評があり、最寄り駅から徒歩 15 分というのは 23 区内の文化施設としてはやや… ただ繁華街を避けて余裕のある敷地条件で建てたためか建築として巨大であり、手狭な感じは一切しない。その点も相まって、非常にがらんとした印象を受ける。

*106 卜部注「ジブリのやつ」: 昔、日テレの社長が館長だった縁があるらしい。

*107 卜部注「常設展はガラガラ」: 企画展のチケットで入れるのにねえ。

*108 卜部注「造詣が深まっている感じはしない」: そもそも美術館というのは賢くなりにいく所ではないのだ、というのは、上記出てきた美とは何かとかそういう議論とも関係するけれど、美術ってべつに高尚なものではない。何かを感じる必要はない。全般にそうだが、とくに現代美術はそうである。べつに高尚じゃないってことに自覚的なのが現代、と言うべきかな。

*109 卜部注「出光美術館」: ここもぼーっとできるゾーン。窓から皇居が見下ろせてとてもよい。

*110 卜部注「ステーションギャラリー」: これは新しいがゆえに意外にどういう展示で攻めてくるのかよくわからないので、注目ではある。最初の展覧会はクワクボリョウタとかだったけど次のは木村荘八。この後どう来る…?

*111 卜部注「湖のところ」: 島根県立美術館のこと。ここは湖も展示品なので、夏場は営業時間が「日没まで」とかになる。

*112 卜部注「未来館」: あれでいて未来館はインタラクティブアートっぽいのが結構ある。あと上野の科博ね。このあたりは子供向けと侮れない。

*113 卜部注「インターネット物理モデル」: どこで聞いたか思い出せないけどこれさきごろバージョンが上がってついにRubyじゃなくなったって聞いたような[要出典] 笹田注: まさに、RubyKaigi 2006 で江渡さんが LT で言ってました。

*114 卜部注「SFMOMA」: Duchamp の泉の「本物」(のひとつ https://twitpic.com/bikobp)などが置いてある、現代美術の美術館としては世界的に有名な場所である。

*115 卜部注「アメリカは現代アートがすごい」: このへんの事情は椹木野衣の反アート入門 とかを読むと書いてある。

*116 卜部注「謎の模様」: ちなみにこれは Rothko の No.14 ってやつのこと。ロスコ様を模様扱いなんてひどい! が、現実問題として現物を見るとそうとしか言いようがないのだった。

*117 卜部注「まだ字が読める」: 百年前って大正元年だぜ。普通に会話が通じる。井原西鶴あたりが三百五十年くらい前だけど、さすがにときどき?ってなるけどまだいける。まあ専門家なら万葉仮名も読み下せるしそういうのは例外としても、ふつうの庶民であっても文献なら意外に数百年くらいまでは「通じる」といえるだろう。音韻のほうが先に崩壊するだろうから会話はもっと早く通じなくなると思われるが。

*118 卜部注「テストアカウント」: というかテストアカウントは会社が所有しているのであって卜部の個人のアカウントじゃない。

*119 卜部注「うにゅうにゅ」: これ 2006 年頃かな。ちょうど Ubuntu で Compiz が動くようになったんですね。で、楽しくて色々エフェクトかけてた。

*120 卜部注「CentOS」: 調べずに言っちゃったけど CentOS に収録されてるのも多分 1.8.7 だよねえ?

*121 卜部注「RHEL」: RHEL に 1.8.7 が収録されているのは確認済で、ちゃんとメンテナンスもされている模様。卜部個人としてはもし今後も 1.8.7 を使い続けないといけないやんごとなき事情がある場合には RHEL を買うのがもっともおすすめの方法だ。

*122 笹田注: 柴田さんが中心となって、なんとかしてくれました!

*123 本人による CO

*124 勘違いしてはいけない、Screen(1987〜) のほうが Google(1998〜) の 10 年以上前から存在するのだ。ぐぐりづらいのはどちらかというと Google が悪い。

*125 このURLに今まだアクセスできる!これは純粋にすごい、奇跡に近い。作者の人の胆力を感じる。今なら絶対閉鎖されてる(し、たくさん魚拓とられてる)だろう。

*126 旧Macのコンポーネント・モジュラリティの悪さには定評がある…そこを改善しようとしたCyberdogというプロジェクトもあったが盛大にコケた。

*127 卜部注「MacsBug」: 旧 Mac のデバッガである。これを使うことでブレークポイントを仕掛けたりできる。ただ、よく知られたように旧 Mac というのはすべてのプログラムが特権モードで動いている。したがって、いきおいデバッガもカーネルデバッガに近くなってくる。