2018年10月22日から25日にかけての4日間、米サンフランシスコのMoscone CenterにおいてOracle主催の開発者向けイベントOracle Code One 2018 が開催されています。これは、これまでは「JavaOne Conference」として開催されていたイベントの後継となるもので、対象となる技術の裾野を広げてエンジニア同士のコラボレーションを促進しようという目的で名称が変更されました。本記事では、その初日に行われたキーノートセッションの様子をレポートします。
「GitHub ❤ Java」で開発コミュニティの拡大を目指す
キーノートの進行役は、OracleのVice President of Development for the Java PlatformであるGeorge Saab氏が務めました。
Oracle, VP, Java Platform Group Chair, OpenJDK Governing Board, George Saab氏
1年前のJavaOneにおいてJavaのリリースサイクルの変更が発表 され、その後Oracleによるサポート方針も変更されたことによって、今後Javaの開発を誰が牽引していくのかという点に注目が集まっています。その背景を踏まえた上で、Saab氏は、Oracleが依然としてJavaの開発においてリーダーリップを発揮していくことを強調する一方で、コミュニティによる貢献についても取り上げることからこのキーノートをスタートさせました。
今回のキーノートでもっとも印象的だったのはGitHubとのコラボレーションです。壇上にはGitHubのVP of Field Serviceを務めるMatthew McCllough氏と同Data Pipeline Engineering ManagerのRafer Hazen氏が呼ばれ、GitHubとOpenJDKプロジェクトが共同で進めている「Project Skara 」について紹介しました。
GitHub, VP of Field Service, Matthew McCllough氏
GitHub, Data Pipeline Engineering Manager, Rafer Hazen氏
Project Skaraは、JDKのSCM(Source Code Management)およびコードレビューについて、新しいシステムへの移行を検証するプロジェクトであり、GitHubもその最有力候補として挙げられており、実際にGitHub上にリポジトリが作成されています。両氏は、Project Skaraを進める上で次の4つの過程があったことを説明しました。
開発コミュニティの構築
GitHub ❤ Java
努力をサポートするツール
行動を起こす
とくに開発コミュニティの構築について、McCllough氏は「"1"という数字が重要な意味を持つ」と強調しています。"1"の持つ意味というのは、具体的には次のようなものです。
1つのバグフィックス
1パーセントの高速化
1つの手作業の削減
1つの機能追加
1つの質疑応答
1人の新しいコントリビュータ
すなわち、小さな一歩が成功につながる鍵になるということ表しています。現在のOpenJDKプロジェクトでは、ソースコード管理はMercurial、レビューはメーリングリストで行われています。これを別のモダンなシステムに移行したいという要望は以前からありましたが、特にリポジトリサイズの大きさが課題であり、容易ではないとされていました。GitHubとのコラボレーションは、その困難な作業への一歩を踏み出したといことになります。
GitHub loves Java
OracleはこれからもJava開発を推進していく
Project Skaraの発足は、前述のようにOracleによるJavaのサポート方針の変更も少なからず影響していると思われます。Javaの開発はOracleに依存することなくコミュニティによって牽引していく必要があり、そのためのプラットフォームの充実が求められているからです。
一方で、OracleはこれからもJavaの開発をサポートしていく方針を強調しています。方針を変更したのは商用サポートの部分であり、開発自体はOpenJDKプロジェクトの一員として引き続き中心的な存在であり続けるでしょう。Saab氏はそれをを改めて強調した上で、Javaをよりオープンにしていくという昨年の発表の通り、ZGCやFlight Recorder、Mission Controlなどの独自技術をオープンソース化したことを説明しました。
Javaをよりオープンに
「Javaは今も無償です」
キーノートの後半には、OracleにおけるJava Platform GroupのChief ArhitectであるMark Rainhold氏が登壇し、現在開発が進められているJavaの新機能などについて紹介しました。Rainhold氏は長年に渡ってJava SEのスペックリードを努めてきた中心的人物です。
Oracle, Chief Arhitect Java Platform Group, Mark Rainhold氏
Rainhold氏が主導して行われたJava 9のリリースでは、モジュールシステムの導入という極めて大きなアップデートがありました。このアップデートではJDKの内部構造が大きく変更されたため、既存システムとの互換性について多くの課題を抱えています。Rainhold氏は、モジュールシステムに対応するためのポイントや注意事項などを説明しました。
Rainhold氏がもうひとつ強調したのは、「 Javaは今も無償である(Java is still free) 」ということです。OracleによるJDKのサポート方針の変更は、Javaが無償で使えなくなるという誤解を生む結果になりました。実際にはJavaはこれからも無償で利用できるうえ、長期間に渡ってパッチの提供が行われるLTSバージョンも存在します。「 Java is still free」というのは、Javaが有償化されるという誤解を正すためにJavaコミュニティリーダ達が公開した文書「Java is Still Free 」( 日本語版はこちら )で使われた標語です。
そのほかにRainhold氏は、現在開発が進められているJDKの新機能として、次の4つのプロジェクトについてデモを交えて紹介しました。
Project Amber - さまざまなJava言語の拡張
Project Loom - 継続(Continuation)や軽量スレッド(Fiber)の導入
Project Panama - JVMとネイティブコードとのインタファースを最適化する
Project Valhalla - Value Typeやジェネリクスの特殊化の導入
今回のキーノートは、GitHubとのコラボレーションを除くと特に目新しい発表というものはありませんでした。強いて言うならば、Javaのリリースサイクルが早くなったことで機能の向上を継続的に進めていく体制が整い、それが実際に動き出したということでしょうか。そういう意味では、今が大きなターニングポイントであり、堅実な歩みこそがもっとも重要だということを示したと言えるかもしれません。