Javaで日本を幸せにしよう
最初に、日本オラクル株式会社の杉原博茂氏が登場。杉原氏は「Oracleは日本を幸せにするクラウドカンパニー」と宣言し、「Javaにより日本、さらには世界の幸せおよび平和に貢献するという重要な役割を担う」と述べた。
日本は今、少子高齢化、非正規の処遇、働き方改善など、さまざまな課題に直面している。中でもIT人材の不足は深刻であり、2017年には約22万人、2030年には約60万人が不足するとの見込みだ。そういった状況下でOracleは、戦国時代の生き方「百人力」を提唱。1人の開発者が10人分、100人分の力を発揮し、生産性を向上することが必須であると提言する。
日本では2017年のIT製品・サービスへの投資額がオンプレミスでは約21兆円、クラウドでは約2,100億円に上るという試算がある。Javaは1995年に誕生して以来、さまざまなシステムで利用されてきた。クラウド市場が爆発的に拡大した数年前にも、インターネット上で最も検索され、話題になった言語としてトップを獲得し、その座はいまだ揺るがない(TIOBE Programming Community Indexより)。Javaはオンプレミス、クラウドの両方で最も使われている言語と言える。
今年で誕生から22年を数えるJava。最も効率良く活用できるように機能を強化したJava SE 9およびJava EE 8が2017年7月にリリース。さらに、次期バージョンとしてJava SE 10およびJava EE 9も開発が進められている。杉原氏は、「Javaで日本を幸せにするために、今後も開発者のみなさんと一緒に歩んでいきたい」と締めくくった。
Java SEはクラウドでより大きな価値を提供できるように機能を強化
続いて登壇したOracle CorporationのBernard Traversat氏は、最初に、開発者によるJavaへの貢献に対して感謝の言葉を口にした。Javaは、22年間という長い歴史の中で存続を危ぶまれたこともあった。10年前、Oracleによる買収でその懸念は払拭されたが、Javaは決して一企業が所有・開発するテクノロジーではない。Java SEのオープンソース実装であるOpenJDKでは、Oracle以外の企業の開発者が多数プロジェクトリーダーを務めており、多くの企業・開発者が開発に参加している。Javaは、品質とセキュリティ、モダニゼーションとイノベーション、オープン性と透過性、開発者の生産性と互換性、アクティブなエコシステムといった哲学をもとに進化を続けている。
クラウド利用の拡大により、IT業界は大きく変わっている。Javaは、AWSやGoogle App Engineなど主要クラウドで最も多く利用されている言語であり、クラウド上でユーザにさらに大きな価値を提供できるように進化していかなければならない。Traversat氏は今後注力すべきポイントとして、セキュリティ、密度、起動時間、予測性と低レイテンシ、プロファイリングとサービス性、開発者の生産性などを挙げた。また、Dockerと提携し、DockerコンテナとしてJava SEを利用できるようになったと発表した。
Java SE 9では122の機能が追加される。まず、Javaランタイムのモジュール化を可能にするモジュールシステム、Javaプラットフォームとのインタラクション処理を行うjshellに注目したい。また、内部APIのカプセル化、AOT(Ahead Of Time)コンパイルなど、アプリケーションのセキュリティやパフォーマンスの向上につながる機能も追加される予定だ。Java SE 9は、JDK 9のEarly Access版をOpenJDKのサイトからダウンロードできる。
Java SE 9以降については、値型、プリミティブ型のジェネリックスなどを扱うProject Valhalla、JNI(Java Native Interface)に代わり、Java以外のコードとの相互アクセスを容易にするProject Panamaなど多くのプロジェクトが進行している。Traversat氏は、「今後も開発者に必要な機能を提供していくために、ぜひOpenJDKに参加してほしい」と呼びかけた。
基幹系業務アプリケーションにJavaを活用しつつ、新しい流れに対応
マツダ株式会社の吉岡正博氏は、同社においてJava開発にどのように取り組んでいるかを紹介した。マツダでは、自動車の組み立て工場などのライン管理等にJavaを利用しており、その取り組み方は「従来型」と「最近の流れ」に大別される。
ビジネスプロセスをサポートする基幹系の業務アプリケーションの開発は、従来型だ。当然ながら機能要件・非機能要件を満たすことは必須であり、その上でTCOや生産性を追求しなければならない。そのために、共通の開発環境、アーキテクチャ、開発ルール、フレームワークを利用して開発を行っている。基幹系アプリケーションは長期にわたって利用するため、開発言語としては長く使い続けることができ、下位互換性が担保されるJavaが最適と言える。
一方で最近の流れを受け、Strategyパターンベースの開発から脱却し、関数を組み合わせて柔軟なシステムを開発したり、数百ギガバイトのヒープメモリを使って大容量のデータを高速に処理したりといった取り組みを行っている。
吉岡氏は、「現在の取り組みに問題がないわけではない。モジュール化や新しいGCなど、ビッグデータ、AI時代に対応可能な新機能が取り入れられる次期リリースには期待している」と話した。