2008/03/14

今日の丸レク

このエントリーをはてなブックマークに追加

2 週連続で講演。今日の丸レクは RIA 特集ということで、JavaFX のことを喋ってきました。

とはいえ、Microsoft と Adobe の前で普通に JavaFX のことを喋るのは、やる前から負け戦になると分かっているので、ちょっと違う方向性で話をしました。

プログラムにおける構造と手続きについて議論を行い、JavaFX の言語仕様、特に宣言的文法をどうして採用したかを考えるというものです。

GUI の構築を考えた場合、構造的な情報がとても多いのです。

たとえば、フレームを考えてみまると、フレームのサイズ、タイトル、背景色、前景色、描画する内容など構造的な情報が山ほど出てきます。宣言的文法を使うことによって、このような情報を効率的に表せるはずです。

構造と手続きの話は、鈴木ゆうすけさんがよく話すような内容になってしまったのは内緒 ^ ^;;

JavaFX の話をするのだから、もちろんプレゼンは JavaFX で作成したプレゼンツールを作りました。今まで使っていたプレゼンツールはインタープリタ版の JavaFX を使っていたのですが、今回は全面的にコンパイラ版の JavaFX で作り直しました。

現在のところ、インタープリタとコンパイラで文法の違いがかなりあるという、とんでもない状況。しかも、ドキュメントが全然ない。コンパイラ版の言語仕様のドキュメントはあるのですが、全然役にたたず。書いてないことが多すぎ。

たとえば、do とかレイジーバインドとか。また、インタープリタ版と対応するように記述されていないので、文法がどのように変更されたかが全然分かりません。

開発途中なので、しかたないとは覆いますけど...

ついでにいうと、コンパイラもまだまだできが悪い。一番困ったのが、コンパイルをするコマンド javafxc がコンパイルするクラスが参照したクラスをコンパイルしてくれないこと。

たとえば、Hello.fx の中で Name クラスを使ったとしましょう。Hello.fx に対し javafxc を実行すると、当然 Name.fx をコンパイルしてくれると思ったら、してくれません。まず、Name.fx クラスをコンパイルして、次に Hello.fx をコンパイルしないとダメなんです。

これには困った。他のクラスに依存しないクラスからコンパイルするバッチファイル書いたんですけど、これは必要のないクラスまでコンパイルしてしまう。もうちょっと使いやすければよかったのに。

ビルドといえば、JavaFX Compiler は NetBeans で開発されていて、ant の build.xml ファイルが存在します。で、JavaFX のライブラリをコンパイルするために、javafxc に相当する Ant のタスクが用意されています。ところが、これがまた使い方が全然分からないんですよ。

NetBeans の build.xml は長すぎて、見る気も起きないし......

結局、Ant のタスクは使いこなすことができませんでした。誰か、使い方教えてぇ。

もう 1 つ困ったのが、デバッグ。

結局、解決できなかったバグが残っています。文字列や絵アニメーションさせると、バウンディングボックスが崩れてしまい、表示が切れてしまうというものです。

このバグがまた再現性が悪いんですよ。起ったり、起らなかったり。原因が全然分かりません。しかも、マシンによって頻度が全然違うのです。

これには困りました、というか困ってます。

まぁ、こんなそんなで本当にギリギリまで作り込んでました。会場に着いてからも、後ろの方でゴソゴソ。そんな姿を首藤さんにしっかり見られてしまい、後から「資料作ってましたね」といわれてしまいました ^ ^;;

だから、やろうと思っていたアニメーションなどがいくつか省略しています。次回までにはなんとか直さないと。

このプレゼンツールを作っている時に気がついた、インタープリターとコンパイラの違いは もう 1 つの blog に書いてありますので、参考にしてください。

それにしても、先週の講演の後、風邪をひいてしまい、体調はいまいち。しかも、コンパイラに泣かされながら徹夜したので、なおさら体調はいまいち。講演中も喉が痛くて大きい声を出せないとか、鼻水がとまらないとか、ほんとに聞きづらかったと思います。参加された方には、この場をかりて、お詫び申し上げます。

 

さて、他の講演です。

丸山先生の Andoroido はいいとして、それ以外の Air と Silverlight は、はっきりいってつまらなかったです。

なんでだろう、なんでこんなにつまらないんだろうと、モヤモヤしていたのですが、理由が分かりました。

丸山先生レクチャーシリーズは技術の話をするセミナーなのです。私はもちろん技術の話が聞けると思っているわけです。

しかし、Air と Silverlight の話には技術の話がないのです。単なる、製品紹介。

製品紹介なんか聴きたくないんです。技術の話が聞きたいのです。

たとえば、いろんなセミナーでパラレルにセッションがあるような時、一般的にスポンサーセッションは人気がないですよね。そういうことに企業の人は気づいていないのでしょうか?

そういうセミナでは、参加者は技術の話を聴きに来ているのであって、製品の紹介を聴きに来ているのではないのです。製品紹介は展示会とか自社イベントでやってください。

じゃぁ、どうすればいいかというと、製品の裏側で使われている技術の話をすればいいのです。

Air だったら、ActionScript のコンパイラの話とか、Air の実行環境の話とか、MXML がどのように処理されるのかとか。技術ネタはいっぱいあるはずです。そういうことを話してくれれば、どんなにおもしろくなったことか。

依頼された人が技術の話ができないのであれば、技術の話ができる技術者をアサインすればいいんです。ただそれだけなのに、なんでできないんだろう。

0 件のコメント: