日本の開発者コミュニティが次世代Java仕様策定に貢献、Lambdaを手に入れたJavaテクノロジのその先へ:Java Day Tokyo 2015基調講演(3/3 ページ)
2015年4月8日、Javaテクノロジに関する開発者イベント「Java Day Tokyo 2015」が開催された。基調講演で紹介されたJavaテクノロジに関する話題を解説していきたい。
楽天はJSF 2.3の新仕様に貢献
基調講演の最後に登壇したのは日本オラクルの伊藤敬氏である。伊藤氏は、まず子ども向けのイベント「Java for Kids」「Java for Students」を紹介し、続いて日本のJavaコミュニティから3人を壇上に招いて、「日本発」のJavaコミュニティへの貢献について語った。
1人目に紹介されたのは、楽天 技術理事の仲宗根徹也氏である。「楽天というとPHPやRubyという印象があるかもしれないが、各サービスのコア部分はほぼ全てJavaで作られている」。楽天は、2014年9月、JCP(Java Community Process)に参加した。
同社は、「全てを標準のJavaで開発する」目標を立てている。Java EEはいわばフルスタックの技術なので、全てを標準のJavaで開発するなら、複数のソフトウエアを組み合わせる手間なく単体のJavaアプリケーションサーバーで開発環境、運用環境を構築できるというメリットが得られる訳だ。
特筆すべき点は、楽天が新しいJavaテクノロジの仕様であるJSR 372 JavaServer Faces(JSF 2.3)の仕様策定に貢献したことだ。「Faceletのリファクタリング、@PageScopedと@TemplateScopedの仕様の追加で貢献した」。日本の開発者コミュニティがエンタープライズJavaの仕様に直接的に貢献したという報告は珍しい。これにより「将来、JSF 2.3とJava EE 8をサポートしたアプリケーションサーバーがリリースされるようになれば、自分たちが貢献した仕様で自らのサービスを開発することになる」と仲宗根氏は語った。
JJUGはJSR 371(MVC)のレビューで貢献
続いて、日本Javaユーザーグループ(JJUG)の会長である鈴木雄介氏が同団体の取り組みを説明した。同団体は大型のイベントCCCを年に2回、「ナイトセミナー」を毎月開催している。今年に入ってからの特筆すべき点は、JCPに参加したことだ。「JSR 371: Model-View-Controller(MVC 1.0)Specification」のレビューを実施するなどの貢献を行っている。
JSR371は、Java EE 8の一部に取り込まれる予定のフレームワークである。従来、JavaテクノロジにはMVCモデルの良いフレームワークがなく、開発の現場ではJava EE仕様の範囲外であるStrutsフレームワークが長年使われてきた経緯がある。JSR 371はこの状況を打破しようと登場したものだ。このJSR 371は、将来は商用アプリケーションサーバー製品にも入ることになるだろう。
Javaの開発者コミュニティの独自構造とは
ここで、楽天やJJUGが「JCPに参加した」とはどのような意味なのか、説明を加えておきたい。
Javaテクノロジを支えるコミュニティは、独特の構造を持っている。多くのオープンソースソフトウエアのコミュニティがソフトウエアの実装に貢献する個人の集まりなのに対して、Javaテクノロジのコミュニティは、主にJavaテクノロジの開発に参加する企業の集まりとして出発しているのだ。ITベンダーの一社である旧サン・マイクロシステムズが、Javaテクノロジに賛同、協力するITベンダー企業を集めて技術開発と普及活動を進めてきた経緯が引き継がれて、現在に至っている格好だ。
こうした企業などから成るコミュニティがJavaテクノロジの仕様策定と開発を進めるプロセスが、先ほどから何回か名前が挙がっているJCP(Java Community Process)だ。多くのオープンソースコミュニティでは実装先行でコンセンサスを形成していくが、JavaテクノロジではJCPとして文書化されたプロセスに基づいて仕様策定と参照実装の開発を進めていく。JSR(Java Specification Request)と呼ぶ個別技術分野ごとに「エキスパートグループ」を形成し、仕様書のドラフトを作成、公開し、グループ内の投票で仕様を決定した上で、最終的な仕様書作成と参照実装の開発を進める。エキスパートグループのメンバーの多くは企業の肩書きを背負った専門家であり、そこに有力な個人、有力なユーザーグループも参加する形となる。
JCPで新仕様が提案されから公開されるまでのプロセスには、1年半以上の時間がかかる。最近の活発なオープンソースプロジェクトと比べると、新技術を取り入れるスピードはどうしてもゆっくりになる。その代わり、新仕様が登場した時点ではIT業界のコンセンサスが取れており、商用製品での採用がほぼ約束された状態となっている。
このように、Javaテクノロジは、純粋な商用製品とも、純粋なオープンソースソフトウエアとも、国際標準とも異なる、独特のやり方で仕様策定と実装を進めている。議論を繰り返しながらコンセンサスを形成し、2年間隔でメジャーバージョンを作っていくのが、最近のJavaテクノロジのスタイルである。
2年刻みで新たなバージョンのJavaテクノロジが登場する──ソフトウエア関連技術を取り巻く環境、ニーズが激変している今、時代に対応するためにはこれぐらいのスピードは必要なのだろう。とはいえ、多くのエンタープライズ開発の現場にとっては、2年刻みのメジャーアップデートは速過ぎると感じられる場合もあるだろう。2011年に登場したJava 7は、この2015年4月30日にサポート終了となった。その一方で、Java 6より古いバージョンが使われている開発現場もまだまだ残っている模様だ。エンタープライズ開発者にとっては悩ましい問題である。
「おらが町のJUGが必要だ」
最後に登壇したのは、「関西Javaエンジニアの会」、略称「関ジャバ」の阪田浩一氏である。前述のJJUGに続いて日本で2番目にJUG(公式のJavaユーザーグループ)として認定された団体である。
「おらが町のJUGが必要なんです」と阪田氏は語る。地方の小さなコミュニティだからこそ可能な、現場に密着した双方向のコミュニケーションに価値があるというのだ。「地方は現場のエンジニアの発表が多い。地域特有の情報も入る。エンジニア同士の横のつながりを作りたい」。
こうして、Java Day Tokyoの基調講演は締めくくられた。Javaテクノロジのカンファレンスでは開発者コミュニティの力を称えることが「お約束」のようになっているのだが、中でも今回は日本の企業やユーザーグループがJavaテクノロジの進化に貢献しつつある状況が具体的に語られた点は記憶に留めておきたい。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Java 8時代の開発者のためのデバッグ/トラブル解決の基本・応用テクニック〜JJUG CCC 2014 Springまとめリポート(後編)
Java開発における3大トラブルと対策、IDEのデバッガー活用の必要性、Java 8より導入された新しいメモリ領域を使いこなすためのテクニック、独自のトランザクショナルメモリ機構を実装した有効性などをお伝えする。 - Struts後時代のJava EE/Javaモダン開発はどうあるべきか〜JJUG CCC 2014 Springまとめリポート(前編)
Java EEにおいてJava 8はどこまで利用できるのか、Java開発でGit、CI、継続的デリバリは、どこまで有効なのか、Struts後時代のJava EE開発における有効なフレームワークなどをお伝えする。 - 初心者のためのJavaラムダ式入門とJDKのインストール、IDEの環境構築
本連載では、今までJavaの経験はあっても「ラムダ式は、まだ知らない」という人を対象にラムダ式について解説していきます。初回は、ラムダ式の概要と利点、必要性、JDK 8のセットアップ、NetBeans、IntelliJ IDEA、Eclipseの環境構築について。 - 「俺たちのJavaは、まだまだこれからだ」未来の鍵はInternet of Thingsにあり?〜JavaOne 2013まとめレポート(前編)
Java開発者の年次カンファレンス、JavaOne 2013がサンフランシスコで9月22〜26日に開催された。3つの基調講演、そして400を超えるセッションが行われるなど、圧巻のボリュームは、まさに「Java開発者の祭典」といえる。基調講演と主なセッション、全体の雰囲気を前中後編に分けてレポートする。 - WebSocketが一番速いアプリケーションサーバはどれだ?
双方向通信を実現するHTML5関連技術WebSocketを実装した3つのアプリケーションサーバの実装の違い・性能などを徹底検証する。 - Java SE 8、Java EE 7、JavaFX、Java Embeddedはどうなる?
OpenJDKで使えるJava 8の新機能、3Dの表現力が段違いで採用企業が増加しているJavaFX、センサデータを企業で活用するJava Embedded、HTML5、WebSockets、JSON、バッチ処理機能を備え、6月13日にリリース予定のJava EE 7、世界に広がるJava Communityなどの最新情報をお届け。 - WebSocket、組み込み、並列処理で進化するJava、そして最強のIDEはどれだ?
Java EEにおけるWebSocket、並列処理の過去・現在・未来、Raspberry Piとの連携、Eclipse、NetBeans、IntelliJ IDEAの中から最強のIDEを決める座談会、ミニ四駆の発表もあったLT大会などの模様をお届け。 - HTML5やWebSockets対応が進むJavaの今後〜JavaOne 2012基調講演まとめレポート
HTML5やWebSockets対応が進むJava EE 7、シェアを伸ばすJava 7、そしてJava 8とOpenJDK、JavaFXの最新情報をお伝えする - JavaOne Tokyo 2012まとめレポート(後編):ラムダ式、JAR脱獄、JavaScript/Node.jsへの接近
JDK 8の新機能のうち、Lambda、Jigsaw、Nashornについて解説した講演を詳細にレポートする。そしてJava SE 9はどうなる? - JavaOne 2011まとめレポート:JavaはクラウドやHTML5、iOS/Androidも取り込む?
Java SE 8/9、マルチクラウドに進むJava EE 7、JavaFXと融合しAndroid/iOS対応を目指すJava ME、HTML5を取り込むProject Avatarなど - JJUG Cross Community Conference 2011 Spring レポート:オラクル買収後のJava 7と8、JavaFXはどうなるのか
Java SE/EEの今後やJRockitとHotSpotの統合など最新情報をお伝えする。そして今後のJavaOneは?