軽量プログラミング言語とは,RubyやPython,JavaScriptのような,学習や取り扱いが容易なスクリプト言語を指す。プログラムの実行に必要となるメモリーが少ないという意味での「軽量」ではなく,プログラミングが容易であるという点で「軽量」と呼ばれている。PaaSでは,この軽量プログラミング言語が主流になっている。

図2●現時点においてPaaS(Platform as a Service)で利用できる主な言語
図2●現時点においてPaaS(Platform as a Service)で利用できる主な言語

 例えば,GoogleのPaaSである「Google App Engine」は,「Python」を採用した(図2)。Rubyが使えるPaaSもある。ベンチャー企業の米Herokuは2008年5月,米Amazon Web Servicesの「Amazon EC2(Elastic Compute Cloud)」を使って,開発者にRubyのアプリケーション・フレームワークである「Ruby on Rails」をPaaSとして提供するサービスを開始した。Salesforce.comが提供する「Force.com」の言語は,Javaをベースにした独自のプログラミング言語「Apex」である。

 PaaSによっては,Webアプリケーションの負荷が上昇した場合でも,サーバー台数の拡張は,プラットフォーム提供者が行ってくれるところがある。開発者は,サーバーの調達や運用管理を意識する必要がない。運用管理も「軽量化」しているのだ。

クライアントで進む高速実行

 軽量プログラミング言語は,クライアント側でも重要な技術だ。なぜなら,Ajax(Asynchronous JavaScript+XML)や「Adobe AIR(Adobe Integrated Runtime)」「Silverlight」といったRIA(Rich Internet Application)技術でも,JavaScriptやActionScriptといった軽量プログラミング言語が主流だからだ。

 現在RIA分野では,JavaScriptなどのスクリプト言語をより高速に動作させる取り組みが活発だ。従来のWebブラウザでは,JavaScriptはソースコードを逐次解釈しながら実行する「インタプリタ方式」が一般的であり,その動作は決して高速ではなかった。ところが近年,スクリプトを読み込んだ段階で機械語プログラムにコンパイルする「JIT(Just In Time)コンパイル」を行うスクリプト実行エンジンを搭載するRIA技術が次々と登場しているのだ(表1)。

表1●RIAで進むスクリプト言語の高速処理
[画像のクリックで拡大表示]
表1●RIAで進むスクリプト言語の高速処理

 例えば,米Adobe SystemsはFlash 9/Adobe AIRに,ActionScriptをJITコンパイルして実行する「ActionScript Virtual Machine」というエンジンを搭載した。Adobeは同エンジンを「Tamarin」としてオープンソース化。Webブラウザ「Firefox」の開発元である米Mozilla Foundationは,Tamarinを基に「TraceMonkey」というJavaScriptエンジンを開発しており,次期バージョンの「Firefox 3.1」に搭載する計画だ。

 Googleの「Google Chrome」も,JavaScriptをJITコンパイルする「V8」というエンジンを搭載している。Microsoftの「Silverlight 2.0」では,従来のJavaScriptだけでなく,C#やVisual Basic,IronPython,IronRubyといった複数の言語でプログラミングが可能。スクリプト言語も,同社の.NET Frameworkのエンジン「CLR」によってJITコンパイルして実行する。