[Analysis]

10周年のJava。これからどう変わる?

2005/07/05

duke.gif

 2005年のJavaOneで10歳の誕生日を祝ったJava。ポインタが不要なためプログラミングが容易で、スタティック型を採用したためコンパイル時にバグを発見しやすく、インタプリタとしても高速といった言語仕様がエンジニアの強い支持を得て、この10年、システム開発における主力言語の地位を得るほどに急速な普及をみた。現在は、コア仕様であるJ2SEのほか、エンタープライズ向けのJ2EE、組み込み向けのJ2MEなど、用途別に複数の仕様へ発展している。

 Javaはこの10年で完成度を高めてきた。今後、これ以上の文法の変更や命令の追加といった巨大な変化はないと考えていいと思う。しかし、変化そのものを回避するわけではないだろう。今後はどのような変化(進化と言い換えてもいい)が考えられるのだろうか?

 1つはJavaVMの進化だ。動作中のJavaVMの内部動作を詳細にモニタし、安全確実で効率のよい運用を支援する。J2SEの次世代バージョンであるJava SE 6では、こうしたJavaVMの強化がうたわれている。さらに次のバージョンでは、JavaVM上で複数言語やダイナミック型言語のサポートが検討されている。Javaの生みの親であるジェームズ・ゴスリング氏は、「私はダイナミック型言語が大好きだが、Javaはシンプルさや高速性を重視してスタティック型言語として設計した」とJavaOneのインタビューで答えている。もしダイナミック言語がサポートされるとなれば、JavaVMの内部構造は大きく変わるかもしれない。

 もう1つは、すでに多くの場で語られていることだが、アスペクト指向とPojoの採用だ。プログラミングモデルにアスペクト指向を取り入れ、さらに、いままで複雑だと敬遠されていたEnterprise JavaBeansのプログラミングPojoを採用することにより、通常のJavaBeansを作るのと変わらないほどのシンプルさを実現できる。Javaでの開発はより簡単に(Ease of Development)なる。

 JavaOneのゼネラルセッションでは、次世代DVD規格の1つであるブルーレイディスク(Blu-ray Disk)機のインタラクティブ機能を実装する言語としてJavaを採用することが発表された。このことからもうかがえるように、今後10年のJavaの変化で最も大きいものは、おそらく、言語そのものではなく、稼働環境の広がりだろう。

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)