Webブラウザー向けはJavaScript。企業システムのサーバーサイドはJava。ネット系ならPHPやPerl、Ruby。WindowsならC#。iPhoneならObjective-C。これは一例だが、今は開発言語を使い分けることが多い。だが、これからはJavaScriptをマスターすれば、これらのアプリケーションをすべて開発できる。

クライアント技術者がサーバーも開発

 まずは、サーバーサイドである。ミドルウエアのnode.jsが登場したことで、JavaScriptのサーバー利用に注目が集まった。node.jsは、米Googleが開発するJavaScript実行エンジン「V8」を実装したオープンソースソフトウエア。JavaScriptが動くので、サーバー開発を経験していないエンジニアでも、クライアント向けWebアプリケーションの開発経験を持っていれば、サーバー開発に参加しやすくなる。

 node.jsはデータベース機能を備えていないので、別途用意する必要がある。よく使われるのは、オープンソースのドキュメント指向データベースソフト「MongoDB」である。JavaScriptでは「JSON」や「BSON」といった形式のデータを取り扱う。このため、同形式でデータをやり取りできるMongoDBとの相性がよく、高速にデータを読み書きできる。

iPhoneでもAndroidでも動作

 スマートデバイス向けのアプリケーション分野では、JavaScriptで開発したWebアプリケーションのコードを流用し、iPhoneアプリやAndroidアプリを開発できる。「PhoneGap」や「Titanium」などの開発フレームワークが登場したからだ。

 スマートフォン向けアプリケーションには、Webブラウザーで動作するWebアプリケーションと、公式マーケットで配布されるネイティブアプリケーションの2種類がある。後者は「iPhoneアプリ」「Androidアプリ」などと呼ばれるものだ。

 PhoneGapやTitaniumなどで開発できるアプリケーションは両者の特徴を併せ持つので「ハイブリッドアプリ」と呼ばれる。ハイブリッドアプリの見た目はネイティブアプリケーションそのもの。提供形態も公式マーケットを通じた配布だ。

 だが中身はWebアプリケーションである。Webブラウザーが組み込まれていて、そのWebブラウザー上でJavaScriptが実行される。この仕組みによって、JavaScriptのコードを流用できるようになった。

 ハイブリッドアプリは、Webアプリケーションとネイティブアプリケーションの特徴を併せ持つだけでなく、両者のいいところ取りをしている。

 Webアプリケーションの最大のメリットは、Webブラウザーが動作する環境であればOSやデバイスの種類を問わず共通したサービスを提供できることにある。だが、Webアプリケーションはインターネットに接続していないと利用できない。スマートデバイスに備わるGPSやカメラ機能などとも連携しない。

 オフラインでの利用、GPSやカメラ機能との連携は、ネイティブなアプリケーションでしか実現できない。ところが、ネイティブなアプリケーションを開発するには、スマートデバイスのプラットフォームごとに異なる開発言語のスキルが必要になる。iPhoneアプリはObjective-C、AndroidアプリはJavaである。

 ハイブリッドアプリは、オフラインでも利用可能だし、GPSやカメラとも連携できる。PhoneGapを使ったスマートフォン向けアプリケーションを開発するニーロクの新井 裕氏(取締役)は、「iPhoneアプリとAndroidアプリを個別に開発するよりも大幅にコストと工数を削減できる。PhoneGapを使うメリットは大きい」と説明する。