COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA...

10
ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014 JAVA TECH 03 COMMUNITY JAVA IN ACTION ABOUT US blog JAVA EXPLORE THE POSSIBILITIES 組込みからクラウドまでを Java 8 で実現 TIMOTHY BENEKE 1. ラムダ式 2. NASHORN と JAVASCRIPT 3. COMPACT プロファイル 4. 日付と時間の API 5. JAVAFX 8 6. コミュニティの参加 7. JAVA ME 8 8. JAVA SE 8 と JVM J ava SE 8 と Java ME 8 の両方を包 含する Java 8 は、Java プラット フォームの過去最大の変更となる かもしれません。 ラムダ式と Stream API はプラット フォームの表現力を高め、最新のマル チコア・プロセッサを活用しやすくしま す。また、 Java SE 8 の Compactプロファ イルは、プラットフォームのサブセット のみの使用を可能にするもので、Java SE と Java ME の統合に向けた大きな 画像: I-HUA CHEN Java 8 Is Here ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014 ~可能性を探る~

Transcript of COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA...

Page 1: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

03

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

JAVA EXPLORE THE POSSIBILITIES

組込みからクラウドまでを Java 8 で実現 TIMOTHY BENEKE

1. ラムダ式

2. NASHORNとJAVASCRIPT

3. COMPACTプロファイル

4. 日付と時間の API

5. JAVAFX 8

6. コミュニティの参加

7. JAVA ME 8

8. JAVA SE 8と JVM

Java SE 8と Java ME 8 の両方を包含する Java 8 は、Javaプラットフォームの過去最大の変更となるかもしれません。

ラムダ式とStream API はプラットフォームの表現力を高め、最新のマルチコア・プロセッサを活用しやすくします。また、Java SE 8のCompactプロファイルは、プラットフォームのサブセットのみの使用を可能にするもので、Java SEと Java ME の統合に向けた大きな

画像:I-HUA CHEN

Java 8 Is Here

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

~可能性を探る~

Page 2: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

04

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

ラムダ式は Java SE 8 の中核をなすものです。「ラムダ式(別名クロージャ)は匿名メソッドであり、動作をデータとして表現するためのシンプルでコンパクトな手段を開発者に提供します」と説明するのは、オラクルの Java Language Architect で、JSR 335(Lambda Expressions for the Java Programming Language)の仕様リードでもあるBrian Goetzです。「ラムダ式によって、動作を効果的に抽象化するライブラリを開発できるため、エラーが発生しにくく表現力の高いコードを作成できるようになります」Java はこれまでも、クラス、継承、ジェネリクスなどの合理的なデータ抽象化ツールを提供し続けてきましたが、Java SE 8 は動作を抽象化するための新しいツールを提供します。Goetz は次のように述べます。「'開始前にAを実行し、このグループ

内の各ファイルに対してBを実行し、エラーが発生したらCを実行し、完了したらDを実行する'といったワークフローをモデル化したいと思っても、この動作 AからDまでを表現するための最適なツールは存在せず、設計するAPI の種類に影響を及ぼしています。ワークフローを各フェーズに分割し、それぞれのフェーズにクライアント・コードを直接関与させる必要があるため、'さあ、これが処理内容だ、実行してくれ 'と言うわけにはいきません。これは再利用性や可読性、さらにはパフォーマンスにも悪影響を与えています」

Goetz によれば、ラムダ式を初めて使用する開発者の多くにとって、その体験は強力な新しい API を使用してコレクションを操作するようなものです。通常のビジネス・ロジック

では、非定型問合せのような計算がコレクションに対して数多く実行されます。今回のコア・ライブラリでは、このような問合せの "何を " が表現しやすくなっており、"どのように "の詳細にはまり込むことはありません。Java SE 8 が持つも

う一方の主要な言語機能はデフォルト・メソッドであり、今まで提供されてきたインタフェースの進化を可能にします。Collections

「ラムダ式は Javaプログラ

ミング・モデルのもっとも

重大なアップグレードです。

あと数年もすれば、ラムダ

式なしでどうやって開発し

ていたのか不思議に思うよ

うになるでしょう。私はす

でにそう思っています」

オラクル、Java Language Architect、

Brian Goetz

ラムダ式1一歩です。同時に Java ME 8

自体も更新されており、引き続き小型の組込みデバイスに焦点を当てながらも、さらに新しい Java 仮想マシン(JVM)や言語、ライブラリ機能を搭載しています。Java 8 を使用する開発者は、超小型の組込み Internet of Things(IoT)デバイスからクラウド上のエンタープライズ・サーバーまで、幅広いシナリオで同じスキル・セットを利用できます。オラクルの Java Platform Group Chief Architect であるMark Reinhold の言葉を借りると、「Java 8 は、これまでの長い期間で初となる本当に画期的なリリース」です。さあ、Java 8 に含まれる8つの重要な要素に注目していきましょう。

写真:TIM GRAY/GETTY IMAGES

Page 3: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

05

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

をはじめとするいくつかのコア・ライブラリ・クラスが誕生してから15 年を超えることを考えると、デフォルト・メソッドは Java SE 8 にとって不可欠なものです。一部のコア・ライブラリ・クラスは、デフォルト・メソッドがなければラムダ式をサポートできなかったでしょう。Goetz はこう述べます。

「もっと一般的な話をすると、ライブラリの妥当性を長期間維持したいなら、ライブラリの柔軟性が必要になります。このため、私たちは互換性に対するコミットメントを維持しながら、この問題に対応する必要がありました」ラムダ式を使用するときに Java 開発者が直面する問題についても、Goetzは楽観しています。「ラムダ式が単に新しい構文の問題ではなく、理解する必要のある新しい概念であ

ることを受け入れるのは、大きな挑戦です。たとえ開発者がコード内でこれらの新機能を利用するつもりがなくとも、この概念を習得しなければ Javaコードを読めるようにすらなりません。また、ほかにも開発者が学ぶべき大きな要素がコア・ライブラリに追加されていますが、これらの対価は生産性と表現力の向上によって埋め合わせられるだけでなく、それ以上のメリットをもたらすことでしょう」Goetzはラムダ式に対する情熱を少しも隠そうとしません。「ラムダ式は Javaプログラミング・モデルのもっとも重大なアップグレードだと思いますが、それでも、Java は私たちが知っている愛すべき Javaのままです」とGoetz は断言します。「あと数年もすれば、ラムダ式なしでどうやって開発していたのか不思議に思うようになるでしょう。私はすでにそう思っています」

Java Language ArchitectのBrian Goetz が、より問合せ的な計算をコレクションに対して実行できるようにした、Javaコア・ライブラリの拡張について紹介します。 「'7 曲以下しか含まれないアルバムを発表しているアーティスト'を探すようなケースについて考えてみましょう。そのためのコードは for ループを使えば簡単に作成できますが、結果のコードは 'どうやって ' 処理するかに関する非本質的な詳細情報であふれているため、' 何を '処理するかが明瞭ではありません」Java SE 8 で書いたコードは次のようになります。

Set<Artists> artists = albums.stream() .filter(album -> album.getTracks().size() < 8) .map(album -> album.getArtist()) .collect(toSet());

「ここでの指示は、'アルバムの要素を受け取り、7曲以下のアルバムを選び、そのアーティストを取得したら、集合に入れる 'というものです。このコー

ドは課題を読み解く事が簡単にできます。これは良いことです。なぜなら、読みやすいコードは、正しいコードである可能性も高いからです」とGoetz は述べます。手書きのループからラムダ式

とストリームを使用した集計処理へと移行すると、計算の制御が逆になります。Goetz は次のように説明します。「for ループを使用する場合、クライアントが各ステップを制御しながら、Iterator に対して反復のたびに次の要素を要求します。ラムダ式とストリームを使用する場合に制御権を握るのはライブラリですが、クライアントが簡単に計算をカスタマイズできる点に変わりはありません」Goetzの説明は続きます。「先ほどのアルバム計算では、データを3回渡しているように見えますが、実際は 3つが結合されて1回になっています。この結合が可能になった唯一の理由は、さまざまな動作を含むステップをパラメータ化することで、毎回のループ反復に関与することなく、クライアントが必要なすべての要素を1回の実行内に表現できるようになったからです」

ラムダ式で問合せと計算を簡単に

Brian Goetz はラムダ式に関するライブ・ハッキング・セッションを開催しています。

コミュニティ・スポットライト

ADOPT-A-JSR

JSR 335:Lambda Expressions

for the Java Programming

Language

対象 JUG:Jozi JUG(ヨハネス

ブルク(南アフリカ))、London

Java Community、SouJava(サ

ンパウロ(ブラジル))

対象活動:Jozi JUGは Java 8 ハッ

カソンを1度開催し、メンバー

に向けてラムダ式について講演

しました。

London Java Community はハッ

カソンを3度開催し、140 名の

Java 開発者に対して "Lambdas:

Myths and Mistakes"というプレ

ゼンテーションを実施しました。

SouJava は、メンバーを対象に

ラムダ式のセッションを数回開催

し、ブラジルやコロンビアなどで

Java 8 や Adopt-a-JSR、JCP に

関する啓蒙活動を実施しました。

ラムダ式に関する追加情報• Project Lambda

• ラムダ式に関するチュートリアル

• 『 Project Lambda の展望』

Page 4: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

06

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

「Nashornは Java SE 8 に含まれ、JavaVM 上で稼働する JavaScript エンジンです。Nashoron は最新の JavaVM の技術を使用して、新しい JavaScript のコードを実行する事ができます」と説明するのは、オラクルのEngineering Lead for Multilanguagesの Jim Laskeyです。Java SE 8 では、Nashorn が javax.script エンジンとしてJDK に組み込まれます。つまり、今後はすべての Javaアプリケーションに JavaScriptで書かれたコンポーネントを含めることができるようになります。JavaScript は、Javaとよく似た機能を持つ人気のある言語であり、ネットワーク経由のコード転送に適しています。また、新しいコマンドライン・ツール(jjs)により、Nashorn をスクリプト・ツールとして使用できます。Rhino(Nashornと同様にオープンソースの JavaScript エンジン)の代わりに標準として採用されたNashorn は、さらに高速かつ軽量になっており、JavaScriptと Javaをいっそう緊密に統合します。その結果、こ れまで通常は Java 開発者のみが利用でき ていた豊富なライブラリを JavaScript の開発者も利用できるようになり、アプリケーションの一部を、よりシン

プルで軽量なプログラミング言語で実装できるようになります。開発者は、動的なランタイム機能を実装することでビルド・サイクルを回避できるようになり、アプリケーションを再ビルドしなくても、ユーザーやフィールド・エンジニアが構成を変更できます。「Nashorn を使用することで、これまでは不可能だった方法で JavaScript を利用できるようになります」、Laskey はこう説明しながら、次の点を指摘することも忘れません。「Nashorn JavaScript はブラウザのJavaScriptと同一ではなく、現時点ではDOMに対応していませんが、利用可能なJavaライブラリのすべてにアクセスできるフル機能付きのプログラミング言語です」

「Nashorn を使用することで、これまでは不可能だった方法で

JavaScript を利用できるようになります」

オラクル、Engineering Lead for Multilanguages、Jim

NASHORNとJAVASCRIPT2

写真:DAN CALLIS/GETTY IMAGES

NASHORNに関する追加情報• Project Nashorn

• 『 Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM』

Page 5: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

07

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

Compact プロファイルは、Java 8 で提供されるAPIを、使用するデバイスのリソースに応じて3つのサブセットに分類し、Java ME の Connected Device Configuration( CDC) と Java SE 8 を統合しています。Java 8 の言語とAPI が完全にサポートされたこの単一仕様は、Java SE に準拠しながらJava ME CDC のデバイス・クラスをサポートします。組込み開発者は長年、

組込みデバイスに小さいバイナリをデプロイするために、Java SEプラットフォームのサブセット化を求めてきました。Compactプロファイルを利用することで、プラットフォーム全体までは必要としないアプリケーションを作成し、小型デバイスにデプロイして実行できます。Compactプロファイルは、完全な Java SE の Javaランタイム環境(JRE)よりもずっと小さいため、ストレージ

の限られたプラットフォームにアプリケーションをデプロイできるようになります。Compactプロファイルのランタイムは最小で 11MBであり、同等の機能を持つ従来の JREと比べて4分の 1未満のサイズです。Compactプロファイルで提供される特定の API に対象を絞ることで、リソースに制約のあるデバイスで実行されるように Java SEアプリケーションを設計できます。Compactプロファイルはもともと、静的ストレージと動的ストレージが限られている組込みソリューションでJava を使用したいと希望する組込み開発者向けに設計されました。しかし、RAMとフラッシュのサイズを最小限に抑えることで、組込みデバイスの部品(BOM)コストも最小化されるため、結果的にデバイス販売元の利益拡大につながっています。オラクルの Consulting Engineer であるBob Vandette は次のように締めくくります。「Compactプロファイルの導入により、Java SE 標準さえあれば、Javaの特長となっている生産性をすべて保ちつつ、小型の組込み IoTデバイスから大規模なエンタープライズ・サーバー導入にまで対応したスケーラビリティを実現できます」

「Compactプロファイルの導入により、Java SE 標準さえあれば、

Java の特長となっている生産性をすべて保ちつつ、小型の組込

み IoTデバイスから大規模なエンタープライズ・サーバー導入

にまで対応したスケーラビリティを実現できるようになりました」

オラクル、Consulting Engineer、Bob Vandette

COMPACTプロファイル3

写真:TIM GRAY/GETTY IMAGES

COMPACTプロファイルに関する追加情報• 『An Introduction to Java 8 Compact Profiles』

Page 6: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

08

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

Java SE 8に導入される新しい java.timeAPI は、自然でなじみやすい形式であり、IDE の助けがなくても簡単かつ自由に読み書きできます。この API は、グローバル企業で使用される、時間の国際的規格である ISO 8601 への優れたサポートを提供しており、よく使用されるカレンダーである和暦、民国紀元、イスラム暦、タイの仏滅紀元にも対応しています。日付、時刻、日付と時刻の組み合わせ、タイムゾーン、時点、経過時間、時計に関する新しいコア Javaクラスにはそれぞれ固有の目的があり、副次的な作用なしで明示的に動作が定義されています。マルチタスキング環境で使用された場合の並列処理の問題を簡素化するために、型はイ

ミュータブル(不変)になっています。また、この API は拡張可能であるため、新しいカレンダー、日時の単位、日付フィールド、時刻フィールドを追加できます。開発者は、関係のない機能を気にすることなく、特定のタスクの完了に集中できます。この新しい API が使用する値は不変であり、計算ごとに新しい値が生成されます。オラクルの Consulting Member of Technical StaffであるRoger Riggs によると、オブジェクトが不変であるため、予想外に値が変更される心配をする必要がなくライブラリまたは並列処理実行タスクとインスタンスを共有できます。一方、現行のDate 型や Calendar 型に格納される値は可変であり、マルチスレッド・セーフではありません。不変値を使用することで、マルチスレッド・プログラミングで発生する多くの問題が解消されます。 「Date や Calendar に関する現行の API には、型ごとに多数の関数

が組み合わせられているため、予想外の相互作用が生じてプログラミングが複雑になる場合があります」とRiggs は言います。「新しい API は目的が明確であり、使いやすく保守も容易です」

日付と時間に関して説明するLondon Java CommunityのJim Gough

コミュニティ・スポットライト

ADOPT-A-JSR

JSR 310:日付と時間の API

対象 JUG:Guadalajara JUG

(グアダラハラ(メキシコ))

Jozi JUG(ヨハネスブルク(南

アフリカ))、London Java

Community、SouJava(サンパ

ウロ(ブラジル))

おもな活動:Guadalajara JUG

は、日付と時間に関するライブ・

コーディング・セッションを開催

しました。

Jozi JUG は、25 名を上回る参

加者を集めてハッカソンを開催

しました。

London Java Community は、

Technology Compatibility Kit

(TCK)のテストを実装固有テス

トから切り離しました。

SouJava は定期会合で何度か議

論し、JSR 310 の専門家グルー

プにフィードバックしました。

日付と時間のAPI4

「グローバルな日付と時間を使用してい

るか、地域別のカレンダーを使用して

いるかに関係なく、新しい java.time

API は開発生産性を向上させます」

オラクル、Consulting Member of Technical Staff、Roger Riggs

写真:TIM GRAY/GETTY IMAGES

日付と時間に関する追加情報• Package java.time

• 『Java SE 8 Date and Time』

Page 7: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

09

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

「JavaFX 8 は Java SE 8と統合されており、ラムダ式との相性も優れています。イベント・ハンドラやセル値のファクトリ、TableViewを使用したセル値のファクトリなど、さまざまなコードを簡素化します」と語るのは、オラクルのClient Java ArchitectであるRichard Bair です。「TreeTableView やモーダル・ダイアログを実現するAPI など、リクエストの多かった新しいUIコントロールとAPI がいくつか導入されています」

さらに Bair によると、JavaFX 8 はシーン・グラフ向けの強力なリッチ・テキスト・ノードを提供しており、このサポートに基づくリッチ・テキスト・エディタとコード・エディタを構築するためのプロジェクトが、Javaコミュニティの素早い取り組みによっていくつか進められています。また、JavaFXアプリケーションのデフォルトの外観が新しくなっており、"Modena"と呼ばれる新テーマが使用されています。JavaFX 8ではサード・パーティ・

コンポーネントに対するサポートも強化されており、その多くが追加設定なしで使用できるようになります。以上に述べた点すべてが JavaFX の開発生産性の向上につながるとBair は言います。パフォーマンス面でも大きな進歩が見られるのは、お

もに Raspberry Pi や Freescale i.MX 6 ボードなどの組込みデバイスで JavaFXを利用できるようにしたことに起因します。JavaFXで3-Dサポートが強化されたことから、開発者に新しい機会が開け、成長中の活発なコミュニティOpenJFX に対して、AMDが COLLADA のインポータ機能を提供しているとBair は補足します。「実際に Scene Builder で構築された最初の Scene Builderとなる新しい Scene Builder 2 には、優れた CSSインスペクタが含まれるため、開発者は要素がそのスタイルを持つ理由をより深く理解できます」とBair は説明します。Scene Builder 2 はモジュール式であり、任意の IDE に組み込むことができます。また、オープンな公開形式であるFXMLでも使用できるため、開発者はFXMLファイルを直接利用できます。「ぜひ Java SE 8 をダウンロードして使ってみてください。そしてチームにフィードバックをお寄せください」とBair は付け加えます。

JAVAFX 85

「JavaFX 8 は Java SE 8と統合されており、ラムダ式と

の相性も優れています。イベント・ハンドラやセル

値のファクトリ、TableViewを使用したセル値のファ

クトリなど、さまざまなコードを簡素化します。

オラクル、Client Java Architect、Richard Bair

JavaFX 8とラムダ式について語るオラクルの Java Platform

Group Chief Architect、Mark

Reinhold(左)とオラクルの Client Java Architect、Richard

Bair

写真:BOB ADLER

JAVAFX 8 に関する追加情報• JavaFX 8 Overview

Page 8: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

10

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

Javaコミュニティは Java 8 の誕生において非常に重要な役割を果たしました。スペックリードに対する持続的なフィードバックや、新しい Java機能のリクエスト、バグの発見、コード修正への貢献など、さまざまな協力を行ってきました。Javaコミュニティによる学習と参加の中心となっている Java ユーザー・グループ(JUG)は、これまでずっと欠かせない存在でした。Java Championで SouJava JUG のリーダーでもあるBruno Souza氏はこう述べます。「Java 8はコミュニティの参加に新たな基準を打ち立てました。

JCP 仕様に関するプログラムを運営してフィードバックを提供し、OpenJDKで活動している Java ユーザー・グループは世界中に存在します」OpenJDKコミュニティは、Java SEプラットフォームのオープンソース・リファレンス実装について、開発者が協業できる場です。JUGメンバーや個人、およびその他の組織による JSR への参加を促すた

めに作られた Adopt-a-JSRプログラムによって、Java 8 だけでなくその他の新しい標準へのユーザーや開発者の参加が増えています。このプロ

グラムには 26を超える JUGが参加しました。Java Community Process(JCP)がよりオープンで柔軟になったことで、組織と個人の両方が Javaプラットフォームに貢献しやすくなりました。「JCP は現在、大幅に透明化されています」とSouza 氏は続けます。「以前よりずっと簡単にJCP サイトにアクセスして参加できます。このように透明性が増したことで、コミュニティの参加が容易になりました」

Java 8 でどのようにコミュニティの参加状況が変わったかについて語るSouJava の Bruno Souza 氏

コミュニティの参加 6

「Java 8 はコミュニティの参加に新たな基準を打ち立てまし

た。JCP 仕様に関するプログラムを運営してフィードバッ

クを提供し、OpenJDKで活動している Java ユーザー・

グループは世界中に存在します」

Java Champion/SouJava JUGリーダー、Bruno Souza

写真とビデオ:BOB ADLER

Page 9: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

11

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

「Java ME 8は、Java MEとJava SE を統合し、Java エコシステムを一本化するための大きな一歩となることで、Java 開発者が Javaプラットフォームの高機能と移植性を利用して、さまざまな組込みデバイスでより容易に既存のスキルを適用できるようにします」と説明するのは、オラクルのSenior Technologist 兼 Product Manager であり、IoT および組込みテクノロジーを専門とするTerrence Barrです。「Java ME 8は、迅速な製品化だけでなく、クロス・プラットフォームの互換性と組込みデバイスのスケーラビリティを実現します」Java ME 8 が登場したことで、開発者は既存のスキルを利用し、これまでと同じ使い慣れたプラットフォームや言語、プログラミング・モデル、ツールを使用して、急速な発展を続ける組込みデバイ

ス分野のアプリケーションの構築を始めることができます。 組込み領域や、急成長を遂げて常に変化している IoT に対して、Java ME 8 は柔軟でスケーラブルな開発 /デプロイ環境を提供します。 詳しくは、本号の記事『Java ME 8と Internet of Things』をご覧ください。

JAVA ME 87「Java ME 8 は、Java MEとJava SE を統合し、Java エコシステムを一本化す

るための大きな一歩です」

オラクル、Senior Technologist 兼 Product Manager、Terrence Barr

写真:TON HENDRIKS

JAVA ME 8 に関する追加情報• Oracle Java ME Embedded 8

• Connected Limited DeviceConfiguration 8

• Generic Connection Framework 8

• Micro Edition Embedded Profile 8

• Device Access API 8

Page 10: COMMUNITY JAVA JAVA IN ACTION EXPLORE THE ......ORACLE.COM/JAVAMAGAZINE ///// MARCH/APRIL 2014 JAVA TECH 04 COMMUNITY JAVA IN ACTION ABOUT US blog ラムダ式はJava SE 8の中核をなす

ORACLE.COM/JAVAMAGAZINE ///////////////////////////// MARCH/APRIL 2014

JAVA TECH

12

COMMUNITY

JAVA IN ACTION

ABOUT US

blog

「Java SE 8が提供するG1ガベージ・コレクタは、改善されており、成熟度が増しています。G1のスケーラビリティは拡大中であり、並行してさらなる取組みが続けられています」と語るのは、オラクルの Principal

Member of The Technical Staff のJon Masamitsuです。「基本的なG1設計は変わりませんが、ポーズ時間(一時停止時間)の信頼性向上に向けた段階的な改善が多くの領域で行われています。より一般的には、フラグ間の相違が修正され、すべてのガベージ・コレクタを通じてコマンドライン・フラグの一貫性が高くなっています。この一貫性向上により、異なるガベージ・コレクタ間の切替えが容易になり、可能な場合はコマンドライン・フラグに共通の意味を持たせることができます」さらに、Java SEでは Permanent世代のチューニングが不要になりました。Java HotSpot VMでの Javaクラスの内部表現が再設計されて、Permanent 世代(完全に削除)からネイティブ・メモリまたはJavaヒープ(あるいはその両方)に移行しました。これまで、Permanent 世代

のサイズのチューニングは、試行錯誤による厄介なプロセスでした。起動時に Permanent 世代の最大サイズを指定する必要がありましたが、どのくらいに設定すればよいかが直感的にわかる方法はありませんでした。今後は Permanent 世代のサイズについて当て推量をする必要はありません。Java ME 8 の JVM、言語、ライブ

ラリがついに、Java SE 8と一致するように更新されました。

コミュニティ・スポットライト

TEST JAVA 8Test Java 8プログラムは、Adopt-

a-JSRプログラムの一環として、

London Java Community によっ

て開始されました。このプログラ

ムの目的は、Java 8 のリリース前

に複数のオープンソース・ソフト

ウェア・プロジェクトで、Java ユー

ザー・グループのメンバーが Java

8 のテストに協力できるようにする

ことでした。

「Java SE 8 が提供するG1ガベージ・コレクタは、改善されており、成

熟度が増しています。G1のスケーラビリティは拡大中であり、並行し

てさらなる取組みが続けられています」

オラクル、Principal Member of Technical Staff、Jon Masamitsu

JAVA SE 8 と JVM8 まとめると、Java 8 は小型デバイスからク

ラウド・ベース・システムまでのあらゆるケースで、Java 開発者に高度なイノベーションの新たな機会を提供します。ラムダ式の利用によって定型的なコードが減り、パラレル・プログラミングが増えることから、開発生産性とアプリケーション・パフォーマンスの向上を期待できます。低レベルの詳細な実行時情報を継続的に収集する包括的なツール・セットを備えたJava 8 は、クラス最高レベルの診断を実現します。Java SE の利点を組込み開発に利用す

ることで、開発者が持つ Javaスキルを急成長中の新しい IoT 分野に適用することが可能となり、あらゆる規模のあらゆるデバイスを Javaでサポートできるようになります。現在は Java 開発者にとって刺激的な時期です。さあ、Java 8 を試してその結果をお知らせください。

試してみよう

写真:BOB ADLER

Timothy Beneke:ジェンダー関連の書籍で知られるフリーランスのライター兼編集者。

JAVA 8 のダウンロード• Java SE 8

• Java ME 8

Java 8 Is Here

MORE ON TOPIC: