Java Community Process(JCP)のディレクタでJCP Executive Committee(EC)の議長でもあるHeather VanCura氏は先日、ピッツバーグとニューヨーク市のBNY Mellonのキャンパスを訪れて、JCP20周年の記念講演"The Future of Java and You"を行った。ニューヨーク市のイベントには、NYJavaSIGとACGNJ Java Users Groupの2団体も協賛した。
約50人の開発者が、ピッツバーグとニューヨーク両方のイベントに参加している。ニューヨークの参加者で注目されたのは、BNY MellonのディレクタでJCP EC代表、NYJavaSIG共同創設者、Java ChampionのChandra Guntur氏、Red HatのプリンシパルソフトウェアエンジニアでJava ChampionのJustin Lee氏、IBMのデベロッパアドボケートで国際的な講演者、Chicago Java Users GroupのファシリテータMary Grygleski氏、Goldman SachsのマネージングディレクタでJCP代表のJackie Haynes氏といった人々だ。
VanCura氏の講演では、Javaの進化、JCPの組織構造、JSRプロセス、新しいJDKリリースモデル、AmberやValhalla、Loom、Panamaといった特別プロジェクトの説明と最新状況、JCP.nextの概要と開発者や組織が関与する方法、などが話題として取り上げられた。JavaのマスコットであるTumbling Dukeをイメージしたケーキは、当日夜のメインアトラクションになった。
JCPは企業と非営利組織、Javaユーザグループ、個人から構成されている。プロセス資料の最新バージョンであるJCP 2.11は、2018年11月にリリースされた。
JCPは1998年12月、ニューヨークのJacob K. Javits Convention Centerで開催されたJava for Business Conferenceで初めて正式なものとなり、Java仕様プロセスの基本理念がJCP 1.0プロセス資料の記載で文書化された。
Sun Microsystems、Inc.は、仕様のみでなく、参照実装と関連する互換性テストスイートの提供を伴った包括的な合意形成プロセスを用いることによって、高品質の仕様を"インターネット時間"で構築可能な、Java仕様の公式な開発プロセスを運用しています。
私たちの経験から、対象とするテクノロジを深く理解した少数の業界専門家がまず作業を開始して、最初のドラフト作成に強力なリーダシップを発揮することが、仕様を開発する最良の方法であることが証明されています。その上で、関係者が広く参加して、コメントや提案をその後のドラフト版に反映し、最終版のリリースに至るという、反復的なレビュープロセスを用いてコンセンサスを構築するのです。
SunのビジネスユニットであるJavaSoftで社長を務めていたAlan Baratz氏が、新形式のJCPを正式に発表し、Sun Labsの元副社長でSun FellowであったJim Mitchell氏が最初のディレクタに就任した。
BNY Mellonとのコラボレーションとして、VanCura氏は、JCPの20周年を記念するために、ニューヨーク市のJCP発祥の地を会場に選んだ。マネージングディレクタのDonald Raab氏と、ディレクタのChandra Guntur氏がBNY Mellonの代表として、昨年秋、JCP ECの新たなメンバに選出されている。
VanCura氏がInfoQに、JCPとJavaプログラミング言語の今後の展望について話してくれた。
InfoQ: JCPのディレクターになってどれくらいになりますか?
Heather VanCura: 2015年からJCPプログラムのディレクタを、2017年からJCP ECのチェアマンを務めていますが、Java開発者コミュニティに関わるようになったのは2000年からです。
InfoQ: 現在の役職は何ですか、つまり,日々どのようなことをしているのでしょうか?
VanCura: JCP EC(Executive Committee)のチェアマンとしての立場から、JCP ECのミーティングやワーキンググループ、議論の指導や実施にずっと携わっています。ここでの私の役割は、JCPメンバシップの拡大を図るJSR 364と、および現在進行中のJCP.nextへの取り組みの一環としてJCPプログラムを合理化するJSR 387のSpec Leadです。
JCP Program Officeのリーダも続けています。そちらでは、日々の運営、コミュニティの成長とサポート(メンバシップ、JSR Spec Lead、Expert Group)を担当しています。JCP.org Webサイトのメンテナンスやコミュニティイベント、ソーシャルメディアコミュニケーションも担当しています。さらに、JCPプログラムの作業に参画する立場から、より広範なJava開発者コミュニティのリーダーシップの役割を担っています。そのために、Javaユーザグループと協力して、世界中の会議やJava開発者イベントで講演しています。これらグループのいくつかでは、Hack Daysのメンバやリーダ、オーガナイザとして参加もしています。
InfoQ: JCPプロセスの合理化として進行中のJCP.nextについて、InfoQの読者に詳しく説明して頂けますか?
VanCura: Java Community Process(JCP)プログラムは、国際的なJavaコミュニティがJavaテクノロジの仕様を標準化し、承認するためのプロセスです。包括的なコンセンサスをベースとしたアプローチを採用することで、品質の高い仕様の開発を可能にしているのが特徴です。JCPによって承認された仕様には、参照実装(Reference Implementation、仕様が実装可能であることを証明するため)、および技術互換性キット(Technology Compatibility Kit、実装の仕様への準拠性をテストするために使用されるテスト、ツール、およびドキュメント)を添付する必要があります。
これまでの経験から、技術仕様を作成する最良の方法は、オープンで包括的なプロセスを使用して仕様と実装を共同開発することである、ということが分かっています。この中には、コミュニティと一般向けにレビューやコメントの機会を提供することや、技術的な目標、他の関連仕様との統合、ユーザの期待などに応えるための強力な技術的リーダシップといったものも含まれています。
主要な利害関係者とその他のJavaコミュニティのメンバという、2つの側面を代表する組織である実行委員会(EC)は、JCPのさまざまな段階において仕様の通過を承認し、仕様と関連テストスイートとの矛盾を調整する責務を負っています。
JCP.nextは、上記のプロセスに大きなメリットをもたらすべく、特に透明性を重視して、JCPプログラムを合理化し、メンバーシップを拡大するように設計された、一連のJava Specification Request(JSR)です。これらのJSRは、JCPプロセスドキュメントを変更することによって、JCPのプロセス自体を変更します。変更されたプロセスは、Javaプラットフォームを対象とするすべての新しいJSRと、既存のJSRの将来のメンテナンスリリースに適用されます。
Java Community Processの新バージョンに向けた最初の取り組みであるJSR 348はすでに完了し、JCP 2.8として施行されています。JCPをよりオープンで透明にし、より幅広い参加を可能にするため、重要な変更が加えられました。
2番目のJSR 355 "JCP Executive Committee Merge"も完了しています。これにはJCP Process Documentバージョン2.9の改訂が含まれています。
3番目のJSR 364 "Broadening JCP Membership"も完了し、JCPバージョン2.10として施行されました。このJSRでは、新たなメンバーシップクラスを定義することによってJCPへの参加を拡大し、コミュニティのさらなる参画を可能にすると同時に、JCPメンバから提供された知的財産の適切なコミットメントを支援します。
4番目のJSR 387 "Streaming the JCP Program"は、昨年末に完了しました。現在はJSRのメンテナンスリリースに向けた作業中です。JCPプログラムの現行バージョンのバージョン2.11として施行されています。このJSRは、JSRライフサイクルプロセスを合理化して、現在のJavaテクノロジの開発方法にふさわしいものにするものです。
InfoQ: 6ヶ月というリリースサイクルを維持する上で、JCPにはどのような課題がありますか?
VanCura: Java SEプラットフォームの6か月というリリースケイデンスへの整合性を高めるため、JSR 387、JCP nextの活動の一環として、JSRライフサイクルに取り組んでいます。
これには、次のようなアップデートが含まれています。
- コードファーストを中心とした言語の変更と追加、共同RI開発。
- よりオープンで協調的な開発プロセスを実現し、よりアジャイルな継続的デリバリソフトウェア開発モデルを維持するための、JSRライフサイクルのステージの変更。
- 複数バージョンのJSR、中でもJCPプログラムとOpenJDKの下で開発が続けられているJava Standard Edition(Java SE)プラットフォームJSRのための、自動更新を可能にする機能。
InfoQ: 個人やJavaユーザグループ、企業などの組織がJCPメンバシップに参加するには、どうすればよいのでしょうか?
VanCura: 企業、個人、Javaユーザグループ、非営利団体、いずれであってもCPプログラムに参加できます。どのレベルにおいても、費用は必要ありません。Javaコミュニティのメンバは、JCPメンバであるかどうかに関わらず、JCPプログラムのレビューやコメントが可能です。JCPメンバは、エキスパートグループのメンバあるいはコントリビュータとしてJSRに参加したり、OpenJDKなどJSRの成果物を開発するプロジェクトに関与することができます。
InfoQ: 今後、例えば5年から10年の間に、Java言語はどのように進化すると思いますか?
VanCura:将来的にはJava開発者コミュニティ内で、さらに多くのコラボレーションやコントリビューションが行われるようになると見ています。リリースケイデンスが速まり、6ヶ月ごとに新しいソフトウェア機能が用意され、リリースに組み込まれることになったことは、開発者のニーズを満たす上で有効に働きます。
このことは、プラットフォームのイノベーションやコントリビューションの増加にも一役買っています。新機能のパイプラインは豊かで深く、アプリケーション開発の加速にもつながります。同時にこれは、Javaが若い開発者を引き付け続ける要因にもなっています。Javaのバージョン移行プロジェクトは、100を越える新機能を備えた大規模な開発プロジェクトから、もっと頻度の高い、小規模でインクリメンタルなアップデートに移行しつつあります。これによって、開発者が自分たちの移行計画を連続的かつ継続的に評価するようになるため、早期アクセスリリースに関するフィードバックの量を増やすことができるのです。
リソース
- "Sun Microsystems, Inc. Offers Java 2 Platform, Standard Edition for Free" — Tech Insider (1999/12/7)
- "The JCP Program Celebrates Fifth Anniversary, Evolution of Process and Platform" — Susan Mitchell(2003/12)
- "Duke Takes His Last Tumble" — Simon Ritter (2018/3/5)
筆者について
同イベントに参加して、夕方の祝賀会を開会する名誉を得たMichael Redlich氏は、ACGNJ Javaユーザグループの創設者であり、推進者のひとりである。