Lightweight Language Spirit 2007報告

2007年8月4日に、Lightweight Language Spirit 2007が開催されました。これは、その報告です。なお、以下では敬称は省略させていただきます。

概要

イベント名 Lightweight Language Spirit 2007
日付 2007年8月4日
場所 日本教育会館3階 一ツ橋ホール
主催 Lightweight Language Spirit実行委員会

タイムテーブル

以下は当初の予定ではなく、実際のタイムテーブルです。Language Updateの終了時刻が、予定より10分遅れました。

開始時刻 終了時刻 プログラム名
10時30分 11時30分 基調講演
11時30分 12時50分 Language Update
13時30分 15時00分 オレ様言語の作りかた(パネル)
15時30分 17時00分 VM魂(パネル)
17時30分 19時00分 キミならどう書く 〜プレゼンソフトを作る〜
19時20分 20時20分 Lightning Talk
20時20分 20時30分 抽選会、エンディング

書籍の販売と展示

会場外の通路には各出版社が書籍を販売しており、プログラムの合間の休憩時間に購入することができました。10%割り引きを行っていたり、特典をつけている出版社がありました。また、近日出版予定の本も含めて、様々な本が展示されていました。

基調講演「ハッカー気質について」和田英一(東京大学株式会社インターネットイニシアティブ技術研究所)

  • Lispがあれば充分
  • ハッカーとは何か
    • Steven Levy, "Hackers: Heroes of the Computer Revolution", Penguin USA
      • MITの模型クラブ
      • 1973年のMIT
        • エレベータに乗ったらボタンをいじって9階まで止まらないようにしていた
        • 帰る前にコンピュータでエレベータを呼んだ
    • Gerald Jay Sussman, Julie Sussman, Harold Abelson, 「計算機プログラムの構造と解釈」、ピアソンエデュケーション
    • コンサイス・オックスフォード英英辞典
      • レンガを乾かす板など、不明
    • Hacker's Dictionary
      • hack
        • 下手でも必要なものをすばやくつくれる
        • 上手に必要なものをすばやくつくれる
        • 遊び心 (playful)
      • hacker
        • 自分でハッカーだというのはよくない
    • Hackに値する仕事
      • Hackは個人の表現(「計算機プログラムの構造と解釈」)
      • 四苦八苦
  • ハードウェア
    • レオナルド・ダ・ヴィンチの楕円を描くコンパス
      • 鉛筆が伸縮する
      • 円錐を斜めに切断すると楕円になる原理を応用したもの
    • 放物線を描くコンパス
    • 潮汐の解析
    • 9元連立方程式を解く機械
    • 微分解析機
      • 大阪大学に昔あった
      • 現在は東京理科大学にある
      • ディファレンシャルギア
      • Niemanのトルク増幅器
        • 一種のサーボ機能
          • 犬は押して動く
          • 牛は押しても動かない
          • 牛の鼻輪を引っ張ると動く
          • 船のいかりを持ち上げる
            • 水兵が少し引っ張ると引き上げられる
  • ソフトウェアハック
    • 1959年
      • PC-1(パラメトロンコンピュータNo1)
        • flip flopを利用
        • flip flopにスピーカーを接続する
        • flip flopをsetすると、スピーカーのコーンを押す
        • flip flopをresetすると、スピーカーのコーンを引く
        • set, resetの時間を調整してドレミファソラシドを鳴らす
    • hackerの例
      • Bernie Greenberg
      • David Moon
        • MacLisp
      • Willem van der Poel
      • Donald Knuth
        • Cryptanalysis Problem
        • Gotoだらけのプログラム
      • その他大勢
質疑応答
  • レオナルド・ダ・ヴィンチは、2つの点からの距離の和が等しいという、数学的に正しい楕円の引き方を知っていたか?
  • ハッカーは使いにくいものを使うもの?
    • 慣れ。やみつきになる。
    • 1931年
  • お薦めのソースコードは?
    • 人によっていろいろ
    • LionsのUnix
    • 研究室の合宿でUTLISPを読む
    • 知らない言語を読むのは辛い
    • TeXで書いたBASIC

Language Update

Perl "An Ordinary Perl 65.10 Guide" 小飼弾
  • Perl 6 Makes You Extraordinary
  • 今年の10月
  • 2002年 5.8.0
  • 2006年 5.8.8
  • 今年
    • 5.8.9
    • 5.10
      • 10月
    • 6.0
      • 仕様が今年決まる
  • 5.10の新機能
    • featureプラグマ
use feature qw/:5.10/
      • レキシカルスコープ
      • say
        • putsより1バイト短い
    • err
$c = defined($a) ? $a : $b;
      • 下のようになる
$c = $a // $b;
Io 浜地慎一郎
  • Steve Dekorte
  • シンプル
  • 手続き型言語
  • プロトタイプベース (JavaScript, Self)
  • キーワードの数; 0
  • なんでもメッセージ
  • 不必要な引数は評価されない
  • 例外
  • ガラッと変わる言語仕様
  • 膨大なアドオン
  • 多重継承
  • Concurrency
Clean lethevert
  • Haskellとよく似ている
  • オランダ、Rinus Plasmeijer
  • モナドを使用しない
  • 一意型
    • 2回以上アクセスできない
  • Language shootout (http://shootout.alioth.debian.org/) でトップクラス
  • 実行効率がよい
  • Clean 2.2が最新
  • コンパイル方式
  • Famkaという実験的シェル
  • ゲームが3000行程度で書ける
  • iTaskというClean
  • 開発効率
    • 自動カリー化
    • 遅延評価
  • プリプロセッサ
    • CleanX
  • 今なら何をやっても世界初
PHP Seiji Masugata (Japan PHP User Group)
R 樋口千洋(大阪府立大学生命環境科学研究科)
(a <- 1)
Python 柴田淳Webcore株式会社、日本Pythonユーザ会)
企業で使用される頻度
^
_____ __ Python
__/ __/
__/ __/ ` Perl
__/
__/ _______
/ / ` Ruby
____/
                                                • > 年
    • PerlPythonが抜いた
    • CG業界でよく使用されている
      • Sony Pictures
      • Image Works
      • ILM
      • DREAM WORKS
    • CGのライティングをPyGtのGUIで設定する
  • オールレンジ言語
  • Google
  • 実務に使える
  • ロードマップ
    • Python 3.0
      • 2007年アルファ版
      • よりクリーン
      • 後方互換性はなくなる
      • 移行
      |     |2.5       |   2.6    |    2.7   |
   2.x|---->+----------+----------+->------->|
ユーザ|-----+-         |          |          |
      |     | `--------+          |          |
      |     |          |`------   |          |
      |     |          |   3.0 `->|    3.1   |
   3.x|-----+----------+----------+->--------+->
      |     2007       2008       2009       2010
        • 2.6には3.0の機能の一部が含まれる
  • 安心して使える
  • 世界でメジャー
  • 書籍
  • コミュニティ
    • 開発合宿(2007年3月)
    • 勉強会
    • 大規模イベント
Lua 上野豊(独立行政法人産業技術総合研究所
Ruby まつもとゆきひろ(株式会社ネットワーク応用通信研究所、楽天株式会社)
  • 2007年
    • エンタープライズRuby
    • クリスマスプレゼント
  • エンタープライズRuby
    • Rubyアソシエーション
    • Rubyビジネスコモンズ
    • 楽天フェロー
  • クリスマスプレゼント
    • Ruby 2.0
      • YARV
        • 2〜500倍高速
      • M17N
        • 内部で変換しない
      • テスト
      • Native Thread
      • Multi VM
      • 継続とFiber
      • 遅延評価
      • パッケージ
      • ネームスペース
      • キーワード引数
      • 自動エラー修正
      • 以上は嘘
    • Ruby 1.9
      • M17N
      • テスト

オレ様言語の作りかた(パネル)

パネラー

舞台に向かって左から、

言語 名前
(司会) 高橋征義(日本Rubyの会)
Ruby まつもとゆきひろ(株式会社ネットワーク応用通信研究所、楽天株式会社)
Xtal 石橋立宣
なでしこ クジラ飛行机(ウノウ株式会社)
Sukuna 小原広之
crowbar, Diksam 前橋和弥
議論
  • 各言語について
    • なでしこ
      • 宅地建物取扱責任者
      • サクラ
        • 情報の教科書に掲載される
      • 2001年、ひまわり
      • 2004年、なでしこ
      • 雑多な仕事
        • Perl, Excelなどをつなげて使っていた
        • ひとつにまとめたい
        • GUI
        • 好きな女の子に「日本語プログラムをつくろうと思っている」と打ち明けると、賛美された
      • 組み込みコマンド
        • 1000以上
      • 文法
30に5を足す
      • 引数をスタックに積む
      • インデントでブロックを表す
      • 関西弁サポート
      • GUI作成が簡単
      • プログラムの雛型
      • 可読性が高い
      • 敷居が下がる
        • スーパー小学生
        • スーパー定年退職
        • 図書館の蔵書管理
          • 英語だと作る気がしなかったが、日本語だから作る気になった
        • 歯医者さん
      • 小さなプログラムなら一番楽
    • Xtal(クリスタル)
      • ゲーム製作用途のため製作
      • 見た目
      • GCで停止することがない
      • C++との連携
      • Ruby, Python, Lua, NewtonScript, 他
      • クロージャ、高階関数
      • 例外
      • 多値
      • デフォルト引数
      • Ruby風ブロック
      • 100.timesでイテレータを返す
      • ファイバー、コルーチン、ジェネレータ
      • バイトコードによる仮想マシン駆動
      • ネイティブスレッド
      • オブジェクト指向プログラミング
      • 多重継承
      • Luabind, Boost.Pythonのような機構が標準で含まれている
      • ベンチマーク
        • 会場のPCではLuaより速かった
        • 自分のPCでは遅かった
      • 今年中に1.0
        • Luaの機能は一通り入れたい
        • C++のtemplateで大きくなっているのでスリム化したい
    • Sukuna
      • Forth系
      • Forthとは?
        • Charles H. Moor(1970年)
        • スタック系言語の祖
        • 電波望遠鏡の制御
      • 後置記法
      • Joy(2001年)
        • Manfred von Thun
        • Concatenative言語
        • 式の連結 = 関数の合成
      • オレ様言語への道1
        • Mops
          • MacOS X移行時に不安定
          • ライブラリを書く
          • バグ
        • 自分でつくった
        • GikoForth(2001年)
          • GCなし
          • 型なし
          • ポータビリティなし
          • 遅い
      • オレ様言語への道2
        • とくかくつくりたくなった
        • BrainF*ckを参考に
        • 2003年
        • ほぼForth
        • ブロッククロージャ
        • MixIn
        • 静的型チェック
        • GC(保守的)
        • ダメなところ
          • Open Classじゃない
          • ライブラリ貧弱
      • コツコツつくる
        • 小さな達成感
        • やくにたたなくていいじゃない にんげんだもの
    • crowbar, Diksam
      • 4冊目を書いたあと、プログラミング言語をつくる本を提案したら編集に渋られる
      • crowbar
        • 実用性はない
        • 解析木
        • 正規表現
        • データ型
          • 配列
          • オブジェクト
          • ファイルポインタ
        • exactなMark & Sweep GC
        • Perlのようなもの
        • grepのサンプルソース
        • クロージャ
          • レキシカルスコープ
          • 関数の外の変数を参照
        • オブジェクト
        • オブジェクト指向っぽいもの
        • 開発休止中
      • Diksam
        • 実用性なし
        • 変数に型あり
        • 変数宣言あり
        • バイトコード
          • ベリファイアをつくるのは難しい
        • ライブラリはprintのみ
        • DVM(仮想マシン
          • スタックマシン
  • FizzBuzz
  • まつもとからのコメント
    • なでしこ
      • 以前外国で、日本人なのになぜ日本語のプログラムをつくらないのかと訊かれたことがあり、なでしこのURLを教えた
        • しかし、彼には読めないと思う
    • Xtal
      • イテレータ、ファイバーが組み込み
        • Rubyにはないのでうらやましい
      • C++で書いてある
      • ブログで丁寧に対応してもらった
    • Sukuna
      • 無限サイクルがあって素敵
    • crowbar
      • 完成度が高い
      • 学習に特化している
    • Diksam
      • 言語としては面白くない
      • 実装がわかりやすい
  • 言語を作る際のポリシーと名前の由来
    • なでしこ
      • ポリシー
        • 事務を自動化
        • 手軽に使えること
      • 名前の由来
        • 花の名前
    • Xtal
      • ポリシー
        • 最新機能
      • 名前の由来
        • Rubyを真似て、宝石の名前から
        • Xにして短くした
        • eXTreme Ajail Language
    • Sukuna
      • ポリシー
        • Forth好き
      • 名前の由来
        • 出雲系神話で掌にのる神さま
    • crowbar
      • 名前の由来
        • Perlのようなもの
    • Diksam
      • ポリシー
        • なるべくCに似せる
      • 名前の由来
        • Javaがコーヒーの名前だったから、紅茶の名前
      • 動機
  • 満足しているところ、不満なところ
    • なでしこ
      • 満足しているところ
        • 日本語であること
        • 変わっている
        • 注目される
      • 不満なところ
        • 日本語であること
    • Xtal
      • 満足しているところ
        • 速く動く
      • 不満なところ
        • ない
          • 会場から拍手
    • Sukuna
      • 満足しているところ
        • 今日呼ばれたこと
      • 不満なところ
        • ライブラリを3回くらいつくり直した
    • crowbar, Diksam
      • 満足しているところ
        • 勉強になる
      • 不満なところ
        • 時間がかかる
        • つくっていると使っている時間がない
  • まつもとの日記
  • まつもとの昔の言語
    • 1989年
    • Classic
      • ClassっぽいC
main() {
    for (i: int = 1; i <= 100; i++) {
        if (i % 15 == 0) {
            print("FizzBuzz\n");
        } else {
        :
for (i: int in array (1, 2, 3)) {
}
a: array = array new(1, 2, 3);
    • メソッド呼び出しの"."をスペースにできる
      • "array new"は、"array.new"と同じ
class foo: superFoo, superBar {
    bar(i: int): string {
    }
}
    • Profile機能
      • 使いものにならない
    • ポリシー
      • Adaに対してEiffelがやったことを、Cに対してやった
    • トランスレータをつくる過程でyaccの使い方が分かった
質疑応答
  • なでしこ
    • 日本語はインデントを使用しないが?
      • 記号よりまし
    • 「そうならば」をトークンに分解するとどうなるのか?
      • 「そう」と「ならば」
      • 「そう」はPerlでいうと$_
    • 「表示ログを言う」とはなにか?
      • ダイアログ上に表示する
    • 形態素解析をして、意味論をとれるようにしたらどうか?
      • いつまでたっても完成しない
      • どこに落ち着くかがテーマ
    • 大阪の人で、「標準語で文章を書くのがどれほどしんどいかわかるか」という人がいる。大阪弁以外にもサポートできるか?
      • 大阪弁のサポートは3分でできた
今後の予定、言語をつくろうと思っている人へのメッセージやアドバイスなど
  • クジラ飛行机(なでしこ)
    • 日本語プログラムをつくってください
  • 石橋 (Xtal)
    • 馬鹿でもつくれる
  • 小原 (Sukuna)
    • 絵を描くのが好きだとレベルアップする
    • 言語も同じ
  • 前橋 (crowbar, Diksam)
    • 現在のDiksamは4代目
    • 最初は小さい方がいい
  • まつもと (Ruby)
    • 想定するユーザに適したもの
      • Rubyのポリシー
    • langsmithのメーリングリストもよろしく

VM魂(パネル)

パネラー

舞台に向かって左から、

実装 名前
(司会) 星暁雄(コモンズ・メディア株式会社)
Jython 西尾泰和(サイボウズ・ラボ株式会社)
Rhino, Groovy 鈴木雄介(アークランプ)
JRuby 高井直人 (recompile.net)
IronPython, IronRuby 荒井省三(マイクロソフト株式会社)
Pnuts 戸松豊和
議論
  • JavaVMと.NETのVMを対象とする
1960年から1980年 事務処理、COBOL
1991年 VisualBasic
1993年 クライアントサーバ
1994年 Netscape Navigator
1995年 Java
出来事
1995 Java 1.0
1997 JPython
  AspectJ
2001 Jython 2.1
2003 Jython 2.2α
2005 IronRuby. ライバル登場
2007 Jython RC3
    • 結論
    • ウィンドウを開くデモ
    • 音を出すデモ
    • フィボナッチ数を楽譜にするデモ
  • Rhino
    • 名前の由来
      • O'Raillyのサイ本から
    • JavaのウェブブラウザJavagator
      • 中止
      • Rhinoを中止するのを忘れた
    • 1.6R6
    • 年1〜2回メンテナンス
    • JavaScript 1.5
    • DOM, alertなど、ウェブブラウザによる機能はない
    • JavaのStringとJavaScriptのStringは違う
      • lengthメソッドとlength属性
    • 自分でScriptableをつくる
    • 問題点
      • サーバもクライアントもJavaScriptで、どちらを書いているのかわからなくなる
      • Javaと連携しにくい
  • Groovy
    • JSR241で標準化
    • JSE7に含まれる?
    • JRubyに抜かれる
    • 基本はJava
      • 関数だけをロードすることはできない
      • 単位はクラス
    • Javaには親しみやすい?
  • JRuby
    • Javaで書かれたRuby
    • Ruby 1.8.5相当
    • メイン開発者
      • eberbo
      • neadius
      • ola
      • nicksieger
    • RubyKaigi 2007
      • 1.0リリース
    • 今日の話はtrunkに基づいている
require "java"
    • 3つのVMを備える
AST -+-> バイトコード (ASM)
     |
     +-> YARV中間コード
     |
     +-> Rubinius
Java -+
      |
      +-> Javaバイトコード -> JVM
      |
Ruby -+
 +------------------------------+
 |ManagedVB, MnagedJScript      |
 |IronPython, IronRuby          |
 +------------------------------+
 |DLR (Dynamic Language Runtime)|
 +------------------------------+
 |Frameworks                    |
 +------------------------------+
 |CLR                           |
 +------------------------------+
  • Pnuts
    • 9年間開発している
      • 最近は子供3人が寝てから
    • シンプル
    • 小さい
    • 速い
    • JVMとの親和性
    • 新機能
      • クラス定義
    • ライバルはLua
    • VMの恩恵
      • GC
      • JIT
      • Fast Locking
      • 移植性
    • VMと言語のミスマッチ
      • どう埋めるのか
      • どこまで埋めるのか
    • 大抵の問題はなんでも書ける
      • 短い行数がいい?
      • 速さがいい?
      • ソフトウェアスタック自体で価値が決まる
    • LLも生き物
      • 少数民族の誇り
        • コミュニティが小さい
      • 後世になにか残したい
      • いいアイデアを取り込み、世に問いたい
  • なぜVM上でLLなのか?
    • 鈴木
      • Javaと一緒に使いたかったから
    • 戸松
      • Javaのテストツールとして始めた。それからLLとなった
    • 高井
  • Pythonに引き込む狙いは?
    • 西尾
      • Javaは軽くは使えない
  • .NET上の動的言語とは?
    • 荒井
      • 2003年にIronPythonをみた
      • コンパイルしない価値
      • 試したいときに試せる
      • 必要なら残す、不要なら捨てる
      • .NETライブラリを自由に使える
      • 必要最小限でビルドする
  • Native LLのようにちゃんと動作するのか?
    • 高井
      • オーバーヘッドは発生する
      • 実用化は近い
      • 2年後くらい?
  • IronPythonはファーストクラスの言語になるのか?
    • 荒井
      • 公式アナウンスはない
      • 個人的には、なると思う
      • 次のVisual Studioに入るのではないか
  • Groovyはどうなる?
    • 鈴木
      • 専門家には専門の言語が必要
      • ようは使いどころ
  • 大きなシステムと共存できるのか?
    • 鈴木
      • した方がよい
      • 小さな部分はLLで速く、大きな部分はJava
  • 大きなシステムをつくるのとハッキングは違うもの?
    • 西尾
      • 分業
      • Javaは大きな象
      • LLが先に立って、進むべき道を探る
      • LLは斥候
  • 1980年代にSmalltalkがそういわれていた
    • 高井
      • Rubyでつくったプロトタイピングをインドの人がJavaに書き直すのは悲しい
      • プロトタイピングだったら、Rubyのまま動かしたらいい
  • インド人や中国人もRubyを使うのか?
    • 高井
      • そうなればいい
      • 日本はソフト開発のメインではない
      • Rubyは空手
        • 「日本人だからRubyが得意です」
      • アメリカから日本にオフショアされる
  • Pnutsをビジネスで使う?
    • 戸松
      • サーバーサイドで使う
  • 速いというのは?
    • 戸松
      • 速さには理由がある
      • JVMの特性を利用している
  • JRubyより速い?
    • 戸松
      • もちろん
  • IronPythonはCPythonより速い?
  • IronPythonは当初、.NETでは遅いという仮定を証明したかったという話は?
    • 荒井
      • APIに専用のものを用意している
      • 実験して最適なものをとる
  • JVMは動的言語にあわせて進化するか?
    • 戸松
      • JVM特有の制約がある
        • 整数のボクシング、アンボクシング
        • 大抵のLLでは、整数は常に整数
      • 様々なところで使用されているため、JVMは簡単には仕様を変更できない
        • 携帯電話
        • プリンタ
        • デスクトップ
      • 命令の追加はないと信じている
  • 命令を追加すれば、速くなるものではない?
    • 戸松
      • 型を持っているので、どのメソッドを呼び出すかはコンパイル時にわかる
      • LLは動的で実行時にならないとわからない
      • 命令の追加には反対
      • 実装でカバーできる
        • リフレクションとキャッシュでメソッド呼び出しを速くできる
  • JVMが動的言語に対応しない?
    • 戸松
      • そう信じている
  • JRubyJava 1.4.2の仕様でやっている
  • MicrosoftがIronRubyをやると、SunはMicrosoftに勝とうと思うか?
    • 荒井
      • 開発者は野心的
      • Railsが動くようにしたい
      • John Lamは(CRuby, IronRubyの)実装によらず動くようにしたい
      • IronRubyの完成度はまだまだ
  • Jythonが活発であるが、リソースの取り合いはないか?
  • JavaのLLはJRuby? 開発者のマインドは?
    • 高井
      • JDK6にRhinoをいれた
      • なぜ?
    • 鈴木
      • RhinoとGroovyは真面目さが違う
      • Rhinoでの開発が行われることはない?
  • NetBeansJRubyは入る?
    • 高井
      • Rubyというと予算がつく
  • Java 7でJRubyがつく?
    • 高井
      • わからない
      • そうだとしたら、まつもとゆきひろにいろいろ要望がいくはず
      • Rubyは仕様と実装があいまい
      • JavaJRubyをつけるとしたら、仕様を明確にするはず
質疑応答
  • ASMはコードの質には影響しないが?
    • 高井
      • そう思う
      • 計測すると違う
      • 最適化の余地がある
  • IronRubyは仕様がない。ソースを見ないと実装できない。しかし、Microsoftではオープンソースのソースを読むと解雇されるという話があるが?
    • 荒井
      • 解雇されるという話が本当かどうかは知らない
      • まつもとゆきひろとJohn Lamとの間では、ソースを見てよいという取り決めがある
      • チームのメンバも変わる
      • John Lamがソースを読んで、言語仕様を決めている
        • Rubyの言語仕様が、Microsoft内には実在する
        • 公開できるかは不明
  • Microsoftはオープンソースライセンスをつくろうとしているのか?
    • 荒井
      • Windows Installer XMLオープンソース
        • そういう開発者はいい
      • 商用製品に著作権問題がまじるのは問題なので、そういう取り決めがあってもおかしくない
  • Rhinoのように、DLRでサーバーもクライアントも開発できるか?
    • 荒井
      • (答えに詰まる)
      • やりたかったらなんでもできる
      • JITコンパイルされたコードでメソッドが入れ替わるようなコードが動かせるか?
        • GCできるか?
      • 長時間動かすような場合は確認が必要
      • リクエストとレスポンスで終わるウェブアプリケーションのような短時間の場合は問題の可能性は低いが、よく確かめて欲しい

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

パネラー

舞台に向かって左から、

言語 名前
(司会) えんどうやすゆき
Java 西本圭佑(有限会社アイトレック)
OCaml 小笠原啓(有限会社ITプランニング)
JavaScript 天野仁史 (Shibuya.js)
XUL 下田洋志(株式会社クリアコード)
Gauche 小黒直樹(ウルシステムズ株式会社)
議論
  • 要件
    • 一般の人が使えるプレゼンソフトをつくる
    • どうやったら使えるか?
    • やりたかったことはなにか?
  • OCaml
    • OCamlの特徴
    • どう書くか?
      • Lablgtk
        • 本格的
      • 標準のGraphicsライブラリ
        • ちょっと力不足
      • Cairo
        • ちょうどいい
    • アニメーションしたい
      • マルチスレッド
        • チャンネルスタイル
          • チャンネル経由でしかやりとりできない
          • ロックフリー
    • Concarrent Programming
      • スレッドがチャンネルを通じてやりとりする
      • 共有メモリによるロックを心配しなくていい
    • 質疑応答
      • やりたかったことは?
        • マルチスレッドによるアニメーション
        • マルチスレッド時のGC
      • (プレゼンテーションのソースがXMLなのを見て)一般の人でも使えるものということだったが...
        • XMLはわかりやすくしている
      • ネイティブスレッドか?
        • ネイティブスレッドだが、GCの関係で複数CPUでは並列に走らない
      • チャンネルでやりとりしたデータを加工すると変化が見えてしまうのでは?
        • OCamlのスタイルでは、破壊的なことはしない
  • JavaScript
    • Dynamicなものにしたい
    • 背景
    • JavaScript
    • プレゼンツールの紹介
      • 軽い
      • きれいなHTML
      • 拡張性が高い
      • インデックス(画面の一覧)をつくる
      • エフェクト
      • アクション
      • クロスブラウザ
      • 任意の要素に適用可能
        • ブログパーツ
    • ツールのソース
      • クラス図による説明
    • 質疑応答
      • どこで使えるのか?
        • ブログで公開する
      • ページ単位でURIにしたい
        • できていない
        • そのうちつける
      • プレゼンのソースコードを見せてほしい
        • HTML
        • JSONでアクションを設定する
      • これを使ったら異性にもてるようになるか?
        • 使う前にもてる方法を考えた方がいい
  • XUL
    • XULとは
    • 高橋メソッド in XUL Returns
    • 質疑応答
      • テキストシャドウはつけられるか?
        • できる
      • ツールのソースを見せてほしい
        • スクリプト
        • プレゼンのデータはただのテキスト
      • 隣にいるJavaScriptとの協業は?
        • やるかも
      • これ以外につくったものは?
        • ない
        • 今朝までつくらなければならないのを知らなかった
      • 公開している場所は?
  • Java
    • 3D CMS
      • 3Dコンテンツを扱えるCMS
      • クライアントはAppletかFlashで3D表示
      • 編集も可能
      • HTTP Cometによる遠隔プレゼンも可能
    • デモ
      • 3Dのキャラクターが動く
    • 質疑応答
      • 今回の中ではHeavy Weightであるが?
        • 確かに、LLではない
        • 未踏でECMAScriptに対応させたい
        • Javaのクラスを書かなくてもアニメーションさせる
      • プレゼンのデータは?
        • Wiki形式をHTMLに変換する
      • トランジションやエフェクトは?
        • ない
  • Gauche
    • 使えないプレゼンソフトはどんなか?
      • インストールが面倒
        • Gaucheのインストールは面倒
        • ウェブアプリケーションにする
    • かつてのOHPをめざす
      • 内部
  スライド操作       サーバ       スライド表示
 +------------+ VNC +------+ VNC +------------+
 |PC          +-----+      +-----+PC          |
 +------------+     +------+     +------------+
    • スライドを操作側から入れ換え、表示側に反映させるデモ
    • Schemeのコードを実行可能
    • 質疑応答
      • なぜGaucheなのか?
      • 操作側から表示側に反映させるのにタイムラグが発生するのはなぜか?
        • 処理が重いから
        • 全画面書き換えをすると時間がかかる
        • 全部黒かったりすると速い
      • 画面への書き込みは保存されるか
        • される
        • PNGで保存される
      • なぜVNCなのか?
        • 以前、VNCを使ったグラフィックライブラリをつくった
        • VNCを使いたかったから
      • 普通の文字はどう書くのか?
        • グラフィックとして描く
      • どこから使えるのか?
        • ダウンロードできるようにする
    • 発表中、「LL魂チャット (at Lingr)」(http://www.lingr.com/room/ll-spirit) の発言がプレゼンテーション中に表示されていた
質疑応答
  • トランジションやエフェクトを使い易くするためのアイデアは?
    • Java
    • OCaml
      • 動きそのものを定義するのは難しい
    • JavaScript
      • 挙動をクラスにしている
    • XUL
      • XULはテキストしか考えていない
    • Gauche
      • グラフィックの入門書はたくさんあるので、グラフィックで扱う
  • これだけは負けないものは?
  • 製作日数は?
    • Java
      • 3日
      • 3Dの部分は数ヵ月
    • OCaml
      • 2週間
    • JavaScript
      • 2ヶ月半くらい
      • プロトタイプをつくってテストツールをつくった
    • XUL
      • 1週間から2週間
    • Gauche
      • 週末にだらだらつくって2ヶ月くらい
  • 高橋は何を使っているのか?
    • (会場でスタッフをしていた)高橋
      • OpenOffice
      • 300枚のプレゼンテーションを数ヵ月かけてつくった
  • ツールは?
    • 高橋
      • 字が大きくできないのであきらめた
  • 従来のOHP形式ではないプレゼンをみたかった
    • JavaScript
      • スライドっぽくするのに労力がかかった
      • スライドとスライドの間のスクリプトを書かなくていいようにした

Lightning Talk

「PRaggerでピザが頼めるようになるまで」齊藤ただし(筑波大学
  • Ever Quest II
    • /pizzaコマンド
  • その場でピザを注文した
「外付けwebフレームワークflowr」中谷秀洋(サイボウズ・ラボ株式会社)
オープンソースウィジェットエンジン『Mashed Potato』」大崎瑶
  • XML based Application Architecture
  • XAA
「WebDB開発特化型言語Alinous-Core」飯塚友裕
「__init__.php? 変態的国産PHPフレームワークrhaco」露木誠 (rhaco.org)
  • 次回のDjango勉強会は8月25日
「VM魂に入れて貰えなかったJavaFXScript(仮)」庄司嘉織
「Power of Scala」水島宏太(筑波大学大学院)
Lispのオブジェクトシステムの概要」鈴木高弘(株式会社ビズモ)
  • Lispは書いていると楽しい
  • 生産性が高い
  • 楽しい時間がすぐ終わってしまう
  • MixInもアイスクリームが由来
「Coq定理証明という選択肢」今井宜洋(有限会社ITプランニング)
「D4R - Direct X for Ruby」高野光弘(日本UNIXユーザ会、日本Rubyの会)
Javaより速いLL用テンプレートエンジン」桑田誠
C++のためのx86 JITアセンブラxbyak」光成滋生(サイボウズ・ラボ株式会社)
  • デモ
  • 有効にすると100倍速くなる
「じゃ、どう書く?」西尾泰和(サイボウズ・ラボ株式会社)
  • スタンドプレイの結果生まれるチームプレイ
「PRaggerでピザが頼めるようになるまで」の結末
  • バグがあって失敗した
  • 携帯電話で注文した

抽選会

エンディング

日付 2008年8月30日
場所 中野ZEROホール
定員 1,300名