ついにJavaがRaspberry Piとフラットデザインでタブレット市場に参入!?〜JavaOne 2013まとめレポート(中編)(4/5 ページ)
Java開発者の年次カンファレンス、JavaOne 2013のテクニカルキーノートを中心に、Java 8で導入されるLambdaの革新性、HTML5/JavaScriptサポート、Raspberry Piベースのタブレット「DukePad」などについてお伝えする。
あらゆる場面で生産性向上に役立つLambda
もちろんチェスアプリケーションではLambdaを活用しており、特にmutableな変数をLambda内で使用する際、以前はfinalに定義しなければならなかったところ、今ではコンパイラが自動的にfinalと推測してくれるのが生産性向上に大いに役立ったとのこと。
またJavaFXのレイアウトエディタであるScene Builderについては、2013年末頃リリース予定のバージョン2.0でIDEへの埋め込みが可能となることにも触れた。
Reinhold氏は「チェスサーバがJava EE 7で動作し、さまざまな端末からアクセス可能、HTML5にも3Dグラフィックスにも対応することが分かったね」と締めくくろうとすると、「それだけじゃない、もう1つある」と、いつの間にか舞台に置かれていた黒い幕のかかった箱を示した。
黒い垂れ幕を外すと、またもやチェスが。今度は実際のチェスの盤面にロボットアームが添えられている。
インターネット接続したJava MEデバイスが、やはりJava EEのチェスサーバに接続してGPIOよりロボットアームを制御し、進行中のゲームを物理的に再現するという見応えのあるデモだ。チェスの駒はDukePadで見たのと同じDukeをモチーフにしたもので、Mayaでモデルしたものを3Dプリントしているという。
最後にReinhold氏はJava 9について、すでに発表済みの「Sumatra」やJavaのモジュール化を進めるJigsaw以外にも計画があると軽く触れた後、「今はJava 8にフォーカスしてほしい(Java 9のリリースは早くとも2016年となる)」と開発者に訴えかけてテクニカルキーノートを終えた。
テクニカルセッションハイライト
JavaOneの見どころはもちろん基調講演だけではない。オラクル内外の一流の技術者たちによる400を超えるテクニカルセッションは参加者たちを圧倒させる。ここからは、今年のテクニカルセッションで注目を浴びたトピックを取り上げたい。
Lambda登場は目前―― 助走を始める開発者たち
非常に多彩な分野で活躍しているものの、「コードが冗長だ」と、たびたびからかわれるJavaだが、長い歴史を通して一番大きなアップデートとされているLambdaの登場により、シンプルでモダンな言語へと大幅に変貌する。
Lambdaは基本的なコンセプトこそ昨年と変わっていないものの、今では文法やAPIセットが確定しており、Lambdaが含まれるJava 8の正式リリースを来年前半に控える今年のJavaOneは特に注目されていた。多くのセッションが満席で一足出遅れると聴講できないほどだった(防災上の理由からJavaOneの会場では基本的に立ち見は許されていない)。
特に、匿名クラスを多用してコードが冗長になりがちなGUIアプリケーションにもLambdaは福音となる。JavaFX関連のセッションでもLambdaを活用したコードが多く紹介されていた。
ラスト10cmが鍵を握る?―― Internet of ThingsとJava
基調講演のストラテジーキーノートで強くプッシュされていたIoT(Internet of Things)だが、テクニカルセッションにおける取り扱いはいささか冷ややかだ。理由としてはIoTという言葉自体が昨年まで盛んに叫ばれていた「M2M(Machine to Machine)」というバズワードの焼き直しではないかといわれていることからだろう。
またIoTソリューションの末端はJVMが動作しない省電力デバイスであることが多い。これらのデバイスと通信する手段としてRS-232Cに代表されるシリアル通信、USB、Bluetooth、GPIOなどが挙げられるが、残念ながらどれも標準のJava SEではサポートされていないことも大きい。
Java SEに同梱されていない実装としては、シリアル通信はサン・マイクロシステムズが提供していたJava Communications API(現在は配布していない模様)のオープンソース実装である「Rxtx」、USBはJSR-80の参照実装である「javax.usb」、BluetoothはJSR-82ベースの「BlueCove」「avetana」、GPIOはRaspberry Pi向けの「Pi4J」があるが、商用で提供されているのはavetanaのみだ。
JavaでIoTソリューションをフルカバーすためにはデバイスとの接続―― ラスト10cmがJava SEでサポートされることが必要不可欠だろう。
Copyright © ITmedia, Inc. All Rights Reserved.