テレビを見ていたら、ビリヤードに打ち込む14歳が紹介されていた。 全日本学生選手権最年少優勝者で、高校に進学せずにビリヤードの道を極めるのだそうだ。
彼いわく、
10年後には世界的なプレイヤーになって、みんなからあこがれられる存在になりたい
のだそうだ。
それを聞いて、「よーし、私も10年後にはみんなからあこがれられる世界的なプログラマに」とかほざいてたら、 妻に、
そんなこと言っても、これからは下る一方じゃない?
と指摘された。娘も
世界的なプログラマなんて言っても誰も知らないもんね。
とトドメ。 真実は胸に痛い。
Pragmatic Programmersのひとり、Andy HuntがなぜRubyを選んだか、という話。
When people ask me what attracts me to Ruby, I have two answers:
First, more than any other language I’ve used, it stays out of your way. You don’t have to spend any effort “satisfying the compiler” as you would in C++, or even Java. These languages have an awful lot of noise and verbosity. You get used to it of course, but it’s pretty wearing over time.
Second, I can type in an absurd amount of code in Ruby and have it work the first time. Not 2-3 passes resolving any syntax issues, not 4-5 passes tracking down a bug or two. It just works. Ruby’s not perfect, by any means, it’s got dark corners to the language just like every other language. But it has a lot fewer of them. For the great majority of projects, the great majority of the time, it just works.
その理由はふたつ。「(コンパイラを満足させるのではなく)やりたいことを記述できる」から。もうひとつは「書いたらそのまま動く(ことが多い)」から。
魔法があるわけでもない。「ただ役に立つから」というのはPragmatic Programmersらしい判断基準だと思う。
追記
じゃあ、同じくらい便利そうなPythonはというと、
So I thought I’d take a look at Python and other emerging languages in that space, but none of them really grabbed me. Python in particular was a dissapointment; it seemed to have all the features I wanted and good library support, but the language always felt kinda clunky. There were odd bits of “oh, that’s for historical reasons” that showed through. Maybe it’s just personal taste, but I didn’t like it.
だって。なんとなく分かるような気がする。なんでだかPythonって私のあってほしいような言語じゃないんだよな。逆にPythonファンにとってはRubyが「なんか違う」言語なんだろうか。
安藤さんにとりあげてもらえるのは幸いなことだ。昨年から今年にかけてRubyは(Railsのおかげで)キャズムを越えたような気がする。
ま、「生き残る言語」の仲間には入れてもらえたようだけれど、「今後も一線の言語」に残るためにはまだまだ努力が必要そうだが。
PythonのデザイナーGuido van Rossumが「Python的でない」ので、複数行lambdaのアイディアを(再び)拒否した、という話。
言語デザインがパズルよりも難しいという点には同意する。また、複数行lambdaが現在のPythonの方針にうまくフィットしないというのも解る気がする。
でも、Haskellのインデントでダメな理由はよく分からないな。
Haskell は Python と同様にインデントでブロック構造をあらわすことが出来ます。インデント表記から明示的表記への変換規則は以下の通りです。
- where, let, do, of の後にブロックの開始を示す { を挿入する。
- その後、同様にインデントされた行はブロック内の式とみなし、 先頭に ; を挿入する。
- インデント量が減少した行にでくわすと、その行の先頭にブロックの終了を示す } を挿入する。
なるイベントに参加する。今回は招待側にチケットを用意してもらえるので大変ラクチンだ。いつもはチケットの手配が面倒なのよ。
ところで会場はマレーシアはクアラルンプールなのだが、ここの電源事情はどうなのだろう。ちょっと調べてみるとBfプラグの240Vのようなのだが。 Googleで調べた範囲内では、BやらB3やらCやらも「使える」と書いてあるページもあるし。
Cプラグは持ち歩いてるんだが、Bfはないなあ。買うと結構するしなあ。
伝聞情報では会場はネット接続に不自由するらしい。どうやってコネクションを確保するか。
あと、最大の懸念はスライドの用意。20日が〆切。
出張中にできているはずだった原稿第三弾。
今度は書き下ろしの文章。とはいえ、 以前に書いた雑誌記事をベースにいろいろと書き加えたもの。 でもねえ、正直品質が高くないなあ。 自分で書いててノらなくてさ*1。
やっぱ、書き下ろしは難しいなぁ。
*1 とか書くと編集の人が青くなるかも
コンソールベースのGMail風メールクライアント。
morqとかぶるのでかなり関心がある。ただ、こういうツールの場合、
という点が(私にとっては)大変重要なので、たいてい使えなかったりする。 今回のSupもコンソールベースで海外産ということから たぶん無理だろう。まあ、だからわざわざmorqを作ったわけだが。
でも、ソースコードとか参考にできるかもね。
オーストラリア産のRuby.NETコンパイラ。 マイクロソフトに移ったJohn Lamのとは違うもののようだ(彼はカナダ人)。
そういえばJohn Lamは、Redmondへの移動でえらい苦労しているそうだ。
lionfanさんによるPaul Grahamのメモの翻訳。 オリジナルは2001年のMITのパネルディスカッション用のメモ。 2001年のMITといえばLL1を思い出すが、あれは秋だったはず。 これは5月10日だそうだ。
今回の内容はだいたいは「Being Popular」と共通(時期も同じだし)だが、 価値は下がってはいない。
「それなんてRuby?」という気がするが、 この当時PaulはRubyを知らなかったはず。 また、「ハックを認めろ」には 当然のように「言語内言語」や「マクロ」を含んでいるのが Lispハッカー。
「サーバ・ベースのソフトウェア」という概念に ちょっと2001年と言う時代を感じさせる。 この後、歴史はAJAXなどでクライアントに揺り戻すのだ。 歴史は繰り返す。
そして、「みんなは本当に前置記法を怖れて」いる。 もちろん、この命題の真偽は「みんな」の定義の取り方によるのだが。w
正直なところ、新しい言語に関するPaulの予想は外れています。 残念なことに。
私は21世紀になってから生まれた 将来有望と注目されている言語を知りません。 あえて言えば...Fortress?
東京へ。
雪で飛行機の出発が1時間ほど遅れる。 出雲空港はわりと雪に慣れているので、1時間も遅れるのは珍しい。 おかげで約束に遅れちゃったけど。
目黒の雅叙園に移動。
まずは、『BeautifulCode』日本語訳を記念して、 販促のために翻訳者の久野先生と奥様と対談。 最近は知らない人の方が多いかもしれないけど、 久野先生は日本を代表する言語屋で、 私の師匠筋の人である。
以前にも書いたけど、 Rubyの言語設計にも多少影響を与える記事を書いた人だ。
なもんだから、対談はいきなりディープな世界に突入。 みんなついてこれるのか?
で、楽しいおしゃべりと、おいしい食事を堪能した後、 宿題をいただいた。「29章もっと書き足してほしいなあ、2週間以内に」。
....善処します。
その後、デブサミに移動。 講師控室に行ったら、 「今、Joel Spolskyがいます。あいさつしますか」と誘われ、 あいさつに。
で、名刺交換とかした後、Wasabiの話に。で、Wasabiの持つ機能や、組み込みのテンプレート機能(PHPのちょうど逆)や、 ひとつのコードからクライアントサイドのJavaScriptとサーバサイドのPHPの両方を生成する機能などについて 詳しく聞いた。彼の直筆のメモは宝物にしよう。今日はディープな話が続く。
次に、Microsoftの波村さんと対談のための打ち合わせ。 急遽、高橋会長がコーディネータを務めてくださることに。
で、波村さんもたいがい言語好きな上に、 日々言語デザイン(と実装)で苦労しているので、 話が弾む、弾む。実際の対談もそうとう聴衆置いてきぼり感があったけど、 前後の控室の話なんか、誰がついてこれるのって感じ。
しかし、「マイクロソフトの中」での言語デザインというのは 我々オープンソースコミュニティでのデザインとは全然違っていて 興味深かった。
週三回のデザインミーティングとか。
いろいろな制約と挑戦とか。
後で波村さんに「Rubyをお休みして半年くらいマイクロソフトにインターンに行こうか」とか 話したのだが、実は半分は本気だった。しがらみがなければ、もうちょっと本気だったかも。
とにかくディープな1日であった。
夜は広尾に移動して、両親のところに泊まった。