

今年も参加しています。適当に実況します。

(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 のコーディングはすごいらしい。全部読んだそうです。

質疑応答 「二点を糸で結んで書く方法の方が優れているのでは？」「糸から鉛筆がはずれて難しい。でも、あの機械も難しい。」 「ハッカーは使いにくいものを無理矢理使うもの？？」「好きだから使う」 「ハッカーになるには？」「人によって色々。」

楕円を書くコンパスの先に、サーボメカニズムを入れると改良できます(笑)

12:50 ランチ うなぎ(1600円)。久々に美味いうなぎを食べて大満足。





13:45 オレ様言語の作りかた 途中参加。昼が短過ぎると思う。。。 Xtal / 石橋さん ライバルはLua ゲーム向け言語？ 途中参加だからようわからんが、プレゼンおもしろい。確信犯でしょw

Sukuna / 小原さん Forth系。Joyの説明。簡潔さは力なり。 パッチのバグを修正しているうちに、楽しくなって言語作成(GikoForth) Sukunaは、GCや無限リストをサポートしたForth 実演。;; が多くて、かなり意味不明w なぜ作る？ 達成感、勉強、楽しい

crowbar, Diksam / 前橋さん crowbarは、kmaebashi.comでのサンプル言語 (Perlのようなもの) crowbarは開発休止中 Diksamは、kmaebashi.comでのサンプル言語(2) バイトコードコンパイラはない(ベリファイアが難しい) DVM(JVMのパクリ)

FizzBuzzの比較 cycle関数って面白いなあ

まつもとさんのコメント Xtalはイテレータ等がプリミティブに組み込まれている C++でOOPがかけるのはすごい Sukunaのような無限イテレータはいい crowbarやDiksamは、言語を学ぶって意味では良い

名前の由来、なぜ作った、ポリシー なでしこ / 花の名前、簡単な言語が作りたかった、手軽さ Xtal / 宝石(eXTream Agile Languageとこじつけてる)、最新機能 Sukuna / 神話、Forthが好きだ crowbar,Diksam / パールのような者,紅茶(javaに対抗)、車輪の再発明、Cに似せる

よかった部分、後悔してる部分 なでしこ / 日本語だから注目してもらえる。でも日本語。 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 / 高井さん Ruby1.8.5 と互換性 Javaとの統合 (クラスを埋め込み) JVM, YARV, Rubinius の3VM が使える JavaやYARVやRubiniusのバイトコードへコンパイルしている JavaへのコンパイルはASM Rubyのソースを、JVMバイトコードにし、javaコマンドで動かす

IronPython / 荒井さん pythonのクラスをJavaScriptから呼ぶデモ 後は、単なるMicrosoftのCM(笑) *2

Pnuts / 戸松さん 9年くらいが経過。独りで開発 Luaがライバル(!)。JVMとの親和性とシンプルさ、速さ Javaでできるものがメイン なぜVM？ ・・・ GC, JIT, Fast Locking, Security, 移植性の恩恵を受ける。 ただし、JVMとLLの間の仕様のミスマッチが起きうる LLは生き物で、発生したり死んだりを繰り返す。新しいLLは古いLLのいいとこを取り込む。

LLを使いたいだけなら、VMは不要では？ Rhino。Javaの機能を使いたかったから PnutsはJavaのテストツールとして始まった。main()関数を書くのは嫌だ。 JRuby。Rubyが好きだった。Javaに別のパラダイムをいれたかった。DSL等。 Jython。コンソールからJavaを読むのは面倒。javaの人にLLの良さを気がついて欲しい。 IronPython。コンパイルしない価値を、.NET上で表現できる。手軽に試して、不要なものを捨てられる

ネイティブのLLと比べると、どうなの？？ バグは？ JRuby。オーバヘッドはある。が、初期化など、オーバヘッドの許容できる部分では実用的。 IronPython。ファーストクラスの環境になると思われる。ASP.NETの対応言語になっていくだろうと予想 Grooby。大人数でやるのならJavaはいい。一人でやるならLLは向いている。これらの共存をする。大きい根幹はJava、末端は一人でLL。

いびきがすごくなってきた(笑)

プロトタイピングについて 鈴木さん「LLはプロトタイピング。方向性が決まったら、Javaで行く。昔のsmalltalkも？」 高井さん「日本はRuby、インドでJava、ってのは暗い。Rubyでそのまま動けばいい」

Pnuts をビジネスで使いたいって話は？？ サーバサイドや、ユーザから見えにくいところ。

Pnutsはどのくらい速いの？？ JVMの有効活用により、速くしている。JRubyよりもちろん速い

IronPython は c-python より速い？ ほんと？？ ほんとうにそう。ただ、 IronPython は c-python の 10% 程度しか実装してない。オープンソースプロジェクトでは 95% くらい移植している

IronPython は .NET が駄目なことを証明するために作られたけど、速かった？？ いろんな手段を試して、最速の方法を実装している。VM側にもフィードバックしていく。IronPythonのために.NETも進化する

Java陣営は？ JVMはLLにあわせて進化するの？？ 戸松さん「PnutsはJVMのボクシング等の仕様の影響を受けて速度の制約を受けている。不便ではあるが、JVMの制約の元で色々考えている。JVMの仕様変更は難しい。利用範囲が大き過ぎる。」 戸松さん「LLはどうしても動的なメソッド探索が必要で遅い。だが、JVMの命令に動的呼び出し命令を追加すると言う話があったが、反対した。実装でカバーできるので、JVMに命令を加えるのはいいアイディアではない」

JVMが突然ダイナミックになったりする？ 戸松さん「なったりしないことを願っている」 高井さん「AOP等の、バイトコードエンジニアリングが発達している。その先の最適化で駄目な時に、初めてJVMの見直しが必要」

JVMと.NETのライバル心はあるのか？？ 荒井さん「RoRもIronRuby上で動かしたい。どんなプラットフォームでも動くべき。ただ、IronRubyのプレアルファ版は実装としてはまだまだ」

開発者リソースの奪い合いをしているのが心配

話ではGroovy だったのに、 Rhinoが入ってるのはなぜ？？ 安全な実装が選ばれた。JavaScript1.5が動くのは魅力的だが、開発環境としては弱い。

JRubyは戦略的に流行らせようとされている？？ Rubyと名前を出すと、資金が出やすい(笑)。熱意的な人がいる

Java7にJRubyはつく？？ 鈴木さん「多分つかないでしょう。制約が厳しい。」 高井さん「Rubyは実装と仕様が一緒になっている。JRubyの人も困っている」

質疑応答 「JRubyのコンパイル手段として、ASMってのは本質的じゃないのでは？」「本質的ではないですが、最適化と言う面ではASMが原因な気がします」 「IronRubyの実装はソースを見ないとできない。MicroSoft は OSS のソースを読むと即解雇という噂がある。ほんとなら、どう実装しているのか」「Matzさんと制作者間で取り決めがある。そこから言語仕様を起こしている」 「その言語仕様を公開すると言う話はないのか？？」「話は未定だが、社員であれば見れる。存在することは証明する。公開できるかは不明。」 「ほんとうにOSSを読むとクビ？MicroSoftでもOSSをやろうとしているのでは？」「ライセンスによっては問題ない。商用で販売するような製品のOSSは読むとまずい。知的財産の入り込みを防いでいる」 「DLRを利用して、サーバ上とクライアント上で同じ言語を使うという方向性はあるのか」「やりたければなんでもできる。VM上でライフサイクルの長いものを動かすと、JITやGCに悪い影響を与える可能性がある。色々試してから実施したい。」



19:20 Lightning Talk PRaggerでピザが頼めるようになるまで / 斎藤さん takesakoさんがまとめたらしい Ever Quest2 /pizza コマンド (1) WWW::Mechanize に利用 → 失敗 原因。ピザハットのサイトが、パースできないほどひどいHTML (2) ピザハットがその後、XHTML化された。 → 成功！ PRaggerはリリース間近 デモ。現在、ピザ宅配中w

外付けwebフレームワークflowr / 中谷さん JavaScriptで、機能をサイトに貼付ける モノポリーごっこ。ブログをマスに見立てて、記事を購入。TBとは違うBlog間連携。 続きはWebで・・・公開はまだ。DSLとか文字が見えたなー

オープンソースのウィジェットエンジン「Mashed Potato」（を作ります＞＜） / 大崎さん ウィジェットエンジン。GUIアプリ用のフレームワーク。 デモ。エラー発生・・・簡単なもので動作 JRuby のリリースが開発の動機 時間切れ

WebDB開発特化型言語Alinous-Core / 飯塚さん WebアプリのDB向けのDSL (オレ言語) 4ヶ月で開発 Eclipse プラグイン .htmlと.alnsファイルを用意する HTMLのテキストマクロに埋め込む Java実装も呼べる

__init__.php？ 変態的国産PHPフレームワークrhaco / 露木さん django-ja の人 スパム親分。 php のライブラリ 諸々機能の紹介 id:rhaco が作っている。hentai++ rhacoはカエルの学名らしい Python の機能を取り入れている。__init__.php や doctest、mix-in 次回django勉強会 8/25 サイボウズラボにて！ 時間切れ

VM魂に入れて貰えなかったJavaFXScript / 庄司さん 新しい。Java one で発表されたらしい javaFX 上で動くスクリプト言語 GUI作成用の言語 ECMA っぽいけど、全然違う。 queryによる配列操作

Power of Scala / 水島さん オブ言語、JVM上で動作 静的だけど、ダックタイピングっぽいのが可能 match構文 遅延評価 暗黙型変換をユーザ定義 正規表現 Scala is great Onion という言語を作ってるそうです

Lispのオブジェクトシステムの概要 / 鈴木さん WnnのLisp版、eggの全身 Lispは楽しいけど、楽しい時期は終わってしまう JavaとかUML ・・・ つまらないけど頑張ってます(笑) Flavor の仕様。アイスクリームから来たらしい。基底はバニラクラス Mix-inの語源もアイスクリーム Rubyいらないのでは？w 時間切れ

Coq 定理証明という選択肢 / 今井さん Coq は、定理証明ツール。 プログラム開発 → 正しいことの証明 → プログラムの抽出 Coqは、大切なとこだけで使う WEBアプリを作り、SQLインジェクションが起きないことを"証明する"*3 にわとり小屋でのプログラミング日記

D4R - DirectX for Ruby / 高野さん ゲーム制作をしたいので、作成 DirectX以外のライブラリ不要。直接DirectXを呼ぶので高速 Window, Resource, Graphics, Input, Sound 等のクラスがある 使い方の説明 デモ。今後ソース公開予定。マスコット募集

イメージファイト！ / 竹迫さん GIFの中にもPHPコードを埋め込める。HTMLかを見ていない。 IEは、画像ファイルでもタグっぽい文字があると実行してしまう 対策(イメージファイト)。画像のサニタイジング。 コメント削除、再エンコード サニタイGIF ・・・ 攻撃者の意図を無効にする文字列を挿入 Apacheモジュールがあるっぽいです。聞き取れなかった。

Javaより速いLL用テンプレートエンジン / 桑田さん Tenjin。Velocity よりも速い 他言語で利用できる、LL向けのテンプレートエンジン 言語に酔って、テンプレートの書式が違うっぽい プリプロセッサ機能 ・・・ 毎回固定の文字列を、処理前に埋めておく

C++のためのx86 JITアセンブラ xbyak / 光成さん LLは遅過ぎる。LLは地球温暖化の要因かも アセンブラは読みにくくて、静的 Xbyak はxbyak.h を読み込むだけで動き、動的 JITコンパイルできるアセンブラ

じゃ、どう書く？ / 西尾さん こう書く課。こう書く機動隊。 ja.doukaku.org (抹茶ムース色) コードを読んで、書くことが上達への道 お題を考えるのが大変

ピザ来た？？ Mobile3.0？