2017年のJavaとこれからのJavaの話

普段は主にTips系の記事を投稿していますが、せっかくのAdvent Calendarなので、2017年のJavaとこれからのJavaの話をします。

## 2017年のJava
### KotlinがAndroidアプリの公式開発言語に認定
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">You&#39;ve been waiting for this: Google just announced that Kotlin has become a first-class language on Android!<a href="https://t.co/4OMODKPIy7">https://t.co/4OMODKPIy7</a> <a href="https://t.co/M9IEYmfO8s">pic.twitter.com/M9IEYmfO8s</a></p>&mdash; Kotlin (@kotlin) <a href="https://twitter.com/kotlin/status/864912772487942148?ref_src=twsrc%5Etfw">2017年5月17日</a></blockquote>

2017年5月17日、JVM言語の一つである**Kotlin**が、Androidアプリの公式開発言語に選ばれました。[^1]
Kotlinは「100% interoperable with Java and Android」とうたっているだけあってJavaとの親和性が高く、Androidに限らず既存のJavaプロジェクトへの導入も容易なのが特徴です。

#### 関連リンク
* [Android開発を受注したからKotlinをガッツリ使ってみたら最高だった](https://qiita.com/omochimetaru/items/98e015b0b694dd97f323)
* [JavaプログラマのためのKotlin入門](https://qiita.com/koher/items/bcc58c01c6ff2ece658f)

### Java EEがOracleからEclipse Foundationに移管
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Hello there, <a href="https://twitter.com/EclipseFdn?ref_src=twsrc%5Etfw">@EclipseFdn</a> 😉</p>&mdash; Java EE Platform (@Java_EE) <a href="https://twitter.com/Java_EE/status/907700177267433472?ref_src=twsrc%5Etfw">2017年9月12日</a></blockquote>

2017年9月12日、Oracleは**Java EE**を**Eclipse Foundation**に移管することを発表しました。[^2]
昨今のJava EEは仕様策定の動きが停滞化していましたが、今後はコミュニティへ委ねる形になります。

#### 関連リンク
* [Java EEの策定はEclipse Foundationへ、オラクルからの移管を発表 － Publickey](http://www.publickey1.jp/blog/17/java_ee_eclipse_foundation.html)
* [Oracle、Java EEの移管先にEclipse Foundationを選ぶ](https://www.infoq.com/jp/news/2017/09/JavaEEtoEclipse)

### Java 9がリリース
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Java 9 is Out!!!!<a href="https://twitter.com/hashtag/JDK9?src=hash&amp;ref_src=twsrc%5Etfw">#JDK9</a> <a href="https://twitter.com/hashtag/Java9?src=hash&amp;ref_src=twsrc%5Etfw">#Java9</a> <a href="https://twitter.com/hashtag/Java?src=hash&amp;ref_src=twsrc%5Etfw">#Java</a><a href="https://t.co/VE7BI4KPlK">https://t.co/VE7BI4KPlK</a> <a href="https://t.co/kOdNiLJ1ky">pic.twitter.com/kOdNiLJ1ky</a></p>&mdash; Java (@java) <a href="https://twitter.com/java/status/910944824353628160?ref_src=twsrc%5Etfw">2017年9月21日</a></blockquote>

2017年9月21日、**Java 9**（**Java SE 9**）がリリースされました。[^3]
Javaにおけるメジャーアップデートは、2014年3月18日にリリースされたJava 8以来、3年半ぶりとなります。
Java 9には、モジュールシステムやJShellなど、Javaにとって大きなアップデートが含まれています。
また、コレクション（List、Set、Map）、Optional、Streamなどの既存APIも強化されました。

#### 関連リンク
* [オラクル、Java SE 9とJava EE 8を発表 | Oracle 日本](https://www.oracle.com/jp/corporate/pressrelease/jp20170925-2.html)
* [今のうちに知っておきたい、かゆい所に手が届くJava9の新機能7選](https://qiita.com/kashira2339/items/ce99d370eabbf2d66ded)
* [Java9の新機能とサンプルコード](https://qiita.com/mrdShinse/items/76d5f7dfe925640b3766)

### Java EE 8がリリース
<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Java EE 8 is Final and GlassFish 5.0 is Released!<a href="https://t.co/vOpPHkcPhd">https://t.co/vOpPHkcPhd</a><a href="https://twitter.com/hashtag/JavaEE?src=hash&amp;ref_src=twsrc%5Etfw">#JavaEE</a> <a href="https://twitter.com/hashtag/GlassFish?src=hash&amp;ref_src=twsrc%5Etfw">#GlassFish</a></p>&mdash; Java EE Platform (@Java_EE) <a href="https://twitter.com/Java_EE/status/910943340748718080?ref_src=twsrc%5Etfw">2017年9月21日</a></blockquote>

2017年9月21日、Java SE 9と同時に**Java EE 8**もリリースされました。[^4]

#### 関連リンク
* [オラクル、Java SE 9とJava EE 8を発表 | Oracle 日本](https://www.oracle.com/jp/corporate/pressrelease/jp20170925-2.html)
* [Java EE 8 新機能まとめ](https://qiita.com/SightSeekerTw/items/d4e597b81e3678de0ef0)

## これからのJava
### リリースモデルの変更
Java 9から、Javaのリリース形態はLTSモデルに移行しました。[^5]
今後、JDKは半年ごとにリリースされ、3年ごとにLTSバージョンが提供される予定となっています。
それに伴い、バージョン表記もこれまでのような桁上り形式ではなく、リリース次期の年と月をとって`yy.M`形式になる……はずだったのですが、次期バージョンは従来通り**Java 10**になるのだそうです（不評だったのでしょうか）。[^6][^7]
また、今後OpenJDKとOracle JDKは徐々に統合されてゆき、2018年後半には差分がなくなる予定だそうです。

[^1]: [Kotlin on Android. Now official | Kotlin Blog](https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/)
[^2]: [Opening Up Java EE - An Update | Oracle The Aquarium Blog](https://blogs.oracle.com/theaquarium/opening-up-ee-update)
[^3]: [Java SE - Downloads | Oracle Technology Network | Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
[^4]: [Java EE 8 and GlassFish 5.0 Released! | Oracle The Aquarium Blog](https://blogs.oracle.com/theaquarium/java-ee-8-is-final-and-glassfish-50-is-released)
[^5]: [Faster and Easier Use and Redistribution of Java SE | Oracle Java Platform Group, Product Management Blog](https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se)
[^6]: [Oracle Java SE Support Roadmap](http://www.oracle.com/technetwork/jp/java/eol-135779.html)
[^7]: [JJUG CCC 2017 Fallに参加した話 #jjug_ccc - ムニエルブログ](http://munieru.hatenablog.com/entry/2017/11/18/235338)