JTC2004まとめ

昨日書くつもりでかけなかったので。ニュースバリューはあんまりないですが個人的なメモってことで。

初日キーノート: Sun は J2ME に力を入れてる模様。特に億単位のユーザがいる携帯電話。技術者としてせっかくなら大勢に使ってもらえるソフトを書きたいだろ? みたいに煽ってました。Tiger (J2SE 1.5) の紹介もしてました。プレゼンは PowerPoint ではなく StarSuite を使っていました。

Sun Java Desktop System: 一部メディアでは誤解されてるようですが Java Desktop は Java とはほぼ無関係。実体は SuSE Linux 派生の Linux ディストリビューションの一つで「Java」というのは単なるブランド名*1。ライセンスコストと安さ(英語版は50$/ユーザ・年)、StarSuite バンドル、管理コストを低減させる集中管理ソフトが売り。ただし Sun としては Linux はデスクトップ用 OS という位置づけで、サーバ OS はあくまで Solaris。日本語版はリコーのフォントと ATOK 入りで4月リリース予定。価格は言ってなかったけどフォントと ATOK の値段があるので 50$ というわけにはいかないかも。ちなみにプレゼンは実際に Java Desktop System 上の StarSuite を使ってました。

Looking Glass 3D Desktop: こちらは本当に Java で作ったデスクトップシステムだけど普通のデスクトップじゃなくて 3D を使ったもの。これは product じゃなくて project で開発者の kawahara 氏曰く「モーターショーのコンセプトカーみたいなもの」。ウィンドウを斜めに(Z軸を軸に回転して)置いたり、ウィンドウを裏返して裏にメモが書けたりします。Java アプリだけでなく普通のアプリも表示可能。デモでは Linux 上で NetscapeRealPlayer を表示していました。RealPlayer は動画が普通に動いててちょっとびっくり。CPU はあまり食わないそうで使用率 1% くらい(ただし RealPlayer が動いてて 10% くらいだったのでデモマシンはかなり高速なマシンと思われる)。

3D デスクトップはかつて MS や Apple もやって失敗してますが、あれはバーチャルリアリティになってるのがマズい、現行のデスクトップシステムを基本に 3D を取り込むべきなんだとのこと。でも取り込んで何が嬉しいのかいまいち見えてこず、kawahara 氏もデモしながら「だから何? って感じですが」みたいに自己ツッコミする場面も。会場からはウィンドウ斜め置きは画面を有効利用できて大画面モニタを買わずに済むのではという意見もありましたが。

Looking Glass SDK は今年中旬にリリース予定。最近の Java は速くなってるからかつてクライアントアプリを書いて痛い目にあった人*2は是非もう一度チャレンジしてほしいとのこと。Sun はサーバ企業のイメージがあってデスクトップはどこまで本気なのかと思うかもしれないけど、昔はやってたしその技術は今も生き残っている、Sun は本気だよ、とも。

クライアント開発: ボーランドJBuilder X の宣伝を兼ねたセッションで、クライアントアプリ(バックエンドじゃないという意味で JSP 等も含む)作成の問題点についてと JBuilder X を使うと解決しますよ! というお話。StrutsiアプリMIDP の開発が簡単にできるそうです。モバイルアプリがゲームばかりなのは UI 作成が大変だったりデバッグがやりづらい環境だったりサイズを小さくするのが大変だったりで、ゲームの開発をやってる人くらいしか手がつけにくいから、との見解が。本当かな? ゲーム以外のニーズが少ないからなんて言えないだけ?

Relaxerプロセス: Relaxer を使った開発プロセスについて浅海さん自ら解説。Relaxer による開発手法を伝票指向アーキテクチャと呼んでポスト・オブジェクト指向の実装技術に位置付けています。伝票指向というのは COBOL のレコードでデータの持ち回りをしていたかつてのビジネスアプリの手法で、古くさいようだけどこれが意外に強力で COBL アプリの Java への置き換えが進まないのは Java では伝票指向をうまく実現できないから(決して COBOLer が保守的で Java に心を開かないからではない)だとのこと。そこで、COBOL のレコードの部分を XML に置き換え Relaxer でコードを自動生成することで Java でも伝票指向しましょうと提案。ちなみにプレゼンには OpenOffice を使用。

Mac OS XJava: Apple のセッション。Apple loves Java だそうで、Mac OS XJava 開発プラットフォームとして最高のものにしようと頑張ってるそうです。標準で入っている XcodeJava の開発がこんなに楽に、というデモをやってましたが、デモ中のトラブル(ダイアログがプロジェクタの解像度にあわせてリサイズしてくれなくてボタンが押せなくなった)で説明が中途半端になってしまったせいか、いまいち実感がわかなかったのが残念。Xcode 自体は ant や xDoclet などオープンなツールをベースにしていて変な囲い込みはやってないようで好印象。

RELAX NG ツールによる Java/XML 開発: 川口さんによる RELAX NG を利用したアプリ、各種 RELAX NG ツールなどの紹介。
弾幕記述言語 BulletMLシューティングゲームでアツいボスキャラを設計するための言語で、これで記述した弾幕を再生するアプリは Relaxer で作成。FreeTrain はゲーム「A 列車で行こう」のクローンですがプラグイン(車両、建築物等)の記述に XML を使いそこで RELAX NG スキーマを使用しているとのこと。
バリデータには Jing, MSV, Bali があるけど、アプリケーションから使うには JARV API から呼び出すと便利。JARV 相当の API は JAXP 1.3 及び J2SE 1.5 に標準装備されるとのこと。コマンドラインツールは XML Starlet がオススメ RELAX NG 検証もできる。
スキーマコンパイラRelaxer, JAXB RI が有名だけど小規模なものをきちんと処理するには RelaxNGCC がオススメとのこと。
最近の XML エディタには RELAX NG を利用した入力支援や自動検証機能を持つものが出ている。emacs 用の nXML mode は James は放置してるけど yahoo group で開発が継続されているとのこと。Eclips 用の XML Buddy は RELAX NG 対応は有償版のみだけど TAB キーの動きがよくて賢いインデントをしてくれてよいとのこと。oXygen は有名だけど検証が手動だったりイマイチ。
RELAX NG スキーマの視覚化には RELAX NG to SVG という SVG 画像に変換するツールがある。
というようにいっぱいツールが出てきてるけど、そのへんの情報を集めたサイトがない、川口さんがやってたけどなかなか更新できないので、今度 Wiki でそういうサイトを立ち上げるのでみんなで盛り上げましょうとのこと。ちなみに川口さんは一貫して RELAX NG を「りらっくすえぬじー」と発音してました。

Relaxer サービスフレームワーク: Relaxer を使った Web アプリケーション開発フレームワークの解説。未踏プロジェクトの成果の中間発表。デモマシンのトラブルで残念ながらデモ(図書館の貸し出しシステムを実装したもの)はおあずけ。JavaServer Faces 上に JSP ではなく XHTML + Relaxer 用のタグのコンポーネントを作ってそれを Relaxer に食わせて、えーっと、、、夜遅かったし途中で意識を失ってたのでよく憶えてません。ごめんなさい。とにかく Eclipse 用の Relaxer プラグイン使ってね、未踏の成果物でプロセスハンドブックが出るから読んでね、ということで。

*1:一太郎 Ark」の「一太郎」みたいなもんですな。

*2:俺の事かー!?