Sunが過去最大と喧伝する「J2SE 5.0」の主な強化ポイントは?

Sunが「過去最大の機能強化」と喧伝する「J2SE 5.0」のベータ2がJavaOne 2004 San Franciscoで発表された。バージョンアップの主なポイントは、Java言語仕様、コンポーネント追加、JVM強化などだ。順に見ていこう。

» 2004年06月30日 09時50分 公開
[塩田紳二,ITmedia]

 米国時間の6月28日、Sun Microsystemsが「過去最大の機能強化」と喧伝する「J2SE 5.0」(コードネーム:Project Tiger)のベータ2が「JavaOne 2004 San Francisco」で発表された。

 現在のJavaは、デスクトップなどで利用するJ2SE(Java 2 Standard Edition)やサーバ側で使う機能を含むJ2EE(同 Enterprise Editon)などに分かれているが、基本になるのはJ2SEだ。現在リリースされている最新版は、J2SE 1.4と呼ばれるもの。Javaは、最初1.0、1.1とバージョンアップし、1.2のときに「Java2」という名称に変われ、それ以降はJava2 1.3、1.4と進化してきた。つまり、Javaのメジャーバージョンは、小数点以下の1桁が表していたということだ。

 今度のバージョンアップもこのパターンからすれば「1.5」となるのだろうが、1.3、1.4に比べてかなり大きなものになる。そのためか、正式リリースは、J2SE 5.0となる予定。つまり、小数点以下はマイナーバージョンアップを意味するようにバージョン番号をふり直すことにしたのである。

 このJ2SE 5.0の開発プロジェクトは、「Tiger」と呼ばれている。慣例としてプロジェクトネームには生物の名前を付けることになっている。ちなみに、偶然、Appleが同じモスコーニセンターでデベロッパーカンファレンス「WWDC2004」を開催しているのだが、そこでプレビューされる次期MacOSのコードネームもTigerだ。

 さて、このJ2SE 5.0だが、大きな変更点としては、

  • Java言語仕様
  • コンポーネント追加
  • JVM強化

 といったものがある。

Java言語仕様の変更

 言語仕様の変更は、ループ記述の簡略化や列挙型、Generic Type、可変長引数などがある。

 細かい説明は省くが、全体としては、記述をより簡単に、より安全なプログラムを記述できるようにするための変更である。

 Javaは、ポインタを扱わないため、ある程度の安全性が備わっている(勝手にいろいろなメモリを読み書きしない、間違ったメモリをアクセスしない)といわれていた。しかし、コンパイル段階で安全性をチェックするために多少繁雑な表記方法が導入されていた。プログラマーから見ると、この繁雑な記述がストレスとして感じられており、今回の言語仕様は、この部分を大きく改良したものになる。

 例えば、従来は、オブジェクトを複数格納した「コレクション」の要素1つひとつをアクセスするのに繁雑な記述が必要だったが、それをすっきりとした形で記述できるようになった。

コンポーネント追加

 Javaには、利用者側からのさまざまな要望をまとめる方法としてJSR(Java Specification Request)というやり方がある。さまざまな要望は、このJSRで番号を付けられて管理され、それぞれのグループやコミュニティー全体で議論していく。Javaは、その中で成熟し、導入に適当と思われるものが取り込まれていくわけだ。前述の言語仕様の変更もそれぞれJSRとして管理されていたもの。

 今回は、JSRにあった以下のコンポーネントが採用され、Java標準の構成要素となった(既存のものの改良を含む)。

  • JSR 003 Java Management Extensions (JMX) Specification
  • JSR 013 Decimal Arithmetic Enhancement
  • JSR 028 Java SASL Specification
  • JSR 114 JDBC Rowset Implementations
  • JSR 133 Java Memory Model and Thread Specification Revision
  • JSR 160 Java Management Extensions (JMX) Remote API 1.0
  • JSR 163 Java Platform Profiling Architecture
  • JSR 166 Concurrency Utilities
  • JSR 200 Network Transfer Format for Java Archives
  • JSR 204 Unicode Supplementary Character Support
  • JSR 206 Java API for XML Processing (JAXP) 1.3

JVMの強化

 Javaは、コンパイラで、仮想コードであるバイトコードを生成、これをJava Vertual Machine(JVM)で実行する。今回のJ2SE 5.0では、JVMの改良および、機能強化が行われた。改良点としては、メモリフットプリントの改善と起動時間の短縮などがある。

 また、JVMの動作を監視し管理するための機能や、自己診断、実行されるバイトコードプログラムのプロファイリング(動作経過や処理時間の測定)についての機能も強化されている。

そのほか

 そのほかJavaのグラフィック機能(Java2D)が、OpenGL経由で、システムが持つグラフィックアクセラレーション機能を利用できるように改良された。これにより、高速なグラフィックサブシステムを持つ環境で、より高速な描画が可能になる。

 J2SE 5.0は、ひさびさのメジャーアップデートだが、文法的な変更など、大きな変化となる。

 JavaOneカンファレンスでジョン・ファウラー執行副社長にインタビューする機会があり、「Sunは、.NETと同等な環境を独自に提供しようとしているのか」と聞いたところ、彼の答えは「イエス」だった。

 マイクロソフトと和解して提携はしたものの、.NET(C#)とJavaは、依然として競合していることに変わりない。今回のアップデートは、SunがJavaでWebサービス環境を構築していくためのバージョンアップでもあるわけだ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ