903i/DoJa5.0、UIEngine、Laszloの先に見えるもの

今月(2006/10)末に903iシリーズが出るそうです。

http://k-tai.impress.co.jp/cda/article/news_toppage/31451.html


今回は xx903i に関わったので発表前から実物は見ていましたが、その写真がナイのが少し寂しいでんすな…ちなみに今後は "is" が廃止されて 903i → 904i → … と行くそうな。903iはドキュメントフォルダがあるので、ドキュメントオリエンテッドな使い方ができそう。これって Windows3.1 で、アプリケーション起動→ファイル読み込み、ってスタイルだったのが、Windows95 で、ドキュメントをダブルクリックするとアプリケーションが起動するようになったのと似てますな。関わった記念でxx903iに機種変しようかしらん。もういい加減Movaはイイよな。

現在企画中のアプリは 903i のメガアプリにしてみんべかね。903i以降専用とか言ったら、ドコモ審査にはねられたりしてなぁ…そんなこたぁナイか。

■UIEngine
http://www.uievolution.co.jp/

 そうそう、こんなヤツが欲しかったんですよ。しかも主導者はプログラマからすれば神のような人。オイラはPC-8001/Apple][な人だったので、TK-80世代ではない…というか実物は秋葉原で見ていたけど、まともにプログラミングを始めたのがPC-8001あたりからなので、TK-80世代の人って(かつ未だ現役な人)ってシンプルにスゴイと思う。

 高校生でGame80コンパイラかぁ…これって確か2パスだったか?それはTL/I?まぁ、コンパイラコンパイラコンパイルする…っていうのが当時、小学生のオイラの頭では全く理解できませんでしたな。でも、うっすらぼんやりと、自己成長を自ら続けていくアメーバのようなコンピュータの中に生息する生物のようなものを想像してた自分を思い出します。

 あと、CANDYを作ったのが大学生…やっぱり天才っているもんですな。まだPC-8801で"NEW ON 1"とかやってた頃だなぁ。ASCIIの広告できれいなワイヤフレームを見て心ときめいていた気がする。あの雰囲気でPC-100が欲しい!って思ったんじゃないだろうか…高くて買って貰えなかったケド。

 古川さんは、動かなくなったDisk][を見るなり、ニッパ取り出してTTL交換し始めた…とか、N88-BASICのPAINT命令のアルゴリズムでBill Gatesを言い負かしたとか、何かで読んだ覚えがあるけど、この時代の人たちって何かステキ。

 それに比べてオイラ…フリーソフト作って50冊位の本に掲載されて満足しちゃう始末。今でもコードは書いてるし、カッコ良いコードが書けた時とかは「オイラって天才!」と自画自賛したりもするけど、結局実現したいものってデカイものが多いから、結果として今現在は経営の勉強をしてたりする。やっぱ物作りって精神的パワーが必要なんだよね。

■Open Laszlo
http://laszlo.jp/

 ん〜、これが Open Source かぁ。スゴイ時代になったもんだ。このアプローチ好きかも。UIEngineは基本的にサーバ主導を目指してるみたいだけど、FlashVM上で動かすってのがイイ。まぁFlex+Ajaxって考えれば特に新しくもないケドさ。一つのコードを書いて全てのデバイス上で動く、Write Once, Run Anywhere って昔何かの標語だった気がするなぁ。

■んじゃどうすんのよ

 Open Laszloも良いケド、FlashVMに依存してるから、Run Anywhere って訳にいかないんじゃなかんべか。自分でVM書くってのもありだけど、Adobeになってライセンス厳しくなったみたいだし。既にFlash Lite 1.1が載ってるところに、独自Lite 2.0のVM乗せるってのも人間力の無駄遣いみたいで気が乗らない。しかし、AUはLite2.0載ったのに903iはなんでLite1.1のままなんだ?待ち受けアプリにできる出来ないも機種によるし。Sati@Home/iαアプリみたいの作って、携帯Gridでもしてみようと思ったのに。

 んじゃUIEngineはって言うと、方針なのかもしれないが JavaVM上でさらにVMちっくなモノを動かすってのが、命令の2段デコードで無駄な感じがちょっとイヤ。仕事環境的に端末Nativeな開発が出来るのに、Javaで遅くすることもないだろう…って思うしさ。だったら、デバイスレイヤ切り離してNative-C/C++で書いた方が確実に早いし、システムリソースも使い放題だから理不尽な制約もないし。

 結局、自分でVM書けって話になるのかなぁ。単一命令長のRISC風味で1インストラクション=1APIみたいにすれば、早くなるんじゃあるまいか…

・マルチメディア対応
→サーバサイドで端末仕様に合わせて変換する。MPEG2→H.264/AVCとかね。
→クラサバ間はWebサービスベースにして、httpベースの間欠ストリーミングとかしたらどうだんべ。
TCPベースでVoIPとかできんかな。

トラフィック削減
→ローカルDRMメディアにWidget保存したり
→フォームアプリケーションの場合はSkinをDRMメディアに保存とか

・描画
→オイラ画面に点を打ったり線を引いたりしたい訳じゃないのよ
→ボタンやリストボックスやテキストボックスを表示したいだけで
→画面サイズの違いを吸収するにはベクタエンジン要るよな。

・全体的に
→デバイスに載ってるファンクションは最大限に使いたい。DirectXみたいに。
→デバイスレイヤとのギャップを端末内だけじゃなくてサーバサイドでも吸収する仕組みね。
→間欠接続(常時ではナイ)可能なネットワークが前提
→マルチメディアが前提