2003-05-31 (Sat) [長年日記]

最新Lisp/CLOS動向セミナー

木曜日に後藤さんとこで見かけたセミナーに行ってきました。

40人くらい入りそうなセミナールームに50人くらい来ていて、思ったより盛況。内容は、説明されていることが ANSI Common Lisp の仕様にあるのか、Allegro Common Lisp だけが出来ることなのか分かりにくいことが多々あったけど、現状の開発について考えさせられることが多くて面白かった。

各種デモやプレゼンを見て感じるのは Lisp は、すべてをとにかくダイナミックに解決するということ。Java は、計算機の実行できることに制限を加えてシンプルなモデルを提供しようとしているが、Lisp では本来計算機が持っている能力を最大限に引き出そうとしている。

J2EE の功績のひとつに開発を

  • インプリメンテーション
  • パッケージング
  • デプロイメント

のフェーズに明確に分けたことがあると思っていたのだが、Lisp のダイナミックな環境では、このフェーズ分けにまったく境界がなく、完全にシームレスに実行できる。

サーバでまさに実行中のコードをネット越しに Emacs や IDE から直接参照して編集、実行できてしまうからだ。端的な例ではバグがあり、実行すると例外を投げるようなコードをサーバで評価して、クライアントから Web ブラウザでアクセスし、そのコードを実行させる。当然サーバサイドでは、エラーになるが Web ブラウザにはレスポンスが返ってこないため、待ち状態となる。ここでサーバへ正しく修正したコードを評価すると、瞬間にレスポンスが返却されてブラウザに結果が表示される。

あと Common Lisp だと Ruby や Perl のように正規表現を heavy に使わなくても、規則性のある文字列を parse してオブジェクトとして扱うことができる reader という仕組みがあるそうな。

Allegro CL 固有だと思うけど

(disassemble 'foo)

で foo 関数のアセンブル結果が見れるのも面白いね。

CLP Pages というのが JSP のような HTML/XML のテンプレート言語というかマクロで HTML や XML を S 式で書ける。himi さんのアレっぽい。

(:html
  (:head
    (:title "hogehoge"))
  (:body
    (:h1 "hogehoe")
    (:p "fugagua)))

htmlgen というパッケージにも、HTML/XML を S 式で表現して簡単に生成できる関数がある。

気になってた Lisp と Java を相互にバインディングする jlinker というオプションパッケージ。サンプルコードを見る限りは、使えないなぁというところ。現状では Lisp から Java を呼び出すときに Java のためにしてあげる仕事が多すぎる。適切なデータタイプに変換してあげないといけないし。スピーカーの方にこの辺と COM サポート状況について聞いてみたりもした。

いまいち理解できてないのが Scheme と比較した時の Common Lisp の優位点として intern しない Symbol も存在できるということが紹介されていた。Common Lisp の柔軟なパッケージシステムに根ざしたものらしい。

配布資料には「普通のやつらの上を行け」も含まれていたりする。

あとみかんのような謎の物体ももらった。ふにふにふにふにしながらリラックスして柔軟な発想をしてくださいという癒し系アイテムオレンジのふにふに。会社に持っていったらみんなに好評であった。

上野で呑み

木曜日は、そのままソルジャーイシイくんと呑む。ちょうど一年ぶりだったか。途中から人が増えて Lisp, XML, SmalTalk 談義やら最近のケータイ開発事情とか、X68k の話しとかやたら面白かった。

ディスククラッシュ

土曜日。会社から CVS が動かないと連絡うけて、緊急発進。調べてみるとこないだ増設したばかりのHD がクラッシュしている模様。ケチって Seagate にしたからかなぁ。 IBM でした。特に前兆などないし、昨日特別なことをしたわけでもないのでビックリ。なんとか fsck で復旧できるレベルみたいで助かった。重要データをバックアップしてディスク交換は来週にしよう。

本日のツッコミ(全4件) [ツッコミを入れる]
# (2003-06-02 (Mon) 18:03)

くぅ。エントリはしたんだけども、当日になって突然待機になってしまってT_T<br>結局なんにも仕事が無いばかりか、深夜になってから仕事が来る始末。

# himi (2003-06-03 (Tue) 00:26)

disassembleはLispには昔からあるよ。Common LispにもEmacsにもあるし。byte codeの詳細はもちろん実装依存だけど、上から下までListで表現されるのがLispの強みだからね。

# ko (2003-06-03 (Tue) 00:36)

おお!かわいそうに。>あ<br>場所も新宿だし、いるんじゃないかと会場でキョロキョロしてたよ。

# (2003-06-03 (Tue) 14:50)

フランツから配布資料が送られてきました^^v