新春特別企画

2019年のJava

この記事を読むのに必要な時間:およそ 4 分

OpenJDK 12について

2019年は,Java 12,13の2つのバージョンのリリースが予定されています。とくに直近のJava 12については,正式リリース日(米国時間2019年3月19日)や新機能もWebページ上で公開されています。 現時点で予定されている新機能は,下記の8つです。

開発関連

JVM関連

GC関連

ツール関連

とくに開発者が最初に押さえておきたい新機能は,JEP 325のswitch構文の拡張です。switch構文内において,local変数を定義可能になっている他, switch構文の処理結果を新しい変数に代入するような構文が追加されています。これにより,今まで記述できなかった書き方ができるようになっています。

また,下記の例に記載しているように,switch文の演算子として「->(arrow operator)⁠が利用できるようになっています。 詳細はJEP 325をご参照ください。

int numLetters = switch (day) {
    case MONDAY, FRIDAY, SUNDAY -> 6;
    case TUESDAY                -> 7;
    case THURSDAY, SATURDAY     -> 8;
    case WEDNESDAY              -> 9;
};

それ以外で筆者が注目しているのは,JEP 310(JDK 10)⁠JEP 341(JDK 11)など,Class Data Sharing(CDS)機能に対する改善です。Function as a ServiceやDockerなどのコンテナ環境で,Javaアプリケーションを高速に起動したいニーズがあります。これを改善するためにJDK 8u40以降でCDSに対していくつか改善されています。

実際に,JRubyのアプリケーションで30%高速に起動できるようになったというデータがある他,アプリケーションによっては 50%の高速化も可能です。Javaの起動時間が遅いと感じる方は,ぜひ,Class Data Sharingをお試しください。

その他,Java VMやGCでも改良が入っているため,コンテナ環境でJavaを扱う筆者は,OpenJDK 12 のリリースを心待ちにしています。

最後に

時代の流れはめまぐるしく,日々新しいテクノロジやフレームワークが生まれてきています。1年前は新しかった技術が1年後はあたりまえになったり,もしくは廃れている場合もあります。Javaのエンジニアとして今まで蓄えてきたノウハウや技術は,いつ古くなったり時代遅れになるかもしれません。

今の時代,勉強をやめた時点でエンジニアとしての人生が終わるといっても過言ではありません。現在の状況に満足せずに,エンジニアとして成長していくためにも,つねに業界の動向をウォッチし,新しいことにもチャレンジしながらJavaのエンジニアとして成長していきましょう!!

結果として,日々成長するエンジニアや,より優秀なエンジニアが,より良い環境で,より良い報酬を得て幸せに働ける日が来ることを願っています。

著者プロフィール

寺田佳央(てらだよしお)

Microsoft Corporation

シニア・クラウド・デベロッパー・アドボケイト

 

2001年サン・マイクロシステムズ株式会社に入社し,GlassFishエバンジェリストとして活動。

2010年,OracleのSun買収後,日本オラクル株式会社でJavaエバンジェリストとして活動。Javaの最新技術情報の提供や,Java コミュニティ活動の活性化を,日本Javaユーザ・グループ(JJUG)とともに行ってきた。

2015年7月,日本マイクロソフト株式会社に移籍し,移籍後もなお,Javaエバンジェリストとして,MicrosoftプラットフォームにおけるJavaの利用促進・啓蒙活動を実施中。

2018年7月より,Microsoft Corporationで日本人初のクラウド・デベロッパー・アドボケイトとして活動を開始。

2016年7月,日本人で2人目となるJava Championに就任。JJUG幹事の一員でもある。

Blog:https://yoshio3.com

GitHub:yoshioterada

Facebook:yoshio.terada

Twitter:@yoshioterada