
216
クライアント側でのアプリケーションとして、「いつでもどこでも」実
行できるアプリケーションとして現在主流なのはJavaScript ではない
でしょうか。ブラウザやデバイスに搭載されているJavaScript エンジンに
よって、OSやデバイスを問わずさまざまなアプリケーションを実行可能
です。JavaScript以外の言語(CやC++など)はプログラムを実行するた
めにコンパイルして機械語に翻訳します。そのため、CPUアーキテクチ
ャー、OS の種別(Windowsや Linux)など、環境ごとに実行前にコンパイ
ルしておく必要があります。
一方でJavaScriptは構文解析によって「バイトコード」という中間コー
ドを生成し、その後各実行環境に合わせた機械語に変換することで、「い
つでもどこでも」を実現しています(図12-3)。
上記のようなしくみで「いつでもどこでも」を実現する JavaScript です
が、JavaScript を実行する際に必要な多数の共通プログラムをダウンロー
ドする必要があります。このため実装方法によっては、アプリケーション
の実行速度に問題が出るケースがありました。また、プログラム実行時に
JavaScriptから生成したバイトコードに基づき、Just In Compiler(JIT)で
コンパイルしており、JITコンパイル回数を重ねて実績に基づいて最適化
するため、コンパイルの実績から外れた処理ではパフォーマンスが安定し
ないなどの課題がありました(図12-4)