[ダイジェスト:2007/08/04]Lightweight Language Spirit
☆ このトピックは、まだ未完成です。内容など、今後、変更、修正される可能性があります。☆
名 称 Lightweight Language Spirit (通称: LL魂)
開催日 2007年8月04日(土)10:30-20:30
会 場 日本教育会館 3F 一ツ橋ホール
一度のLightweight Languageのお祭り。ここ数年、これに参加するために働いて、お金ためてる気がする。自分では、LL使う仕事なんて、ほとんどないのに、やっぱり楽しい。堪能。今年も「まだまだ、勉強することあるぞ」とドヤされて背中を押された感じ。これが、これからの1年間、「前に進まなきゃ」って思う(実際には、「思う」だけで、ほとんど進んでないけど...)エネルギーになるんだな、きっと。
- [10:30~11:30] 基調講演
あの"Happy Hacking Keyboard"の和田先生。以前にお目にかかったのは、 1995年3月に開催されたJUSの合宿『可搬型計算機を用いて構築する個人環境に関するワークショップ』で、「CPUなんて、カウボーイの馬と同じで、使い捨て。大切なのは、キーボード。これは、鞍と同じで、一生ものでなくちゃ。だから、キーボード、設計しました」と発表されてるのを見た時。和田先生のエラさを知らなかった僕は、「なんちゅうパラダイムシフトする奴だぁ」と開いた口が閉じなかったのだった。(今となってみると、「日本最初のハッカー」と呼ばれていた方に対して、こんな感想を持ってしまうこと自体、「知らないってことは、オソロシイ」と思うです。)
今回の和田先生のお話は、『ハッカー気質について』。ソフト屋が「ハッカー」というと、無意識のうちに同業者を思い浮かべてしまうけれど、コンピュータが出てくる前から「ハッカー気質を持った人たち」はいっぱい存在してたし、「気質」の部分は変わってないよ...というお話。ご自身の体験だけではなく、時空をさかのぼった実例など、面白いお話がいっぱい...だったのですが、小学校高学年から、算数/数学、特に幾何でオチコボレていた僕にとって、「なぜ、ちゃんと機能するか」は、さっぱりついていけませんでした....。しくしく。
- [11:30~12:40] Language Update()
今回は、古株4言語( Perl, PHP, Python, Ruby )、新顔4言語( Io, Clean, R, Lua )の、合計8言語の発表。
- Perl
去年のLLで「来年は、6.0」と言ったので、本当は、"An ordinary Perl 6 Guide"というタイトルになるはずだったのに、6.0の仕様が決定するのが、2007年に...。"Perl 6 makes you extraordinary"なんて派手な発言もあったのに...。
なので、今回は、あてにならない6.0ではなくて、10月に本当に出てくる5.10のお話を。
[...続き...]
- Io
「アイ・オー」と呼ぶ手続き型プロトタイプベースの「何でもオブジェクトにしちゃうぞ」オブジェクト指向言語。どれくらい「なんでもオブジェクト」なのかというと、「ifもdoもメッセージ」なくらい徹底してる。[...続き...]
- Clean
Haskellに似ている、開発も実行効率もLLな言語。ほかの言語のように「速度が出ないところは、CとかC++で書いて...」なんて日和る必要なし。Language Shootoutで3位に入るくらい、実行効率が良い。
Shellを作る実験(Fa)とか、Wikiとかの実装あり。「300行未満で、ゲームが作れました」という話もあるが、発表者はスクリーンショットしか見たことがない。
[...続き...]
- PHP
来年9月に5.2.4がリリースされる予定(現在RC1)。本体もモジュールも、いっぱい修正されてる。
4.4.xは、放置されている方向。
6系は、関数とクラスにnamespaceが使えるようになる。
Zend Frameworkは、やっとProduction Releaseになった。
[...続き...]
- R
SのSyntax + SchemaのSemanticsの一部をくっつけたような言語。対話型形式とバッチのどちらもいける。
色々な解析パッケージが存在していて、バイオインフォマティクス(論文で使われることが多い)やデータマイニングで使うのに便利。[...続き...]
- Python
汎用言語のはずだけれど、ILMとかDreamworks、Imageworks、PixerみたいなCG業界で数値計算用に使われていることが多い。
いまや「世界でメジャー」。でも、「国内はマイナー」...。むむぅ。「実務に使える言語」なので、もっとメジャーにしたいな。
[...続き...]
- Lua
ゲームとかつくるのには、良い感じの言語で、World of Warcraftや、Ragnarok Online、Adobe Lightroomとかに使われている。
小さくて軽くても組みやすくて、データの整理がしやすいのが特徴。最近は、VMコンパイラやJITコンパイラ、マクロなども充実しつつある。
[...続き...]
- Ruby
2007年のテーマは「エンタープライズ・Ruby」で、「良い子にしていると、クリスマスに2.0をプレゼントしちゃう」と、あのまつもとさんは言う。でも、一緒に登壇した笹田さんは、「本当は、1.9が出ます」と言う。
まつもとさんは、「Yet Another Ruby VMを改良したので、MRIより2倍から500倍速くなります」と言う。でも、笹田さんは、「500倍も速くなったら、Cより速いじゃないですか。ありえないです。」と言う。
まつもとさんは、「遅延評価をサポートした。キーワード引数もOK。」と言うが、笹田さんは、「遅延評価なんて、知らないよ。キーワード引数なんて、誰が実装するの?」という。
結局、出てみないと、どうなるか、わからないらしい。
[...続き...]
- [13:30~15:00]オレ様言語の作りかた(パネル)
「オレ様言語の作り方」は、Xtal、ひまわり、Sukuna、crowbarの作者にRubyのまつもとさんを加えての1つめのパネル。
「必要に迫られて作った」り、「既存のものが気に入らないから作り始めた」り、はたはた、「言語を作る方法を説明するためのサンプルとして作った」りで、作り始めたきっかけはさまざま。
文法は、作者が使ってきた言語に影響を受けるのは当然として、「カッコ良さ」や、「好きな女の子が、良いと言ったから」など、これまた、作者の個人的な事情が関係していることが、判明。言語の名前にも、思い入れがある様子。
残念だったのは(僕が勝手に思い込んでいただけだけれど)、タイトルが「作りかた」だったので、開発手法や「文法や機能を、どのように選択実装するか」などという話を期待していたのだけれど、時間の関係で、そこまで入ることができず、「言語の紹介と、つくることになった背景、および、きっかけを話す」で終わってしまったこと。タイトル通りの内容にするには、確かに90分では短いよなぁ。
でも、ベンチマークを走らせたら、予定と違う結果になったり、作者の思い入れが感じられたりで、個々の話は、わくわくするものが多い時間だったな。
[...続き...]
- [15:30~17:00]VM魂(パネル)
前の「わくわく」「ほのぼの」パネルとは打って変わって、「技術ガチンコ勝負」なパネル。だからといって、「対抗意識バリバリ」で「相手をねじ伏せよう大会」だったわけではない。JVMと.NETというPC上で動作する二大VMの上で動く言語の特徴と、VMに持っていったことによる長所短所、そして、VMに持っていったことで、今後、どのような方向に進んでいくのかや、現行VMが抱える問題点などが、Jython、Rhino、JRuby、 IronPython、Pnutsの関係者から語られた。
[...続き...]
- [17:30~19:00]キミならどう書く ~プレゼンソフトを作る~
LL名物「キミならどう書く」は、去年までの「お題は、当日朝に発表」と違って、事前にお題が発表されていた。このため、出来上がったプログラムは....、すげぇっす。ワタシ、使いたいっす...。
- OCamlで作られたシステムは、スレッドペースのアニメーションが特徴。
- JavaScriptで書かれたものは、HTMLとJavaScriptだけで作られたとは思えないくらいの機能。「そのままweb上に置いて、Googleにも引っ掛けてもらえるようにしたい」という理由でHTMLを選択した...と作者。でも、ちゃんと全体のスライドを見通す機能がついてたりするのは、うれしい。
- XULで書かれたものは、「ブラウザ互換」なんて考えるのを止めて、「FireFoxで見れれば良いや」と割り切った分、高機能。これも、JSとCSS、そしてXULで実装したとは思えないくらい、気持ちよく動く。
- JAVAで書かれたものは、なんと、3DのCMS。作者いわく「ぜんぜん、LLじゃない」。でも、SecondLifeっぽいプレゼンソフトで、カッコ良いし、「操作パネル」と「表示画面」が別々になっているのはうれしい。まさか、プレゼンのためにプレゼンサーバーあげて、VNCでつなぐとは想像してなかったけど。
- Gaucheで書かれたものは、「一般人に使わせる」を過剰意識して、「インストールさせるのは、難しいと思うから、WEBアプリに」「作成も大変だと思うから、Paintかなにかで作った画像を表示するだけ」という仕組み。でも、Schemeのプログラムファイルが「画像ファイル」として読み込めるあたりが、イカしている。このソフトが普及すれば、一般人の中に、Scheme使いが増えるよね。
- [19:20~20:20]Lightning Talk
今回は、14名の発表者。中には、「無料で参加したい(発表者は、参加費免除)ので、発表することに」という素敵なアイディアの方も。みんな、チケットとるのに苦労してるんだね。
- 最初は、PRaggerで、ピザを注文できるか?という実験。LTの最後に「ピザ、届きました」と言いながら再登場したけれど、本当は、失敗した...っぽい。
- Permanent Linkを使って、BlogやWikiをJavascriptでつないでいくBlogパーツとサービス。内部DSLで、機能を実装することで、「Blogでモノポリー」まで作れる。これは、ちょっと面白いかも。
- MashPotatoは、XMLベースのフレームワークを拡張して作ったウィジットエンジンで、....という説明の部分で、なんと時間切れ。さて、何ができるはずだったんだろう。
- DB用オレ様言語は、Alinous-Core。*.alnsにSQLを書き、*.htmlに画面デザインを書くと、なんと、DBアクセス部分が完成してしまうという...。まじっすか、近々、試してみよう。
- RHacoは、PHP4/5のライブラリ。ORマッピングとか、認証フレームワークとか、いっぱい機能があるらしい。なんでも「とてもヘンタイ」なライブラリらしい。
- 2007/05/08のJavaOneで発表されたJavaFXScriptは、「言語のMashup」とでも言う言語らしい。配列をSQLのようなクエリでアクセスできるっていうのは、(どう使うかは別として)面白い。GUI作成向けの言語らしい。
- もうひとつJava関係で出てきたのは、Scala。「JVM上で動く静的型付け関数型言語」とのこと。4分の説明では、いまひとつわからなかったのだけれど、Googleしてみたら、ちょっとした話題らしい。時間があるときに体験してみることに...と思うものの、いつになるものやら。
- 突然、Lisp。Common LispのオブジェクトシステムであるFlavorsという名前は、Palo altoのアイスクリーム屋さんから来ている...という、お話。だから、Flavorsのすべてのオブジェクトのスーパークラスは、Vanilla....。お~っ。
- 定理証明のためのツールで、バグの出ないプログラムを作ろうとしているのが、Coqの発表者。バグが出ないから、テストも不要。お~、すばらしい..のだが、その定理証明が正しいことを、どうやって証明するのだろう。というより、プログラム言語ではないので、実装はほかの言語を使うわけで、実装時のバグは調べなくちゃならないから、ゃっぱりテストは必要なのね....。
- ゲームを作ろうという話から、DirectXをRubyで操作するD4Rを作ってしまった人たち。ライブラリを作るのに専念して、ゲームの開発はさっぱり進まず...らしい。でも、楽しいなら、良いじゃない?
- IPAから、「安全なWEBアプリケーションを作るには、PHPを使わない」とまで書かれてしまったPHP。GIF画像の中にPHPコードを埋め込まれたら素敵なことが起こるので、サニタイズしなくちゃ...という話。始めっから攻撃を無効にするコードを埋め込むところまでたどり着いてしまって...。
- TenjinというLLテンプレートエンジンは、なんと、Javaより3倍速いとのこと。これって、VM魂で話されていた「高速化」の話を実装したものかな?
- LLは、CPUパワーを使いまくる。これは、地球温暖化の原因のひとつに違いない...と、地球を守るために立ち上がったのが、xbyak。文法は、C++と同じ。プログラム実行時に、動的に機械語を生成してしまおうと言う仕組み。
- ja.doukaku.orgは、「こう書く機動隊」のポリシーである「多くの人のスタンドプレイによるチームワーク」を利用して、ひとつの問題に対して多言語による回答を集めるサイトるお題を考えるのが大変なので、回答だけではなく、お題も募集しているらしい。
[...続き...]
- [20:20~20:30]Ending
最後は、今年もビデオで締め。ビデオの最後に「来年は、8月30日、中野ゼロ 大ホール 1300人」と出たときには、会場大拍手。小さな会議室から始まったイベントが、数年でこんなに大きくなるなんてすごいね。
スタッフの方たち、楽しい一日を今年もありがとう。来年は、今年より更に大きなキャパの会場で、ますます負担がかかると思うけれど、
そんなスタッフの方たちの苦労を無にしないような楽しい一日を過ごしに来れるようにしたいな。
文書履歴
このページの扱いについて
イベント参加時のメモを元に作成しました。内容については、まちがいが無いように努力していますが、
誤解、聞き違い、表現能力、勉強不足などにより、事実と違う場合があるかもしれません。
もし、まちがいと思われる部分がありましたら、指摘いただけると幸いです。
なお、内容については、必要に応じて訂正されたり削除されることがあります。