伊藤氏によれば、今年のJavaOneでは、昨年のテーマを引き継いだ「MAKE THE FUTURE JAVA」に加え、「Internet of Things」(IoT、モノのインターネット)がもう一つの柱として設定されたという。
さまざまなデバイスがインターネットに接続し、相互に情報交換、制御し合う環境が注目を浴びることにより、ビジネス的なニーズから組み込み開発の重要性も高まることが考えられるが、組み込みソフトウェア開発は独自性や難易度が高い現況がある。その背景を受けて、来春にリリースが予定されている次世代のJava(バージョン8)では「Java MEとJava SEの統一」が予定されていることを説明した。
Java MEは現在、カーナビやセットトップボックスなどを対象とした「CDC(Connected Device Configuration、Java SE 1.4ベース)」と、携帯電話などの小型機器向けの「CLDC(Connected Limited Device Configuration、Java Se 1.3ベース)」に仕様が分かれており、当然Java SE 7とも言語仕様やAPIのカバー範囲が異なるため、それぞれに対する開発技術の相互活用がしにくい状況だ。
Java 8ではCDCをJava SEに組み入れ、CLDCをJava ME 8とすることで分散状況を改善し、以降にかけてAPIもSEとMEで極力同じになるように近づけ、融合を図っていく。これにより、Javaの開発者がサーバーやデバイス上で幅広く活躍できるようになっていく可能性を示唆した。
阿部氏はIoTの話題を掘り下げ、まずRaspberry Pi関連などを中心にJavaOneで組み込み系のセッションが多かったことを振り返った。
続いて、Javaが実現するIoTシステムの模式図を紹介し、Javaが「Write Once, Run Anywhere」のコンセプトで誕生当初から思い描いていた世界だと言えると、JavaのIoTに対する親和性を強調した。
Javaテクノロジーのロードマップも併せて紹介し、言語仕様だけではなく、今後SEとMEを同じタイミングでリリースしていくことで、より統一感のあるものにしていく方針も示した。
現在、Java SE 8とJava ME 8のアーリーアクセス版がjava.netで提供されている。
また、Javaの標準化だけでなく、Java技術を合理的に選択してもらえるように各種ハードウェアメーカーとの協業も密に行っていることも説明し、具体例として、プラットフォームインテグレーター向けにバイナリだけでなくポーティングレベルのソースコードを提供するパートナープログラム「Oracle Java Platform Intergrator Program」を紹介。
最後に、寺田氏がエンタープライズ向けのアップデートと、技術アップデートの詳細について補足した。
まず、6月にリリースされたJava EE 7について、公開から1か月で全世界で述べ数十万以上のダウンロードを記録し、多くの開発者が注目し、学んでいる現況を振り返った。今後数年をかけてJava EE 7に対応した製品が出揃うことで、さらに普及が進むという考えだ。
Java EE 7の主な新機能として挙げたのが「開発生産性の向上」「HTML5対応」「エンタープライズニーズへの対応」の3点で、具体的には、WebSocket、JSON、バッチアプリケーション、並列処理に対応したAPIの追加などが行われている。将来については、コミュニティの声などを交えながら、下図のような機能を取り込んでいきたいとしている。
また、新しいオープンソースのプロジェクト「Project Avatar」が発表され、サイトから入手可能な状態になっていることを説明した。
Avatarでは、Java EE 7が標準提供しているHTTP、REST、WebSocketに加え、SSE(Server-Sent Events)のリクエストもハンドリングできるようになり、NoSQLにも対応する。これにより、NoSQL側での変更通知をサーバーで受け取り、その結果をクライアントに対しリアルタイム配信するといったことが可能になる。
そして、Javaの実行環境に加え、Java SE 8の新機能として開発が進められているJavaScriptエンジン「Nashorn(ナズホン)」が実行エンジンとして組み込まれることで、AvatarではサーバーサイドをJavaではなく、JavaScriptで記述することができ、JavaおよびJavaScriptのコード間で相互連携することもできる。
Node.jsとの違いについては、信頼性とスケ―ラビリティの実績を兼ね備えたJava VM上で動かすことで、エンタープライズ環境でも適用しやすい点を挙げた。
なお、今月リリースされた統合開発環境の「NetBeans IDE 7.4」では、HTML5のサポートが追加され、JavaScriptからサーバーサイドJavaまでシームレスにデバッグできる機能などが拡充されている。
来春リリース予定の「Java SE 8」については、従来のバージョンアップと比較して、もっとも革新的なリリースといっても過言ではないとした。そのポイントが新機能の「Lambda(ラムダ)式」だ。寺田氏はLambda式を導入すべき理由として、「構文の簡易化」「パフォーマンスの改善」「抽象化による記述の簡略化」「並列処理実装の簡易化」の4点を挙げ、導入の背景については、マルチコアが主流となった時代のトレンドに合わせたプログラムをすばやく書けるようにするため、と説明している。
また、次世代のアプリをすべて標準のJavaで実装できるケーススタディとして、JavaOne会場でデモンストレーションされたチェスゲームの模様も紹介された(下図参照)。サーバーサイドはたった一つのJava EEアプリとして実装されており、WebSocketを介して異なるクライアント間で対決が行える。
寺田氏は、「Javaは昨今エンタープライズ分野での適用が多いが、組み込みも通常のJavaの開発者がノウハウを適用できるようになっている。Javaが10年後も主役のプログラミング言語であるために尽力してきたい」と抱負を語り、発表を締めくくった。