あどけない話

Internet technologies

Adobe Max Japan 2007

Mozilla Japan に招待状を頂きましたので、Adobe Max Japan 2007 に行ってきました。Tamarin の話が目的ですが、その他 3 つのセッションにも参加しました。

ActionScript 3.0 はじめの一歩 (野中文雄)

ActionScript で動画を作っている人、特に絵は得意だがプログラミングは苦手な人向けのセッション。ActionScript 2.0 との違いも説明していました。

僕の目的は、プログラムでどうやって絵を制御しているのか知ることです。なんと、変数を操作するだけでした! たとえば、絵を右に 2 ピクセル動かしたい場合は、こうします。

x += 2;

x にコサインの値を入れれば、絵が左右に行ったり来たりします。
大きさを変えるなら、scaleX/scaleY を操作します。マイナスの値を入れると反転します。

これが分っただけで僕は満足でした!

また、ActionScript 3.0 からは、イベント関数名の決め打ちを止めて、自由な関数名を選べるようになった代わりに、addEventListener で登録しないといけないことなども説明していました。

野中さんは、初心者にあの手この手を使って、プログラムを教えようとなさっていました。僕なら、「関数を定義して、ここで呼び出す」と言ってしまうところを iPod に例えるのです。「曲を再生するには、まず曲をダウンロードする必要があります。ダウンロードにあたるのが定義で、再生が実行になります」

ただただ敬服するばかりです。

ドローイングとプログラミングの美しき衝突 (James Paterson)

Flash 使いとしてどのように自分が成長していったか語ったセッションでした。お遊び程度のアニメーションから、徐々に高度になっていきました。

僕が一番好きだったのは、三次元の線画を入力するソフトです。右手にペンを持ち、左手のマウスで絵を回転させたり前後に移動させたりします。三次元を二次元で表現しているので、何も工夫しないと位置関係は分りません。描いた 2 本の線を結ぼうとしても結べないのです。

このソフトのアイディアは、線が描画の平面と交わる点を赤く表示することです。2 つの赤い点を結べば、思った通りの絵が描ける訳です。

ここまでは面白かったのですが、後半はプログラマーの視点から見ると、組み合わせで表現を変えているだけに思え、退屈になりました。しかし、横に座っていた美大の学生らしき女の子は、終始「おー」と唸っていましたので、見る人が見ると刺激的な内容だったのでしょう。

Dreamweaver CS3 で実現するマルチブラウザに対応した web サイト作成 (神森 勉)

Dreamweaver を使ってホームページを作成する方法を教えてくれるセッションでした。工程はこんな感じです。

  • テキストから HTML ファイルを作成
    • 自動的に p タグが入る
    • ツールの力を借りて h1 などのタグを入れていく
    • FireWorks などでデザインした図から画像も簡単に挿入できる
    • XHTML のバリデータもある
  • CSS を作成
    • これもツールの力を借りながら手作業
  • たくさんのブラウザで表示の確認
  • テンプレートの作成
  • テンプレートを仕事仲間に渡してたくさんのページを作成してもらう

テンプレート以外は、他のツールの組み合わせでもできそうな内容でした。ただ、統合環境になっているのがいいのでしょうね。

ブラウザで表示を確認する際に、Mac にスクリーンを 2 枚つなげて、parallel で IE なども実行し、5種類のブラウザを一覧表示するというのは感心しました。僕も bootcamp を使ってみようかなという気になりました。

Tamarin プロジェクトとブラウザスクリプティングの革命 (John Resig)

jQuery の作者でもあり、FirefoxTamarin を取り込む作業をしている Resig さんの JavaScript 2 講座です。難しい内容なので参加者は少なかったのですが、たくさん質問が出て、よいセッションでした。

Tamarin は、Adobe から提供された ECMAScript 4 のエンジンで、ActionScript 3.0 もこれで動いています。

JavaScript 2 は JavaScript 1.5 と完全に互換性を保ちつつ、新たな機能を追加するそうです。例えば、型検査やクラス・ベースのオブジェクト指向です。

後日、新機能についてまとめようと思いますが、ここでは小田ちゃんの興味がありそうな多態性について書きます。Resig さんは、こんな視点から説明した訳ではなく、聞いている僕がこう解釈したという話です。

サブクラスを使った多態性

当然あります。JavaScritp 1.5 でもできますね。

パラメトリック多態性

別名、型変数を使った型宣言。テンプレート、あるいはジェネリック・プログラミング。

class Point<T> {
    var x: T, y: T;
    // コンストラクタとかも書くらしい
}
アドホック多態性

別名、オーバーロード。関数の頭に generic を付ける。

generic function intersect(s1, s2); 
generic function intersect(s1: Shape, s2: Shape ) { 
    // ... 
} 
generic function intersect(s1: Rect, s2: Rect ) { 
    // ... 
}

他の新機能の解説は、乞うご期待!