今日は台風でしたが、気合で Lightweight Language Saturday に行って来ました。渋谷は法学館にて開催。
Perl,PHP,Python,Rubyコミュニティが協力し、 Lightweight Languageが大好きな人達の集まりとして、「Lightweight Language Saturday」(通称: LL Saturday)を企画しました。
ってな趣旨のカンファレンス。国内の各LLコミュニティを引っ張っている著名な方々が一同に介しており、僕にとっては雲の上のお方みたいな人がたくさん来てました。イベントプログラムからもその顔ぶれの一部を垣間見ることができると思います。加えて、観客席にも見たことある方、聞いたことある方がたくさん。こんな顔ぶれが集まる機会って、ほんとそうそうないんでしょうね。
笑いあり、ツッコミありでかなり盛り上がりました。CPAN の発音についてのネタを何度も引っ張って爆笑したり、多分一般の人から見たら何が面白くて笑ってんだかさっぱりなんだろうなとか思いつつ、異様なテンションを楽しんできました。総じて、LL な人はネタに対しての食いつきがやけに良いなあという印象。(笑)
面白い話がたくさんあった(と同時に、へたれプログラマの僕には理解不能な場面も多かった)のですが、今日の会場でのやりとりについては後日 LL Saturday のサイトでログを公開するそうなので、ここでは聞いてて面白かった話、興味深かった話を書き留めておきます。(もしかしたら聞き違いとかもあるかもしれないので、正確な情報は後日 LL Saturday のログで確認してください。)
最初のセッションは「Language Update」と題して、Perl, PHP, Python, Ruby それぞれの言語の最新トピックの発表。
Perl の発表者は小飼弾さん。(プレゼン資料) 一応一番得意な Perl のセッションだったので、ここだけちょっと詳細に書きます。
などなど。あと、LL を含めた各種言語の共通動作プラットフォームとしての VM である Parrot なんてものが開発されていて、5.10 ぐらいからその上で動くんじゃないかみたいなことをおっしゃってました。気になる Perl6 についての質問が観客席からあって、
と回答されました。(笑)
それから、「Perl, iconv, Ruby と Unicode のテーブルをそれぞれの世界が独自に持ってるけどこれをまとめる方向は?」という問いに対しては「Parrot が完成すれば少なくともスクリプト言語の世界はまとめられます。」という回答でした。
続く PHP の発表は日本PHPユーザ会の廣川類さん。(プレゼン資料(PDF)) Q & A で「PHP5 の J2EE 対応って JSP の置き換えとして PHP を使うみたいなイメージですか?」といった感じの問いが出て、廣川さんの回答は
とのことで、笑いが。PHP4 でもすでに Bean が呼べたりするし PHP5 では安定して呼べますってことなんじゃないか、と補足されてました。
Python は日本Pythonユーザ会の柴田淳さんの発表。(プレゼン資料(PDF)) 柴田さんの喋りは面白かったなあ。出だしから「Pythonといえばインデント、今日はそれ以外も覚えて帰ってね」と自虐ネタだし。そして Q & A でもやっぱりインデントに関する質問が幾つか。それに対する柴田さんの返し
「インデントが嫌いを超えれば楽しい世界が待っています」
に会場大盛り上がりで拍手喝采。わはは。
Ruby はいわずと知れた、まつもとゆきひろさん。(プレゼン資料) 前日かなり遅くまで、「まつもとゆきひろを囲む会」と称した飲み会が繰り広げられてたんだとか。まつもとさんも初っ端から飛ばしてましたね。いきなり 「s/(Perl|PHP|Python)/Ruby/g; でおしまいです。」とか言っちゃうし。(ちなみにこの正規表現は Perl 風に書いたけど、実際には「他のプレゼンの言語の名前を Ruby で置換すれば〜」とおっしゃってました。) まあ、他の言語のプレゼンでも Ruby について色々言及されていたので、あながち冗談でもなかったり。
まつもとさんの話の中で印象に残ったのは「わけがわからないけど自分の思った通りに動くのが Ruby だ。」ってな話。Ruby はちょっとかじった程度ですが、そんな僕でもちょっとにやけてしまいました。
それから「リリースエンジニアリングはきつい、向いてない」と一言。1.8 系のリリース版の開発者に誰かなってくれないかなあみたいな感じでした。なお、1.6.9 は出ないとか、1.9.0 は backward compatibility を捨てても 2.0 へいけるかを検討する実験バージョンだとか、2.0(Rite) と並行開発したいね、とかおっしゃってました。
1.8.0 は Panther に載らないみたいな話もあって、「一部の可能性は残しつつも、だめかな」みたいな回答。「もし載るならバグが取れたバージョンでしょう」とのことです。なんか、今日の会場に集まっていた方々は Mac OS X への関心が非常に高かった気がします。もちろん UNIX 系OS 育ちの人が多いってことも関係してるんでしょうが、それ以上のものを感じました。
この Language Update を聞いてて思ったのは、各言語の達人が同じ場で発表されることで、客観性のある事実が浮かび上がってきて面白いなあということ。
例えば Perl の小飼さんは「Perl 6.0 は Ruby からかなりの部分を借りてる〜」と言っていて、PHP や Python でも同じく Ruby を参考にしているみたいな発言がありました。で、Ruby の Q & A の回答でまつもとさんが「Perl も Python も Ruby に近づいてきてる。昔は参考にしてたけど今はもってくるものはあんまないかな」と冗談半分(本気半分?)でおっしゃっていたのですが、他の三言語の話もあったおかげで信憑性が高まっていたり。また Perl の強みは CPAN だってな小飼さんの発言があって、これには僕も激しく同意なわけですが、PHP、Python、Ruby それぞれに Perl の CPAN には一目置いている節が垣間見える発言があったりもしました。(何かと CPAN の話は盛り上がった一日でもありました。)
休憩を挟んで午後一のセッションは、「LLとオブジェクト指向について」というテーマでのパネルディスカッション。まず各言語におけるオブジェクト指向についてプレゼンがあった後にディスカッションという流れ。このディスカッションはかなり良かった。時間があまり無かったのが残念だったので、次にまたこういう機会があったら是非もっと長くやって欲しいところです。
Perl の発表者は CPAN No.1 Author エッジの宮川達彦さん。bulknews の人です。(僕のウェブログを見てくださっていたらしく、会場で少しお話することができました。) どうも CPAN モジュール登録数世界一の座をとある Perl Hacker に脅かされているらしく、「(抜かれたら)またくだらないもん作って取り返します」と会場の笑いを誘っていました。
Python の発表者は磯蘭水さん。青学理工で教員を務めているそうです。(僕とは母校繋がり。ご挨拶させていただきました。)
加えて PHP からは藤本真樹さん、Ruby からは中田伸悦さんという顔ぶれ。
以下、ディスカッション開始時のやりとり。(僕の記憶を辿ってるので、言葉遣いとかは不正確です。)
司会: 他言語のプレゼンを見て何か一言。
宮川さん: Python のプレゼンのテンプレートかっこいいですね。
一同: 笑
(司会、思わずツッコミ)
宮川さん: Perl もそういうの欲しいんですよ。それはオフィシャルのなんですか?
(磯さん、結構真面目に答える。)
宮川さん: いや、実はそれはどうでもいいんですけどね
一同: 爆笑
漫才ですか?(w
で、ネタはいいとして、会場からの「OO を習得するコツみたいなのがあったら教えてください」という質問に対しての磯さんの回答が興味深かったです。
大学一年生にプログラミングの授業として C++ を教えているそうなんですが、手続き型から入ることはせずにいきなり OO から入るのだとか。その時、すんなり入れる人、なかなか入れない人でだいたい二つにばっさりと別れるそうです。
磯さんが言うには「物事を順序だてて手続きに沿って捉えてる人」はなかなか馴染めず、逆に「物事を構造で捉えてる、全体を俯瞰的に見ていてあれとあれがあってこれとこれが繋がって...と関連で考えてる人」はすっと入れるんだそうです。前者の手続き型の人は、C でも序盤のうちは順調でも構造体のところで一斉に躓くんだとか。
なんか分かるなあ、これ。というのも僕も C のとき構造体でちょっと躓いた者でして。C でプログラムを書くことはほとんど無いのですが、プログラミングを始めたばかりのころに一応勉強して、構造体のとこまで行って、なんだこりゃ、と。ただ、他言語で OO の考え方をちょろっと学んだ後に再度見てみたら、なんの事ははない、データ構造を一つのモノとして見ればいいんだねってことであっさり理解できました。「全体を俯瞰的に見る」ってのはそういうことなんだろうなと。
ディスカッションの締めは、オブザーバーとして参加のまつもとさんの一言。
「オブジェクト指向はむずかしくない(でしょ?)」
最後のセッションは、「キミならどう書く」。あるテーマの実装を、各言語でっていうセッションです。テーマは三つあって、
といったもの。個人的にはやはり RSS ビューワーに関心があったのですが、いかんせんそれぞれの持ち時間が 5 分ということもあってあまり詳細までは聞けませんでした。でも考え方とか、どういう方針でとかっていう話は結構参考になりました。Perl はエッジの早川真也さんが発表だったのですが、CPAN の発音は "クパン" で A を強く言わないと海外ではわかってもらえないとかそんな話で半分ぐらい時間使っちゃってるし。(笑) ま、面白かったのでアリです。
圧巻だったのが最後のじゃんけんゲーム。じゃんけんプロトコルの仕様を決めておいて、それぞれの言語でクライアントを実装し、実際に会場でじゃんけんゲームのデモが行われました。サーバを用意して、Perl, PHP, Python, Ruby それぞれのクライアントが4人(?)でじゃんけんを行うという。名づけて「最強スクリプト言語決定戦」(笑) いや、司会の人がそう言ってたんだってば。ちなみにサーバーは Java で実装されていて、「なんで LL なのに Java なの?」というツッコミがありました。
「公正を期すためです。」
という切り替えしに一同拍手。(笑)
じゃんけんゲームのデモが動いたときは盛り上がりましたねえ。締めにふさわしいイベントでした。写真に撮ってみました。(ブラウン管をデジカメで直接撮ったので見づらいですけど。)
じゃんけんクライアントのうち、Ruby はただただしさんと共に tDiary を開発している喜多淳一郎さんが実装しましたが、スレッドを使ってあれこれやったそうです。発表の中で「(スレッドを使ったりとか)こういう一見すごいことをやったりするのが気持良い」と言っていました。冗談半分ではあったものの、真面目な話 LL でこの感覚って大事だと思うんですよね。エレガントなコードを書けたときってやっぱり楽しいし。Q&A の回答で同じく喜多さんが「おれってばスゲーことやってるね、ってのを手軽にできるのがいい」ってなことをおっしゃっていて、個人的に胸に響きました。
盛り上がってて面白かったし(途中ちょっと寝ちゃいましたけど)、色々な人にも会えたし、オライリーの本が割引で買えたし(笑)、とても有意義な一日でした。(全然 LL に関係ない本買っちゃいましたけど。) 次回も是非参加したいと思います。
![]()
(写真) 買った本、おまけで付けて貰ったオライリーの布袋、参加者に配られた LL Tシャツ。
あら、会っちゃいましたね>宮川達彦
今度会ったら「Coconuts Crushの音源下さい」って言ってみて下さい(笑)
CPANってずーっと「シーパン」だと思ってた。
[1] Posted by: ooba at August 12, 2003 01:04 AM [返信]やあ、どもです(笑)>oobaさん
CPANはシーパンと読むのが普通です。彼がおかしいのです(笑)
Coconuts Crush の音源下さいとか言ってみるテスト。
世の中狭いっすね。Six Degree どころか Three Degree だ。
[4] Posted by: naoya at August 13, 2003 02:38 AM [返信]