[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: ネイティブコンパイラ




前橋です。

Javaネイティヴコンパイラを使ったことはないですが。

井浪さん:
>「ネイティブコンパイラが欲しい」人たちって、理由がいまいち不
>明なことが有りますよね(^^;
>
>1.速度の改善
>2.コマンドや環境変数の設定をしたくない
>3.(2)に近いけど、不特定多数をターゲットにしたいので(Windows
>  用のシェアウェアを、プログラミングが簡単なJavaで作りたい、
>  とか?) JREや Swingダウンロードの手間をかけさせたくない。

Javaが遅くなる理由ってのは、いくつかあって、

# Arkを見た限りでは、やっぱりJavaって遅いです。

(1)インタプリタだから遅い。
(2)オブジェクト指向だから遅い。
   - カプセル化のため、メソッドを呼ばなければならない。
   - 遅延バインディングのため、メソッド呼び出しが遅い。
   - インタフェースではさらに遅い。
(3)ヒープを使いまくるから遅い。または、GCが遅い。

これぐらいだと思うのですが、このうちネイティヴコンパイラが解
決してくれるとしたら、(1)だけですよね。

まるっきり憶測ですが、(2), (3)の要因も、それなりに大きいと私
は思うのですが、どうでしょう。処理の所要時間を2〜3倍にしてし
まう程度には。

もちろん、CやC++でも、同じようなコーディングをすれば同じぐら
い遅くなるかもしれませんが、Javaの場合、より遅いコーディング
をする傾向があるはずです。

# もちろん、そういうコーディングには、効率は悪くても、それだ
# けのメリットはあるでしょう。

あと、Javaって、言語仕様を決める時点で、ある程度遅くなること
を覚悟していた言語だと思うんですよ。メソッドについて、C++で
いうvirtualがデフォルトになっている所あたりにそんな感じが。

# それでも、LispやSmalltalkに比べれば... :-p

>他には、何か有りますか?
>(3の需要が多そうな気が)

確かに、この需要は多そうですね。

>この手の「ネイティブコンパイラ」で、本当に exeだけで動くと
>いうシロモノを作るものはあるんでしょうか(^^;

Windowsを使う限り、DLLなしで動くシロモノっつーのは存在し得な
いような気が。Windows自体DLLの塊ですし、しかも、そのDLLが、
アプリをインストールする度にパコパコ置き換わってしまうので...

------------------------------------------------------------
  前橋 和弥                             maebashi@xxxxxxxxxx
  中部ソフトエンジニアリング(株)
    〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
    Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------