おのたく日記 YouTubeも始めました→
2005-10-26(Wed) [長年日記]
■ [Java] JavaScriptとJavaVM
JavaScriptに完全対応するようにしようとすると、どうしてもJavaVMのようなものが必要になってきます。
[「フルブラウザには需要がない」--Scope開発者が激白より引用]
JavaScriptって、JavaVMとはあんまり関係ないような気もするけど、どういうことだろう?
思いついた理由:
1. mozillaで利用されているようなJava言語で書かれたJavaScriptインタープリタ「Rhino: JavaScript for Java」を携帯の上で使うってこと? → いやぁ でもメモリとか厳しいはずだから「kjscmd」のようなC言語ベース使うよな。
2. JavaSciprtのスペック上JavaVMを呼び出せるようになっている →最近はそうらしいけど、詳細は知らないけど、Java使いたいのだったらはじめからJavaで書くよね。→ appletが嫌なのか?
|
iAppliフルブラウザの最大手のjig browser b2 ではアプリケーションサイズの限界である100kbを超えて機能拡張できるよう簡易JVMを搭載しています。<br>JavaScriptインタプリタをまともに書いたら100kb超えるので、その土台としてjigのJVMのような機構が必要だ、ってことではないでしょうか。<br>http://br.jig.jp/pc/
ちょっとWebを見てみました。<br>jig browser2βのjigletVMは、JavaVMではないみたいですね。<br>javaVMとは、javaバイトコードを動かす仮想マシンなのですが、webでの説明によるとjig browser2のjigletVMなるものは、データ用のメモリをうまくswap領域のように利用して少ないメモリで複数のjigletなるアプリケーションを動かす仮想マシンのようです。<br><br>なんて書いてから、CNETの記事読み返すと「jigブラウザ2ではJavaVMを実装して機能拡張」と書いてありますね。iAppliのWebサイトにはSunからJavaの認定を受けていないからJavaVMと明記できないだけなのかな?<br><br>とするとjigletVMは、データ領域にバイトコード置くタイプのJavaVMであり、それによりアプリ容量の壁を越えようとしているんですね。<br>「大昔の8bit CPUでメモリが足りなくて、V-RAM上をデータ領域だけでなくて、ついにプログラム領域に使ってしまった時のような感じ」だということが分かりました。<br><br>おまけ:<br>日記を読み返していたら、<br>「Javaで書くよね。→ appletが嫌なのか?」<br>は、「Javaで書くよね。→ だからJavaScriptからJavaVM呼び出すAPIなんて重要ではないよね? → appletが嫌なのか?」<br>の筈が、「JavaScriptからJavaVM呼び出すAPIなんて重要ではないよね?」が抜けていて、『JavaVMってJavaScriptするのに、そんなに必要だとは思えない。』という気持ちが表現されていないことに気がついた。
そですね。厳密にJVMではないかもしれません。<br>実際開発してみたわけではないですが、興味があって開発キットのダウンロードだけしてみました。特定のクラスを extends したクラスを .java ファイルに書いて、javac でコンパイルして作れるみたいですので開発者からすればほとんど JVM に見えるみたいです。
全然jigletVMについて知らずに書いてますが「特定のクラスを extends したクラス」と聞くと、コンテナって感じですね。EJBコンテナとかDIコンテナとかで出てくる「コンテナ」<br>で、JavaVM自体は、携帯電話に付属のものを使っているような気がしてきてます。<br>※ネットワークから離れる時間が一日に一時間以下ということもあって、携帯電話あんまり使わない人になってるのでJava MEには興味が無いので適当な事を言っているかもしれません。WindowsのJavaVMの2GBのメモリ上限だって狭いと思っているのに、100KBだなんて考えられないもの。
えーっと、Appletみたいなかんじです。MyApplet extends Appletみたいに、MyJiglet extends なんとか、みたいなイメージで書くみたいです。<br>具体的にどのようにロードして実行してるのかはわかりません。