ついにJavaがRaspberry Piとフラットデザインでタブレット市場に参入!?〜JavaOne 2013まとめレポート(中編)(1/5 ページ)

Java開発者の年次カンファレンス、JavaOne 2013のテクニカルキーノートを中心に、Java 8で導入されるLambdaの革新性、HTML5/JavaScriptサポート、Raspberry Piベースのタブレット「DukePad」などについてお伝えする。

» 2013年11月07日 18時00分 公開
[山本裕介株式会社サムライズム]

 Javaの最先端技術や、まだロードマップにも取り込まれていない研究段階のプロジェクトなどを紹介するテクニカルキーノートは、JavaOne初日にストラテジーキーノートに続けて行われた(参考:「俺たちのJavaは、まだまだこれからだ」未来の鍵はInternet of Thingsにあり?〜JavaOne 2013まとめレポート(前編))。

 Oracle Open Worldを押しのけて(?)確保したMosconeセンターでは、3時間続けざまのキーノート(基調講演)でJava開発者の体力が試された。本稿では、テクニカルキーノートの模様と、いくつかのテクニカルセッションの模様をハイライトでまとめて紹介する。

筆者が滞在したホテルには偶然「JavaOne」なるコーヒーが

すでにフォーカスはJava 8、そしてLambdaへ

 テクニカルキーノートを取り仕切るのはチーフアーキテクトのMark Reinhold氏だ。Reinhold氏は、「すでにデファクトスタンダードの地位を築いているJavaをより良くするように、オラクルは積極的に動いている」と強調した。

 「これまでのJavaの数々のバージョンの中で革新的(Revolutionary)なリリースは、「ジェネリクス」を導入したJava 5だ。『Project Coin』によって数々の文法を改善したJava 7は革新的とまではいかないものの、いくらかの進化(Evolution)を遂げたリリースだ」(Reinhold氏)という。最後の革新があったJava 5のリリースは2004年でもう10年近く前の話だ。

 今後もJavaは革新を進めていくが、あくまでJavaがJavaらしくあるために、Javaの父であるJames Gosling氏の「feel of Java」を大切にしているという。次のJavaの改革の旗振り役として挙げたのは、もちろんJSR-335として仕様が策定されているLambdaだ。Reinhold氏は「LambdaはJavaの初期リリース以来、初めてJVM、言語、そしてライブラリをまたがって慎重に慎重にデザインされた仕様である」とし、詳しい説明をJavaの言語アーキテクトであるBrian Goetz氏に譲った。

Reinhold氏(左)とLambdaの革新性を熱弁するGoetz氏(右)

 Goetz氏は、「プログラミングとは適切な抽象化レベルを探すことであり、その面においてJavaは成功している。そしてLambdaはJavaらしさを保ちながら、コードをより一層シンプルにすることができる」と簡単なコード例で説明。

 コレクションから特定の条件に合致するデータを取り除くという処理について、whileループを使うコード、Java 8で導入されるPredicateインターフェイスを使ってシンプルにしたコード、そしてLambdaを使って実質一行にまで簡略化したコードを披露した。

whileループで年齢が18を超える人を取り除くコード
Lambdaを使うと圧倒的にシンプルに

 似た説明は昨年もあったが、今は仕様策定が完了しており、Java 8のデベロッパープレビュー版もリリースされているので、「今書けば、そのまま正式版のJava 8でも動く」という意味では大きい。また、Lambdaは文法的にシンプルなだけにとどまらず、パフォーマンス面でも優れているという。これはJava 7で導入されたInvoke Dynamicを活用することで、匿名クラスを内部的に生成することなく実行されるためだ。

 またLambdaはメニーコアが当然となった今のコンピュータアーキテクチャに重要な並列処理も得意だ。マルチスレッドによる並列処理はJava 7で導入された「Fork/Join」により幾分シンプルに書けるようになったが、Lambdaで導入されるAPIの中でも中心的なStreamインターフェイスは、コレクションに対する処理を圧倒的にシンプルに並列化できることを示した。

Fork/Joinを使った並列処理コード
parallelStream()を使うと並列処理を意識することなくシンプルに書ける

 Goetz氏は、「総じてLambdaは『Easier to write, read, maintain』(簡単に書けて、簡単に読めて、簡単にメンテナンスできる)」と締めくくった。

       1|2|3|4|5 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。