【レポート】
JavaOne TokyoのDay-0にあたる8日、Peter von der Ahe氏によるテクニカルセッションはJavaのさらなる進化を期待させるものであった。同セッションでは次期JavaプラットフォームであるMustang(Java SE 6)の、さらに次のバージョンとなるDolphin(Java SE 7)について、現在検討中のいくつかの新機能についての紹介が行われた。
|
まず最初に触れられたのがJava言語の背景にある「可読性」「シンプルさ」そして「互換性」の確保という原則である。これは何よりも大切にすべきものであり、Javaの拡張はこの原則のもとで行われてきたということが強調された。
Peter氏は、今後もJava言語にはさらなる拡張が加えられると宣言する一方で、Javaでサポートされる可能性のない機能の代表格として以下のようなものを挙げている。
現実にはこれらの機能のJavaでのサポートを望む声は多い。筆者もJavaOne Tokyoの会場において、Javaはそろそろ(多重継承のサポートなどを含む)言語仕様の大々的な見直しを行うべきではないかという声を耳にしている。Peter氏によれば、これらの機能のサポートについてはいずれも一度は議論の対象となり、その上でサポートするべきではないという結論に至ったという。その最も大きな理由は、冒頭にも挙げられたJavaの理念である「可読性」「シンプルさ」そして「互換性」の維持が困難になるということである。
同氏は、Java言語の拡張はこれらの最も基本的な理念を守った上で行われなければならないと前置きした上で、現時点でサポートが検討されているいくつかの機能を紹介した。
まず第一に挙げられたのが、言語レベルでのXMLのサポートである。JavaでXMLを扱う方法としては、歴史的にはまず最初にDOMやSAXなどといったAPIがあった。これらはXMLを解析するためのコードをJavaに埋め込むという手法であり、Javaコード中でXMLを直接使用できるわけではない。それに対してJDOMやJAXBといったAPIが開発された。JDOMはDOMベースのAPIで、よりXMLに近い形式で解析コードを記述できるようになっている。JAXBはXMLをJavaオブジェクトにバインディングするためのAPIで、解析のコードをJavaプログラム中に埋め込む必要はないが、XML Schemaが必須となる。
次世代のJavaではさらに直接的に、XML文書をできるだけそのままの形でJavaコードに埋め込めるように、言語レベルのサポートを追加するという話である。具体的なアイデアとしては、XML要素を扱うためのjava.lang.XMLというようなクラスの追加が検討されているという。既存のクラスの中では、java.lang.Stringクラスに対して"..."という形で文字列を扱えるという特例が認められてる。java.lang.XMLの場合もそれと同様に<...>という形式を許可することで、Javaコード中で直接タグを記述できるようにする。
今回のセッションでは、このアイデアの最新の情報としてjava.lang.XMLクラスをはじめとしたいくつかのクラスについて、具体的なコードの例が公開された。例えばjava.lang.XMLクラスについてはリスト.3のようなものである。
この機能についてはDolphinにおいて追加される予定になっている。ただし実装のためには多くの課題が残されており、今回公表された内容もまだ検討中の段階であるという。
言語レベルの新機能としては、XMLのサポート以外に次のようなものについても言及された。
クロージャの導入については、ライブラリの強化や独自の制御構造が定義できるなどといったメリットが期待できる。Modularityについては、パッケージをまとめて扱うためのsuper packageや、パッケージに対するインタフェースであるpackage interfaceなどが例として挙げられていた。ただし、これらの機能もまだ検討中の段階である。
Javaプラットフォームとしての新機能では、JVMのバイトコードを拡張してJava以外の言語をサポートする予定があるという。ここでPeter氏が強調したのが「Javaプラットフォーム != Java言語」ということであり、Java言語は当然Javaプラットフォーム上で動作するが、同じプラットフォームでJava以外の言語が動作するようになることは歓迎するべきだと述べた。具体例としてはGroovyやJythonなどが挙げられるが、現段階ではあくまでもインタプリタが既存のJVM上で動作するというレベルである。将来的にはJavaプラットフォーム上での動的言語の動作をサポートするために、JVMに新しいinvoke命令の追加が計画されているという。
このセッションで紹介された新機能はあくまでも全てアイデアのひとつであり、具体的な仕様や実装方法を決めるのはまだ先だという。ただし、Mustangの開発に見られるように、Sunは新しいJavaプラットフォームの開発にコミュニティや個人の開発者が参加できる機会を設けている。Mustang以降のJavaついてもいずれJCPなどによって仕様の策定が開始されると思うが、新しいアイデアのある人は積極的に参加してみるといいだろう。
|
| リリースまで1年、Java SE 6"Mustang"の概要を一足早く把握する [2005/8/16] |
| 千葉工大 東京スカイツリータウンキャンパスがオープン! - 新型ロボも登場 [19:00 5/23] |
| 産総研、変性タンパク質の活性を回復させる有機ナノチューブゲルを開発 [18:30 5/23] |
| NIMS、空気中の物質を感知して発光するフィルムを開発 [18:29 5/23] |
| 日本NI、最大6.6GHzでRF信号ルーティングが可能なスイッチモジュールを発表 [18:26 5/23] |
| TI、SPICEモデル付きのSAR ADCを発表 [18:24 5/23] |
|
白か黒か? 『劇場版ポケットモンスター ベストウイッシュ』、7月12日放送 [00:47 5/24] ホビー |
|
TVアニメ『Fate/Zero』、第21話「双輪の騎士」の先行場面カットを紹介 [00:16 5/24] ホビー |
|
アニメ「夏目友人帳」展覧会の開催決定、主題歌集発売で [00:00 5/24] ホビー |
|
[ポケットモンスター]人気投票で放送作品を決定 異例の試み [00:00 5/24] ホビー |
|
【コラム】Windowsスマートチューニング 第188回 Vista/7編: タスクスケジューラでリマインダー通知を行う [23:07 5/23] パソコン |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。