SSブログ

訳者まえがき『新世代Javaプログラミングガイド』 [訳者まえがき・あとがき]


プログラミング言語Javaが1995年に登場してから、25年近くの年月が経過しました。私自身がJDK 1.02で初めてJavaに触れたのが1996年夏であり、それ以来、Javaは大きく発展を遂げてきました。私自身が経験した言語仕様の大きな変更は以下の通りです。
  • Java 1.1でのネストしたクラスとインタフェース
  • Java 5でのジェネリックス、enum、アノテーション、拡張for文、可変長パラメータ
  • Java 8でのラムダ式、インタフェースでのdefaultのメソッドとstaticのメソッド
Java 9以降は、大きな言語仕様の変更はありませんが、細かな変更が行われています。この本は、Java 10から13までの変更、およびAmberプロジェクトで行われている言語仕様の変更を説明しています。この本で解説されている言語仕様の変更は、以下の通りです。
  • var(第1章「ローカル変数での型推論」と第5章「ラムダパラメータのローカル変数の構文」)
  • switch式(プレビュー言語機能)(第11章「switch式」)
  • テキストブロック(プレビュー言語機能)(第15章「テキストブロック」)
  • record(Amberプロジェクト)(第14章「データクラスとその利用方法」)
  • enumの拡張(Amberプロジェクト)(第13章「Amberプロジェクトの拡張enum型」)
  • パターンマッチング(Amberプロジェクト)(第17章「パターンマッチング」)
switch式はC言語から受け継いできた構文から脱却して、新たな構文を提供します。テキストブロックは、文字列リテラルの新たな書き方を提供します。パターンマッチングは、型検査と型キャストの冗長さを削減する機能です。

switch式とテキストブロック(text block)は、Java 13にはプレビュー言語機能(11.6節)として入っているので、オプションのフラグを指定する必要はありますが試せます。switch式は、Java 14で正式な機能としてリリースされる予定です。

言語仕様の変更以外にも、GCの改善や見落としがちなCDS(Class Data Sharing)をベースとした起動時間の短縮やメモリ量の削減などのさまざまな改善点が解説されており、Java 10以降の変更の概要を学べます。

原著と日本語版の違いについて

言語仕様の変更部分については、この本の原著が執筆された時点と、日本語への翻訳時点では異なっている部分が多数あります。そのため、日本語版では、必要な修正、削除、追加を私 自身の判断で行っています。また、原著はJava 12まででしたが、日本語版では必要に応じてJava 13および14へ言及したり、訳注を付けたりしています。

コメント(0)