LLSpirit行ってきたレポ。

色々正確ではありません。なんかメタメタですけどもう投稿します。一部創作ですたぶん。

先に感想

おもしろかったすよ。思ったより普通の話をするイベントだった。

至会場

俺は迷ったけど、事前に場所を調べておけばわりとわかりやすい場所にあったと思う。来年は中野ZERO らしいんで、かなりわかりやすいと思う。

基調講演 (和田 英一)

迷ってちょっと遅刻したんで初めの方はわからない。ハードウェアの話として楕円を描く機械とか微分する機械の話をしたりしてくれました。が、俺は未だ微積分がよくわからない大学生なもんで、「ストアドプログラム方式の世界で活動してて良かった俺」などと呆けていました。

Language Update

Perl (小飼 弾) http://blog.livedoor.jp/dankogai/

Perl6 のオハナシ主に Perl5.10 の話。Perl6は宇宙人に任せておいて、凡人向けに Perl5.10 を紹介します。
feature プラグマで一部 Perl6 の機能が先取りできる!
say は puts より1バイト短かいし素敵!

$==$///$;

とか、より一層謎なコードが書けるようになる!
C の static 相当の state 変数、C の switch 相当の given 〜 when をサポート。この辺普通に便利そうな気がした。
Regexp が trie最適化するように。えーと確か「(とかちつくちて|とかしつくして) を自動で とか(ち|し)つく(ち|し)て にします」とか言ってたような。えーとこれだと後方参照が変わっちゃうから駄目だけど、なんかそんな感じのことを。今時正規表現も最適化しなきゃ! みたいな。弾さんはそんなこと言ってなかったけど。

Io (浜地慎一郎 id:shinichiro_h) http://shinh.skr.jp/m/

シンプルなプレゼン(大きめテキスト)非常に流麗なるマシンガントーク。
Io はシンプルな言語。予約語0個に、BNF は 5行くらい(みたいなもの)。言語仕様とかが尋常じゃなく変わりまくるので楽しくてしょうがないですね! というようなハッカーすぐる発言が印象的。
プレゼン最後に「実はこのプレゼンも Io で書かれてます」と白状するメソッド

Clean (id:lethevert)

言語としては Haskell とかなり似てる。Haskell と違う点はたくさんあるけど、入出力は一意型というものでおこなう。第一線の研究者が開発してる言語です。とりあえず「速いよ!」。
自作のプリプロセッサ CleanX の紹介。

PHP (Seiji Masugata)

PHP処理系のバグとの戦いは熾烈なもの。「PHP は叩かれる宿命にある!」

R (樋口 千洋)

S言語と Scheme にかなり影響を受けた言語。大きな特徴としては、S言語は動的スコープなのに対し、R は静的スコープ。

Python (柴田 淳)

Pythonエンタープライズ用途で多用されています。何故か。
Pythonでは「たったひとつの冴えたやりかた」が好まれるとか。後方互換を大事にするとか。思想や仕様、ロードマップが明確だとか。
でも 3.0 では思想優先にして互換性を一部捨てますんで御注意。

Lua (上野 豊)

つまみをクルクルまわすUIが素敵だった。すいません、あと忘れてしまいました。
(Language Update まではリアルタイムでメモ取ってなくて、あとで思い出しながら書いたので)

Ruby (まつもとゆきひろ、笹田耕一)

matzさん嘘つき。ささださんmatzさんをフルボッコ。
matz「VMRuby は 2〜500倍速くなる」「俺は lazy をサポートしたぞ Larry!!」「Ruby 2.0 はじまる」
ささだ「嘘つくな」

オレ様言語の作りかた

ひまわり (クジラ飛行机)

主にバッチ処理をする、便利なコマンド集のような言語。プログラミングの敷居を下げること目的。
とある中学生曰く「英語じゃやる気しなかったけど、日本語だからやってみようと思った」。
「作った後にふりかえると、良かった点は日本語プログラミング言語にしたこと。悪かった点は日本語プログラミング言語にしたところ」に会場爆笑。

xtal (石橋 立宜)

主にゲーム製作用途のスクリプト言語
GCで大きな停止をしないこと、モダンな機能(高階関数、例外、デフォルト引数、fiber、……)、バイトコードへのコンパイル、ネイティブスレッド、OOPなどの特徴あり。ベンチマークLua に匹敵するほどけっこう高速。C++との連携(Luabind, Boost.pythonのような)を標準でサポート。
緊張してることがよくわかる発表でしたが、でも発表自体はわかりやすかったですね。緊張しまくってて発表もわかりにくかったら見てる側もアワワな気持ちになるのでしょうが、そこは大丈夫だったんで逆にかなり笑いをとってるスピーチとなってました。
モダンな機能がプリミティブに組み込まれてるってのがDリスペクトだったりするのかなーと思った。

Sukuna (小原 広之)

Forthリスペクト言語。ほぼ Forth とのこと。
「最初はBrainf*ck処理系を参考に書き始めた」!!!
どうでもいいけどターミナルのフォントがみかちゃんフォントだった?

crowbar, Diksam (前橋 和弥)

プログラミング言語の作り方の記事を書く中でのサンプル言語。

言語を作った動機

某作者「好きな女の子に『こんなん作ろうと思ってる』と言ったらすごい感心されたから気を魅こうとして」!!!
それだ!!!!!!
会場が拍手で満たされる。

VM

ざっくりいいかげんに。

JRuby (高井 直人)

JRuby最強説。
enebo → はかたラーメン
誰かソードワークスとかいう会社で働いてる → 東京トイボックス

Jython (西尾 泰和)

Java のオブジェクトを Python から簡単に呼べるよーと、フィボナッチ数列を可聴化してみたり。

IronPython (荒井 省三)

.NET で色々な言語が動くようにするプロジェクト進行中。Python のオブジェクトを JS が使えたりとか、クロスランゲージな色々ができる。もちろん .NET のオブジェクトも全部使える。

Pnuts (戸松 豊和)

小さくシンプルで速く、Java との親和性を重視。JVM で高速に動作させるには様々なコツがある。

Rhino (鈴木 雄介)

元は Javagator のために作られてた。後に Javagator ポシャるも、Rhinoプロジェクトは何故か続けられる。その後も様々な困難に見舞われるが、何故か地道に続けられる。最近は JRuby に脅威を感じたか、プロジェクトが急に活発になってるみたい。Java との連携に難有りとのこと。

キミならどう書く プレゼンソフトを作る

「一般の人が使えるようなプレゼンソフトを作ってください」というお題。

OCaml (小笠原 啓)

ロック機構によるマルチスレッドプログラミングはデッドロックを避けるための苦労がめんどう→チャンネルスタイルのお手軽なマルチスレッドプログラミング
プレゼンソフトユーザの入力は XML で。

JavaScript (天野 仁史)(id:amachang

きれい。DHTML の表現力、および id:amachang さんのデザイン力とか。後者でけえんじゃねという噂もある。

XUL (下田 洋志/Piro)

高橋メソッド in XUL なソフト RETURNS。高橋メソッドの「でっかいフォント」を自動化できる! 楽ちん!
高橋さん曰く「RETURNS は良さそうなんだけど、文字の大きさが足りなかった」。

Java (西本 圭佑)

プレゼンソフト on 3D CMS on Tomcat
入力は Wiki 記法ぽいの。

Gauche (小黒 直樹)

「一般の人」向けプレゼンソフト R-slide。
「一般の人」を考える。Gauche のインストール? できません。XMLに HTML、Wiki記法? わからんでしょうな。
使い方はかつての OHP を目指す。Gauche インストールはサーバーだけ。入力は画像ファイルです画像ファイル。
逸般人」向けの機能も搭載。なんと scheme を実行可能。さらには telnet で R-slide に直接接続することもできる。→ 実行した scheme コードがバグってても、コードを走らせながら動的に buggy なコードを書き換えることができる!!
画面でチャットを表示できるように。→ id:otsune さん登場。

一通り終わって質疑応答だのしてる間にもチャットが表示される。otsuneさん活躍。「VIP から来ました」「自重www」「R-slide はじまた」(一部捏造)

hoge

「一般の人」は「テキストファイル」すらわからんのではないかと、俺なんかは思うわけです。まじで。僕らー「テキスト」っていうものがもうプリミティブなものとして感覚的に理解できてるけど、なんかそこわかってないんじゃないかなと思う。「一般の人」(の多く)は。だから R-slide の入力データは画像ってのは仕様に合致してるんじゃないかなと思った。

Lightning Talk

タイムアップ時にドラが鳴る。これは正直言えば嫌だった。大きな音苦手なもんで。

Coq

証明ツール。Coq の入力から ML とかのプログラムを生成。Coq で証明が完了した部分については、バグが入ってないことがはっきりとわかる。
全てを Coq で書くのは大変過ぎるので、一番大切なところだけ Coq で書くといった利用法が考えられる。

ImageFight

PHP を捨てよう!
画像内部に埋め込まれてる PHP スクリプトの危険性。→ 画像をサニタイズしよう!
サニタイズ言うな

xbyac

xbyac + Boost.python は速いよ。Psycoと比べてもずっと速い。
通称カリー化も簡単にできる。

ja.doukaku.org

書いて、読んで、また書いて、そのサイクルが力となる。
月姫フォント? とか思った。調べたら甲殻でも使われてるらしい。正確な名称は金文体。

来年

LL2008、中野ZERO 大ホール キャパ 1300名!
ホールの予約とか一年以上前にやらにゃいけんのは知ってるけど、すげえ思いきってるなと思った。

雑多な感想

ごちゃごちゃするので切り分け。

和田先生が発表の最後に幾人かハッカーを紹介していましたが、その中で Knuth先生について「僕はあんまり好きじゃない」と言っていたのが印象に残っている。「もちろんすごい人なんだけど、ソースコードは goto だらけで非常に読みにくいし」などとおっしゃってた。
そういや確かにMinischemeに含まれてる Knuth先生の書いたGCのコードは goto だらけだったなあと思った。リンク先のコードはThe Art of Computer Programming由来だそうで。

和田先生の質疑応答のとき「何故 Postscript という使いにくい言語を使うので云々」という質問があがってたけど、Postscript は全然使いにくい言語ではないと思う。プログラムが生成した ps ファイルなんか見ると、「読めるわけねえ!」と思いますがこの辺 http://partners.adobe.com/public/developer/ps/index_specs.html にある Postscript Language Reference の CHAPTER 3 だけ読んだりすると、プログラミング言語だということがよくわかると思います。そんでもって図形描いたりする機能がプリミティブにあるんだから、他の言語よりずっと簡単に「画像をプログラミングする楽しさ」が味わえるってもんです。
つーかまあ俺も Postscript でまじめにプログラム書いたことあるわけでもないですけど。でも和田センセが描いてたような画像を描くなら Postscript は便利な道具だと思う。
あと俺は個人的に Java2D 、特に java.awt.geom.PathIterator,java.awt.geom.GeneralPath の恩恵を受けてるような人は Postscript を知ってても悪くないと思うんだ。
(本当に Java2D のその辺りが Postscript 由来なのかどうかはよく知らない。両者の相似点を見ると、そうとしか思えないけど。つーか今気付いたけど、それ和田センセに聞きゃよかったかも!)

shinhさんはスピーチもゴルフでかっこよかった。無駄が無い。あと2分とかたしかに欲しい発表だと思った。とかく喋りがうめえです。
ていうか shinhさんて、毎回プレゼンのたびにプレゼンソフトつくってねえか? というくらいプレゼンソフトつくってるような気がする。プレゼン見たのは今回が初めてだけど。

「好きなあの子に振り向いてもらう」というモチベーションの上げかたは素晴しい。これって実は割とメジャーな方法なのと違うかな。Linux とかもたぶんそうだよきっと。「タネンバウムのバカ、バカ! 今度こそ絶対褒めてもらうんだから!!!」みたいな。

VM魂のときに誰か「大きなシステムは脚遅いじゃないですか、象とか」と言ってた。たぶん。象はおよそ時速40kmで走るます

朝10時から夜までずっとだったけど、ずっと楽しめてよかった。せめて shinh さんの顔くらい憶えて帰ろうかと思ったけど不可能だった。人の顔は時間を置いて数回見ないと憶えれない。

昼飯→マグロ丼うめえ。晩飯→なんとかマグロ丼うめえ。

えーとこんな感じで。何故か非常にアレなレポになりましたが、推敲とかしたくないんでそのまま投稿します。うーん。ひどい。

test