今年も参加しています。適当に実況します。
(8/8 追記。id:SumiTomohikoさんがすばらしいまとめを作ってます。こちらもぜひ。)
10:30 基調講演 - ハッカー気質について / 和田英一さん
- hackとは・・・playful 遊び心で
- hackerとは・・・to be described as a hacker by others (他人にハッカーだと認めてもらう) が better
- ハックは自己表現。チームで作る互いのものではない。四苦ハックして行う
- 楕円を書くコンパス・・・円錐を斜めに切ると楕円になることを利用。影絵で説明(笑)。
- ケルミンの積分機、兆候予測機、微分解析機*1
- Niemanのトルク増幅器・・・Input軸の変位をモーターの力で増幅させる。牛の鼻輪を引くと、痛がって同じだけ牛が動くのと一緒(サーボモゥター)
- flipflopで音階を出す・・・ビットシフトにかかるクロックがシフトする数で決まるので、それを利用。teletype にかかる200msを、1音の単位とできた
- Willem van der Poel の PDP-8 Lisp のコーディングはすごいらしい。全部読んだそうです。
- 質疑応答
- 楕円を書くコンパスの先に、サーボメカニズムを入れると改良できます(笑)
11:35 Language Update
- Perl / 小飼 弾さん
- Io / 浜地 慎一郎さん
- プロトタイプベースのオブジェクト指向言語
- 異様にシンプル。キーワード0(!)
- ひな形をcloneしてオブジェクトを作る
- クラスの継承とオブジェクト生成が同じ書き方ができる。
- 余分な引き数は評価されないと言う仕様(!)を利用して、if文もメッセージにしている
- 突然ガラッと変わる言語仕様
- 多重継承可能
- Clean / lethevertさん
- PHP / Seiji Masugataさん
- 4系と5系の開発が進んでいる。4系はほぼ集結。
- 5.2.x → メモリマネージャの改善
- PHP6 → 名前空間の拡張。
- Zend Framework のプロダクションバージョン
- PHPのバグ公開サイトや、PHP5への移行サイトの登場
- 2の65乗問題
- R / 樋口 千洋さん
- S言語とScheme を統合した、統計処理言語
- 解析ライブラリが公開されている → CRAN, Bioconductor
- ベクトルデータが基本、ヘルプが豊富、組み込みデータ
- データマイニングやバイオインフォマティクスに利用。バイオインフォマティクスの分野ではRが多い
- ベクトル計算を楽に記述できそう
- summary関数で、テーブルデータの統計的サマリの表示が可能
- Python / 柴田 淳さん
- Sony Pictures Imageworks (CG会社)にて、Perlを抜いて利用されている
- PIXARやDREAMWORKSなど、CGの分野でPythonが作られている。PyQTによる、モデリングツールもある。
- オールレンジ、業務で使える、10年使える、クリーンな言語仕様
- 後方互換性が重視されている。ロードマップも明確
- Python3.0 今年、α版がリリースされる。後方互換性が崩れる。
- 2.6 は、3.0系の機能も実装される。2.9 くらいまでは出るだろう。2系から3系へ徐々にシフトさせる。
- 勉強会やってるらしい。開発合宿・・・スキー場なのに誰も外に出ずorz
- Lua / 上野 豊さん
- Ruby / まつもとゆきひろさん
12:50 ランチ
うなぎ(1600円)。久々に美味いうなぎを食べて大満足。
13:45 オレ様言語の作りかた
途中参加。昼が短過ぎると思う。。。
- Xtal / 石橋さん
- ライバルはLua
- ゲーム向け言語? 途中参加だからようわからんが、プレゼンおもしろい。確信犯でしょw
- Sukuna / 小原さん
- Forth系。Joyの説明。簡潔さは力なり。
- パッチのバグを修正しているうちに、楽しくなって言語作成(GikoForth)
- Sukunaは、GCや無限リストをサポートしたForth
- 実演。;; が多くて、かなり意味不明w
- なぜ作る? 達成感、勉強、楽しい
- crowbar, Diksam / 前橋さん
- FizzBuzzの比較
- cycle関数って面白いなあ
- まつもとさんのコメント
- 名前の由来、なぜ作った、ポリシー
- よかった部分、後悔してる部分
- なでしこ / 日本語だから注目してもらえる。でも日本語。
- Xtal / 最新機能なのに速く動く。悪い点はない。
- Sukuna / 今回発表できた。悪い点はライブラリ。誰も使わないのにorz
- crowbar,Diksam / 勉強になった。時間がかかる。作ると、使う時間がない。
- まつもとさんのRubyの前の言語
- 1989年。Rubyと関係ない
- Classic というオブジェクト指向言語。「クラスっぽいC」
- Pascalの様に、変数名の後に型
- イテレータなどはすでにあった
- Profile機能。privateなどの制限をかけられる。
- Profile機能は使い物にならない。後のrubyに影響を与えている
- 質疑応答
- これから言語を作りたい人へのメッセージ
- なでしこ / 日本語言語を作って下さい。
- Xtal / 馬鹿でも言語は作れるので・・・よろしくおねがいしまーーす!!
- Sukuna / 自分の好きな言語を作って、絵のように見せ合えるといい
- Diksam / できるだけ小さな言語を作り、拡張すべき
- Matz / 使う人を思い浮かべて作ること。思うよりは簡単なので、やってみて欲しい。生き残った奴が世界に旅立っていく。
15:30 VM魂
- LLを、 java、 .NET の VM 上で動かす
- Jython / 西尾さん
- 1997 Jpython / 2001 Jython2.1 / 2003 Jython2.2
- IronPythonの方がお勧め(コラ)
- Jython のデモ。補完ができる。
- midiのライブラリで、フィボナッチ数列を可聴化
- Rhino + Groovy / 鈴木さん
- 1997 Javagator (JavaのPureブラウザ) 用の JavaScript エンジン
- 1999 Mozilla から Rhino リリース
- PureなJavaScriptエンジン
- 注意: JavaとJavaScriptのクラスは違う
- 例: サーバとクライアントをJavaScriptにする
- で、Groovy
- JSR241 JavaSE7に含まれるかも? → JRuby に抜かれる
- Ruby にインスパイアされている
- MOP、マッピング
- 問題点: クラスを呼ばないと、関数を実行できない
- JRuby / 高井さん
- IronPython / 荒井さん
- pythonのクラスをJavaScriptから呼ぶデモ
後は、単なるMicrosoftのCM(笑)*2
- Pnuts / 戸松さん
- LLを使いたいだけなら、VMは不要では?
- ネイティブのLLと比べると、どうなの?? バグは?
- JRuby。オーバヘッドはある。が、初期化など、オーバヘッドの許容できる部分では実用的。
- IronPython。ファーストクラスの環境になると思われる。ASP.NETの対応言語になっていくだろうと予想
- Grooby。大人数でやるのならJavaはいい。一人でやるならLLは向いている。これらの共存をする。大きい根幹はJava、末端は一人でLL。
- いびきがすごくなってきた(笑)
- プロトタイピングについて
- Pnuts をビジネスで使いたいって話は??
- サーバサイドや、ユーザから見えにくいところ。
- Pnutsはどのくらい速いの??
- IronPython は c-python より速い? ほんと??
- ほんとうにそう。ただ、 IronPython は c-python の 10% 程度しか実装してない。オープンソースプロジェクトでは 95% くらい移植している
- IronPython は .NET が駄目なことを証明するために作られたけど、速かった??
- いろんな手段を試して、最速の方法を実装している。VM側にもフィードバックしていく。IronPythonのために.NETも進化する
- Java陣営は? JVMはLLにあわせて進化するの??
- JVMが突然ダイナミックになったりする?
- JVMと.NETのライバル心はあるのか??
- 開発者リソースの奪い合いをしているのが心配
- 話ではGroovy だったのに、 Rhinoが入ってるのはなぜ??
- 安全な実装が選ばれた。JavaScript1.5が動くのは魅力的だが、開発環境としては弱い。
- JRubyは戦略的に流行らせようとされている??
- Rubyと名前を出すと、資金が出やすい(笑)。熱意的な人がいる
- Java7にJRubyはつく??
- 質疑応答
- 「JRubyのコンパイル手段として、ASMってのは本質的じゃないのでは?」「本質的ではないですが、最適化と言う面ではASMが原因な気がします」
- 「IronRubyの実装はソースを見ないとできない。MicroSoft は OSS のソースを読むと即解雇という噂がある。ほんとなら、どう実装しているのか」「Matzさんと制作者間で取り決めがある。そこから言語仕様を起こしている」
- 「その言語仕様を公開すると言う話はないのか??」「話は未定だが、社員であれば見れる。存在することは証明する。公開できるかは不明。」
- 「ほんとうにOSSを読むとクビ?MicroSoftでもOSSをやろうとしているのでは?」「ライセンスによっては問題ない。商用で販売するような製品のOSSは読むとまずい。知的財産の入り込みを防いでいる」
- 「DLRを利用して、サーバ上とクライアント上で同じ言語を使うという方向性はあるのか」「やりたければなんでもできる。VM上でライフサイクルの長いものを動かすと、JITやGCに悪い影響を与える可能性がある。色々試してから実施したい。」
17:30 キミならどう書く ?プレゼンソフトを作る?
- OCaml / 小笠原さん
- OCamlとは? ・・・ 静的な型チェック、型推論、関数型とオブジェクト指向の融合、コンパイラが高速コードを出力
- どう書くか ・・・ Cairo を利用(gtkのバックエンド)、チャネルシステム? ロック不要のマルチスレッド(アニメーション用)
- チャネル間でだけ情報をやりとりする
- 質疑応答
- 「絶対やりたかったことは?」「マルチスレッドと、ガベージコレクション。」
- 「プレゼンは一般の人が使える??」「HTMLと似たものなので、利用可能でしょう」
- 「スレッドはネイティブスレッド?」「内部ではネイティブスレッドだが、GCのせいで実際はそうではない」
- 「オブジェクトの書き換えを、他のスレッドから見る時に排他制御が居るのでは?」「破壊的代入を行わないように組むとよい」
- JavaScript / id:amachang
- WEBでプレゼンを共有したい。KEYNOTE?PDF?
- HTML + JavaScript ← SearchEngineに見つかりやすい、Crawlerが理解できる、セマンティックWeb
- JS は重い。軽く作るのが重要
- シンプルなHtmlを書く。JSONで動きを定義する
- インデックス機能をプレゼンにて実装 ← すごい
- X Browser、ブログパーツにできる
- 諸々の高速化
- src="//:" ・・・ IEでの高速化。バグ?
- 質疑応答
- 「いつ使える?」「そのうちブログで公開されると思います」
- 「Peramalink はあるの?」「Cookie に どこまで見たかはあるが、Parmalinkはない。」
- 「プレゼンのソースを見せて」 → divでページを書いてく感じ
- XUL (ズール) / 下田さん
- Java / 西本さん
- Gaushe / 小黒さん
- 一般の人が使えるプレゼンのアイディア
- かかった時間は?
- Java / 3ヶ月 + 3日
- Ocaml / 2週間
- JavaScript / 1ヶ月
- XUL / 2〜3時間を繰り返して、2〜3時間
- Gauche / 2ヶ月
- 「高橋さんは高橋 in XULを使うのか」「評価はしたが、字が思ったより大きくならなかった」
- 「スライド巡り以外のプレゼン手法はないか?」「JavaScript的には、逆に頑張ってスライドっぽくしている。」
19:20 Lightning Talk
- PRaggerでピザが頼めるようになるまで / 斎藤さん
- 外付けwebフレームワークflowr / 中谷さん
- JavaScriptで、機能をサイトに貼付ける
- モノポリーごっこ。ブログをマスに見立てて、記事を購入。TBとは違うBlog間連携。
- 続きはWebで・・・公開はまだ。DSLとか文字が見えたなー
- オープンソースのウィジェットエンジン「Mashed Potato」(を作ります><) / 大崎さん
- WebDB開発特化型言語Alinous-Core / 飯塚さん
- __init__.php? 変態的国産PHPフレームワークrhaco / 露木さん
- VM魂に入れて貰えなかったJavaFXScript / 庄司さん
- Power of Scala / 水島さん
- Lispのオブジェクトシステムの概要 / 鈴木さん
- Coq 定理証明という選択肢 / 今井さん
- Coq は、定理証明ツール。
- プログラム開発 → 正しいことの証明 → プログラムの抽出
- Coqは、大切なとこだけで使う
- WEBアプリを作り、SQLインジェクションが起きないことを"証明する"*3
- にわとり小屋でのプログラミング日記
- D4R - DirectX for Ruby / 高野さん
- イメージファイト! / 竹迫さん
- Javaより速いLL用テンプレートエンジン / 桑田さん
- Tenjin。Velocity よりも速い
- 他言語で利用できる、LL向けのテンプレートエンジン
- 言語に酔って、テンプレートの書式が違うっぽい
- プリプロセッサ機能 ・・・ 毎回固定の文字列を、処理前に埋めておく
- C++のためのx86 JITアセンブラ xbyak / 光成さん
- じゃ、どう書く? / 西尾さん
- こう書く課。こう書く機動隊。
- ja.doukaku.org (抹茶ムース色)
- コードを読んで、書くことが上達への道
- お題を考えるのが大変
- ピザ来た?? Mobile3.0?
20:25 今年もボールで抽選
- はずれ。帰宅。おつかれさまでしたm(_ _)m
- 来年の予告。場所も日程ももう決まってるみたい。
*1:原理はよくわからなかったorz
*2:コメントにもあるけど、これはこの説明だけ聞いた段階での感想であって、完全に誤解。IronPythonの話を聞くつもりが、DLRから.NETを含んだMSの未来の構想の話に膨らんでたので、そう聞こえてしまったんだと思います。最後までこのセッションを聞いて、MS陣営がOSSへ注力し始めてるのは素晴らしい流れだと感じました。
*3:その証明が大変(笑)