.Net FrameアプリとかJavaなんて各CPUで動くようにするため実行形式ファイルであっても
初回起動時にビルドのようなことをしている。JavaではJITと呼んでいる
なので起動が遅い。ネイティブアプリではない。
.Net FrameアプリはマイクロソフトがJavaのようにマルチプラットフォームを狙ったもので
Macでも.Net Frameworkがあれば実行ファイルをコピーしてそのまま動く。
今はスマホ系CPUでも動くことを狙ってMicrosoftストアアプリに移行しようとしているがこれもJITと同じように初回起動時内部ビルドしてんじゃないの?
PCを再起動すればまた初回起動に内部ビルドが必要になる。
なのでWindowsネイティブに特化するとすれば今ではC++?
[匿名さん]
AndroidはマルチCPUを狙いLinuxカーネルとドライバ上で軽量化したJavaVM(ヴァーチャルマシン)がありJavaアプリを動かす。
で、起動時JITで内部ビルドされるため起動が遅かった。
その起動を早くする工夫をしていたメーカー?がGoogleのAndroid OS開発チームに買収され
Android 4.4からその仕組みが取り入れられた。
で、ネイティブアプリを歌っているがAndroid4.4ではデフォルトは前のままで設定で切り替えられるようになっていて
Android 5からアプリの起動が速くなっている
はず。
どのみちJavaアプリだろうからJITなんだろうがネイティブとか言ってる
なのでJavaがいい、いいとか言ってるがJavaアプリは仮装マシン上で動いてるので遅い。
CPUごとにマシン語レベルの命令が異なるため仕方がないんだよ
各CPUメーカーが同じ仕様にするはずもなく、モトローラー系とインテル系では互換はない
それでもマルチOS、マルチCPUで動かすためのJava (JavaVM)ができたわけだ
[匿名さん]