![OpenWorldとCode Oneの看板が並ぶ](http://cz-cdn.shoeisha.jp/static/images/article/11243/11243_02.png)
本記事のレポーター
- 坂本 統(NTTコムウェア)
- 二ノ方 一生(NTTデータ)
- 髙雄 慎二(NTT)
Oracle Code Oneとは
Oracle Code One(以下 Code One)は、Oracle社(以下Oracle)によって毎年サンフランシスコで開催される、Java関連では最大規模の国際カンファレンスです。昨年までJavaOneと呼ばれており、1996年に当時のSun Microsystemsによって始められて以来、22年もの歴史があります。現在は、さらに大規模なOracle Open Worldと共催となっています。いずれも参加者数は公開されていませんが、一説には合計で5~6万人規模、Code One(JavaOne)だけでも例年1万人近い規模の人々が参加するとされる非常に大きなイベントです。
テーマは多岐にわたりますが、今年は特にクラウド化などの動きに対応したものが多くありました。たとえば全セッション618件に対してキーワードで検索してヒットした件数を挙げると、Cloud Native 316件、 Microservices 134件、 Serverless 145件、 Docker 40件、 Kubernetes 52件、 他にはMachine Learning 59件などが見られました。
その中心にはやはりJavaの存在感がありますが、近年、クラウド上で様々なプログラム言語が使われる傾向と、Javaプログラムを実行する「Java VM」が多言語対応を目指していることなどを背景に、今回はついに名称からJavaがなくなり、一つの新しい時代への移り変わりも感じさせる年となりました。
各日程は、午前中から夕方にかけて、各発表参加者によるセッションが多数行われ、初日から3日目までは夕方4時から6時にかけてキーノートが、初日と2日目はさらにその後もBOF(Birds of a feather)セッションが9時過ぎまで行われる密度の高いものでした。
以下では、キーノートや各セッションの内容をもとに、カンファレンスで取り上げられた主要なトピックについてレポートします。
![今年もちゃんといたJavaキャラクター「Duke」](http://cz-cdn.shoeisha.jp/static/images/article/11243/11243_03.png)
Keynote
期間中3回開催されたKeynoteの中でも、初日に行われたKeynoteではJavaのチーフアーキテクトを務めるMark Reinhold氏が登壇しJava SEの最近の動向と今後について語りました。OracleによるこれまでJavaコミュニティに対する継続的な支援やオープンソース化へ取り組みも示され、今後もOracleとしてJavaエコシステムの発展をサポートしていく姿勢を感じることができました。
![Oracleによるオープンソース化への取り組み](http://cz-cdn.shoeisha.jp/static/images/article/11243/11243_04.png)
また、Javaをとりまく環境における2つの大きな変化についても語られました。一つはGoやNode.jsなどの有力なプラットフォームが新機能を半年や一年など短い間隔でリリースするようになったこと、もう一つはアプリケーションが、クラウド上やDockerイメージなど様々な方法でデプロイされるようになったことです。そのため、Javaも新しい環境に適応して変化する必要があったとのことです。
この記事をお読みの方の多くはご存知と思いますが、Oracleは昨年9月にJava のリリースサイクルの変更を発表しました。発表後にリリースされたJDK 9から、6か月ごとに新機能を含むOpenJDKバイナリが "Feature release"として提供されるようになりました。
![Mark Reinhold氏によるリリースサイクルの説明(同Keynoteの動画より)](http://cz-cdn.shoeisha.jp/static/images/article/11243/11243_05.jpg)
Mark Reinhold氏によるリリースサイクルの説明(同Keynoteの動画より)
Long Term Support(以下LTS)版として位置づけられるJava 11は、JDKベンダにより対応が異なりますが、OracleJDKについては有償で長期サポートが提供されます。Oracle社サイトからOracle JDKは引き続き無償でダウンロードできますが、それに適用されるOracle Technology Network License Agreement for Oracle Java SEの使用条件に注意して利用する必要があります。
なお、前述のオープンソース化への取り組みにより、これまで商用版でのみ提供された機能群がOpenJDKに統合され、JDK 11からOpenJDKとOracle JDKは機能的にはほぼ同じとなりました。また、OpenJDKは各Linuxディストリビュータやクラウドベンダなどによりビルド、バイナリ配信されています。
今後の"Feature release"は、過去のリリースのような破壊的なものでは無く、また、LTSでない版は試験版でもないなど、新しいリリースモデルに対してありがちな誤解に注意を呼びかけていました。
![新しいリリースモデルに対する5つの誤解](http://cz-cdn.shoeisha.jp/static/images/article/11243/11243_06.png)
新しいリリースモデルに対する5つの誤解
もう一つの大きな変化であるクラウド上やDockerへの対応については、このあとのセッション紹介の中で詳しく取り上げたいと思います。
Keynoteではこのほか、モジュール化などのJava9から11までの変化や、Amber、Loom、Panama、Valhallaといった新しいプロジェクトなどについて語られました。