Lightweight Language Ring

August 27th, 2006

LL Ring 行ってきた。

otsune さんがネットバトルを「プロレス」といったりしてるけど、まさかベタにプロレス会場でプログラミング言語のはなしを聞く日が来るとは思わなかった。楽しい。寒いのとトイレがすくないのはちょっと困ったけど。

関数型言語はちゃんとやろう、というか「ふつうの Haskell」読むの再開しないと、というのと Python の堅実路線に好感をもった。あと、抽選で PHP の本を当てて、バイト先の人つながりで月宮さんのサインまでもらってしまったので、これはもう PHP 勉強するしかないような。

Language Update

Haskell

  • いままでは研究者と変人しか使ってなかったんだけど、最近ふつうの人にも流行りつつある。
  • Google Trends でみると、LLDN と YAPC::Asia のあたりに山がある。でも Java とかと比べちゃだめだよ。
  • Haskell Prime: Haskell の新しい標準規格
  • GHC はいろいろ先進的な機能を取り入れている。

Scheme

  • ハワイから Skype で生中継
  • 仕様書は30年で9ページ増。非常にコンパクトな仕様。
  • R6R5: モジュールシステム。処理系間で微妙な非互換性を生んでる部分をつめる。
  • プレゼンが全部括弧でくくられていて、それを指して最後に「括弧なんてそのうち気にならなくなったでしょ?」というのは、うまいと思った。

awk

  • 日本 GNU AWK ユーザー会の Web サーバーは、いま発表に使っている(いまひとつ調子の悪い)ノートなので、いまはつながりません。
  • xgawk: XML や PostgreSQL に対応した awk。このまえの OSCon でも結構好評だった。

OCaml

  • 馬のかぶりもの(意図としてはラクダだとか)をつけたまま発表。出落ちだと思ったけど、間が空いたときに、息の荒いのを伝えるだけで会場がちょっとうけてたので、実は実用的かもしれない。
  • Haskell つかいづらくね? Haskell 挫折したひとにも OCaml はおすすめ。強力、簡単、実用的なマルチパラダイム言語です。

Common Lisp

  • 50年変化無いから Language Update なんて無し。みんなの認識を update します。
  • 頭のいい人が Lisp で実装したアイデアが、その後に、ふつうの人が使う他の言語におりてきている。
  • プログラミングの母なる海。プログラミング可能なプログラミング言語。

Java

  • 時間決め打ちのインタラクティブじゃないアニメーション + ウクレレすごい。
  • JSR223 でスクリプトとのインターフェースが決定。Java SE 6 からはいります。
  • Java SE7 ではスクリプト言語向けに VM にも手が入る。

PHP

  • 5.2: メモリ消費量や、時間効率が改善。
  • 6: ICU ベースの Unicode ネイティブサポート。レガシーな機能の削除。コードのキャッシュ。そして goto。
  • いま goto をいれるあたり、やっぱり PHP は言語ヲタ受けしない感が。

Perl

  • ウェブサイトに素材集から女性の写真をはりつけても、いるのは小飼さんだよ! 弾さんって必要? (by サンデージャポン)
  • 必要! require dankogai というか use Dan::Kogai だよ! コードとか添削してくれるの超親切!
  • Perl 6: 過去互換性を切ってまで混沌を整理。はじめてのひとにやさしく。
  • CPAN モジュールの Moose が気になった。

JavaScript

  • (ごめんトイレいってた)
  • prototype.js, script.aculo.us はデファクトスタンダードだけど開発停滞気味。Dojo, MochiKit, jQuery は活発。
  • 天野さんは jQuery おすすめらしい。Adobe Spry でも使ってるとか。
  • AJAJA もいいよと。

Python

  • Google と Microsoft の共通点は「PyCon のスポンサーである」
  • Guido と Plone の Alexander Limi は Google、IronPython の Jim Hugunin は Microsoft にはいった。
  • PSF (Python Software Foundation) が開発をサポート。リリース間隔も一定。
  • 文法が拡張されるときも、"from __future__ import なんとか" でオンになる期間があって、そのあと取り込み。

Ruby

  • 1.8.5: 今日にまにあわせてリリース。
  • 松江市のローソンの二階に「松江オープンソースラボ」ができました。
  • 1.9: fork と考えてください。互換性もちょっと切る。YARV と Unicode ベースでない CSI な多国語対応がはいる予定。

ActionScript

  • Adobe 直々に発表者。ActionScript 3 のはなし。
  • ECMA 262 ベース。型や JIT コンパイラが入って速くなった。
  • Display List API というのを叩けば、Flash もコードだけで作れます。
  • DOM3, E4X, 正規表現も入りました。E4X はすごいな。

FORTH

  • Lisp が高レベルのプログラミング可能プログラミング言語だとしたら、FORTH はその低レベル版。
  • "Thinking Forth" という本が CC ライセンスで公開されている。
  • May the FORTH be with you!

Squeak

  • Squeak ももう10才。「Smalltalk は死んだ言語」と Alan Kay がいったりしてるけど、コミュニティ的にはあまり気にならず。
  • Seaside: 継続ベースの Web サーバ。すごい。
  • Croquet: 3D で P2P で空間を共有。すごい。
  • Squeakware, OLPC で Squeak, Squeak NOS とか。
  • 毎回デモがすごいんだけど、年一回びっくりするだけで、いまひとつ手が伸びない……。Squeak の中に住まなきゃだめなのがネックというか。Web 系だったら Squeak の外に出せるかな。

関数型言語

  • 高階関数やるなら型無しは無しだろ。
  • 型をきめるのは全体設計。推論があるから C, Java みたいになんでも明示的に書く訳ではない。設計を固めないまま試行錯誤するには型無しもいいかも。
  • 宣言的な記述は抽象度が高くなるので、プログラミング言語の進化としては正しい。アセンブラでだらだら書いてたのが FORTRAN で 1+2 とかかけるようになった訳だけど、あれだって宣言的じゃね?
  • Felica は、まず VDM で10万行書いたとか。失敗が許されない現場だと形式仕様記述とかするらしい。
  • 遅延評価は使いたいときだけあればいいような。というか素数なんて誰かが素数サーバーをたてればいいんだよ。無限を外部に求めよう。
  • 青木さんのアシストがいい感じ。たまにしゃべるのも会場にうけてたので、目線が客席寄りなんだろう。
  • 関数型言語最高じゃね、という流れのなか GUI とかどうよ? という質問がでるとみんな言葉をにごしていた。普段何書いてるんだろう。
  • 多少はアジテーションだと思うけど、山下さんが悟りの境地に達してるっぽくて印象的だった。計算機にできる仕事は計算機に、というのは正しいと思う。

じゃんけん

  • ActionScript はマイクから音声をひろう。awk は「走れメロス」の文章をもとに手を決定。JavaScript は Rhino で「勝ちにいきます」。Python はきれいなスタイルを強制するのに、わざわざワンライナーで。Ruby は Ruby/DL2 でメモ帳を表示画面に。
  • JavaScript が本当に強かった。運営側がいれた既知のアルゴリズムを出すエージェント達を見分けて、最適な戦略を選択していたんだろうと思う。
  • 全面的に準備不足感があったんだけど「LL って Agile に向くのがわかったね」というまとめはうまかった。でも準備重要。

きみならどう書く

  • Django: リッチなモデルを定義するだけでスキーマ作ったり管理画面が出来たりするのが良さげ。新聞社のサイトからスピンアウトしたものでスケーラブルらしい。
  • Kahua: 当然のように S 式。
  • Ethna: また Agile が。アプリはメール対応、Ajax, XML-RPC とかいまっぽい感じなのに、プレゼンは去年の Kahua っぽいゆるさ。「おこづかい帳ですがなにか?」
  • Rails: とにかくプレゼンがうまい。去年のささださんもそうだけど Ruby のひとは椅子があっても立って話そうとするのがすごい。複式簿記対応のスキーマ定義は前日までだけど、コーディングは朝からペアプロで、30分前くらいには完成していたらしい。

LL Gong

  • Objective-C 対応の c-wrapper はあとでさわる。あと binfmt 面白かった。
  • レフェリーは「×」を上げづらそうなので、いっそトータライザーとか匿名性があるもののほうが。

関連リンク