新たな歴史の1ページ~Oracle Code One 2018現地レポート

Oracle Code One 2018】堅実な一歩がJavaの進化を促進する

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氏
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, VP of Field Service, Matthew McCllough氏
GitHub, Data Pipeline Engineering Manager, Rafer Hazen氏
GitHub, Data Pipeline Engineering Manager, Rafer Hazen氏

Project Skaraは、JDKのSCM(Source Code Management)およびコードレビューについて、新しいシステムへの移行を検証するプロジェクトであり、GitHubもその最有力候補として挙げられており、実際にGitHub上にリポジトリが作成されています。両氏は、Project Skaraを進める上で次の4つの過程があったことを説明しました。

  1. 開発コミュニティの構築
  2. GitHub ❤ Java
  3. 努力をサポートするツール
  4. 行動を起こす

とくに開発コミュニティの構築について、McCllough氏は「"1"という数字が重要な意味を持つ」と強調しています。"1"の持つ意味というのは、具体的には次のようなものです。

  • 1つのバグフィックス
  • 1パーセントの高速化
  • 1つの手作業の削減
  • 1つの機能追加
  • 1つの質疑応答
  • 1人の新しいコントリビュータ

すなわち、小さな一歩が成功につながる鍵になるということ表しています。現在のOpenJDKプロジェクトでは、ソースコード管理はMercurial、レビューはメーリングリストで行われています。これを別のモダンなシステムに移行したいという要望は以前からありましたが、特にリポジトリサイズの大きさが課題であり、容易ではないとされていました。GitHubとのコラボレーションは、その困難な作業への一歩を踏み出したといことになります。

GitHub loves Java
GitHub loves Java

OracleはこれからもJava開発を推進していく

Project Skaraの発足は、前述のようにOracleによるJavaのサポート方針の変更も少なからず影響していると思われます。Javaの開発はOracleに依存することなくコミュニティによって牽引していく必要があり、そのためのプラットフォームの充実が求められているからです。

一方で、OracleはこれからもJavaの開発をサポートしていく方針を強調しています。方針を変更したのは商用サポートの部分であり、開発自体はOpenJDKプロジェクトの一員として引き続き中心的な存在であり続けるでしょう。Saab氏はそれをを改めて強調した上で、Javaをよりオープンにしていくという昨年の発表の通り、ZGCやFlight Recorder、Mission Controlなどの独自技術をオープンソース化したことを説明しました。

Javaをよりオープンに
Javaをよりオープンに

「Javaは今も無償です」

キーノートの後半には、OracleにおけるJava Platform GroupのChief ArhitectであるMark Rainhold氏が登壇し、現在開発が進められているJavaの新機能などについて紹介しました。Rainhold氏は長年に渡ってJava SEのスペックリードを努めてきた中心的人物です。

Oracle, Chief Arhitect Java Platform Group, Mark Rainhold氏
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のリリースサイクルが早くなったことで機能の向上を継続的に進めていく体制が整い、それが実際に動き出したということでしょうか。そういう意味では、今が大きなターニングポイントであり、堅実な歩みこそがもっとも重要だということを示したと言えるかもしれません。

おすすめ記事

記事・ニュース一覧