ニュース
» 2007年05月22日 06時42分 公開

オープンソース化に満足?――Javaの父ゴスリング氏に聞く(後編)(1/2 ページ)

Java言語の優位性、JVMへの課題、次世代の言語には何が必要なのか? ゴスリング氏は、プログラム言語に関するさまざまな見解を、インタビューで語った。

[Darryl K. Taft,eWEEK]
eWEEK

 Java言語を発明したジェームズ・ゴスリング氏は、Sun Microsystemsの副社長でフェローでもある。同氏は2007 JavaOneでeWEEKのシニアエディター、ダリル・K・タフトの取材に応え、Javaオープンソース化、Javaプラットフォームの新たな方向性とプログラミング全般、新しいSunの技術とMicrosoftとの競争について語った。前編に続き、今回は、インタビューの後半をお届けする(関連記事)

―― JVM(Java Virtual Machine)では、次に何が登場するのですか。JVMは基本的に32ビットであり、Java言語が中心です。JVMのアップグレードでは、Sunは何をしなければならないのですか? 大幅な改良が必要なのでしょうか?

ゴスリング 改良に向けた計画はたくさんあります。32ビットだと言われましたが、実際にはずっと以前から32ビットと64ビットの両方に対応しています。大量のメモリを搭載したマシンもサポートしています。JVMのGC(ガベージコレクション)アルゴリズムでは、最大500Gバイトのメモリまで認可しています。現実には、500Gバイトのメモリを搭載したマシンを使っている人は多くありませんが、Sunは以前からそういったマシンを提供してきました。

 われわれは現在、GCで2Tバイトまで認可するかどうかで悩んでいます。最適化に関しても、多くの作業を進めています。現在、Intelプロセッサで最大限のパフォーマンスを実現するために、特殊な問題に狙いを絞った最適化に向けた作業をIntelと共同で進めています。

 ほかの言語で特殊な問題に対応するという点について言えば、以前からJava VMを目標としている言語はたくさんあり、実際、このアプローチは広範な言語でうまくいっています。しかしそれが非常に難しい言語もあります。例えば、CやC++がそうです。そういったことをやろうとすると、大きなセキュリティホールができてしまうのが最大の理由です。それはCやC++が抱えている問題の一部です。これらの言語の裸のポインタが問題なのです。

―― C#はどうですか?

ゴスリング C#は風変わりな言語です。というのも、C#のコードには保護された部分とそうでない部分、管理された部分とそうでない部分があるからです。C#の管理コードは基本的に、Javaのマニュアルからカット&ペーストしたようなものです。しかしC#は、非管理コードを極めて多用しています。われわれは基本的に、裸のポインタを使用するC#の非管理コードというのは、愚かなアイデアだと考えています。しかし一部のスクリプティング言語にも、メソッド呼び出しに関して改善すべき問題があります。われわれは現在、PythonとRubyでメソッドのディスパッチを高速化するためにバイトコードを追加するプロジェクトを進めています。

―― Microsoftは最近、DLR(Dynamic Language Runtime)を発表するとともに、同社のCLR(Common Language Runtime)の移植性に関する発表も行いました。これにより、.NETは移植性という点でJavaに並ぶかもしれません。同社が実際にそれを実現しつつあると思いますか?

ゴスリング CLRはほかのプラットフォームに移植されています。しかし重要なのはCLRではありません。ほかのプラットフォーム上でCLRを動作できるようにするというのは、技術的にそれほど大したことではありません。これは基本的にマーケティング戦略なのです。その理由は、開発者に見えるのは言語の一部であり、それが仮想マシンにマッピングされるということです。それを実行するのがJVMやCLRなのです。しかし言語のもう1つの要素として膨大なライブラリがあります。確かにMicrosoftはCLRを移植すると発表しました。しかし、.NETの世界で利用する巨大なライブラリの1つがExcelです。Wordもそうです。では、彼らはWordをLinuxなどに移植するつもりなのでしょうか。そんな話は聞いたことがありません。

 つまり、Microsoft .NET APIのスタック全体のうちのどれだけの部分が、ほかのプラットフォームで利用できるようになるのかということです。それを考えれば、.NETアプリケーションのうちのどれだけの部分が、ほかのプラットフォーム上で実際に動作するようになるのか、だいたい見当がつきます。

―― 動的メソッドのディスパッチについて言及されましたが、これはMicrosoftがDLRでやっていることと似ているのですか。彼らも、DLRでPythonやRubyなどの動的言語をサポートしようとしています。

ゴスリング 別々のランタイムが必要だとは思いません。というよりも、それはまずいアイデアです。人々は広範なプラットフォーム間での相互運用性を強く求めているからです。Java VM上で動作する素晴らしいRubyのインプリメンテーションが既に存在します。現時点ではまだ完全なものではありませんが、JRubyからバイトコードに変換するコンパイラが存在するプラットフォームであれば、ネイティブのRubyよりもかなり高速に動作します。それに加えて、膨大なJava APIにアクセスできるようになります。ほかの各種のスクリプティング技術をJavaプラットフォーム上で使用するのであれば、JavaScriptとRhinoエンジンを組み合わせることができます。共通のVM上に置かれたバージョンを使用する場合は、RubyとJavaScriptを連携することができます。

 これらの言語の間で共通のVMがあれば、非常に強力な相乗効果を実現できるわけです。

―― Sunの動的言語を使ってJavaFX Scriptのプログラミングができるというわけですね。

ゴスリング JavaFX Scriptは面白いスクリプティング言語です。というのも、JVMを念頭に置いて設計されたからです。つまりJVM以外の支援メカニズムを必要としないのです。現在のインプリメンテーションはプレビューリリースの段階なので、この点に関してはまだ不完全な部分もありますが、開発中のコンパイラは素晴らしいパフォーマンスを実現するでしょう。ですが重要なのはパフォーマンスよりも、そのサイズです。

―― では、JavaFX Scriptはブラウザを通じて配布されるのですか?

ゴスリング そうです。JavaFX Scriptはアプレットのようなものを生成します。

―― RubyとRuby on Railsは、「クールな」プログラマーにとってデフォルト言語になりつつある感がありますが、この人気をどんなふうにみていますか?

ゴスリング わたし自身は、Ruby環境で動作するソフトウェアを書くことはめったにありません。ですから個人的には、少し不思議な感じがします。Rubyで輪郭検出アルゴリズムや画像を渦巻き化するアルゴリズムを作成するのは不可能です。しかしRubyには魅力的な部分がたくさんあり、われわれはRubyをサポートするために多大なエネルギーを投入してきました。アプリケーションサーバ関連でわれわれが進めてきた取り組みの1つが、GlassFishサーバであらゆる種類のコンテナをホストするというものです。GlassFishコンテナを使って配備したRuby on Railsアプリケーションは、素晴らしいパフォーマンス、拡張性、管理性を実現しています。

―― DSL(Domain Specific Language:ドメイン固有言語)についてはどう考えていますか?

ゴスリング DSLに対しては一種の愛憎的な気持ちを抱いています。アイスクリームを盗み食いするような後ろめたい楽しみとでも言えばよいのでしょうか。特定の分野にフォーカスしたプログラムを開発している人にとっては、その分野のドメイン固有言語があれば大いに助かるでしょう。わたしもDSLが大好きです。JavaFX Scriptもドメイン固有言語です。JavaFX Scriptはグラフィカルユーザーインタフェースの作成には非常に役立ちますが、それ以外の用途ではそれほど役立つわけではありません。

 DSLは適切な用途で使用すれば素晴らしい成果が得られます。不適切な用途で使用すれば――例えばML言語を使ってグラフィカルユーザーインタフェースを作成しようとすれば、非常に不幸な結果になるでしょう。

 巨大で複雑なシステムではプログラミングが難しくなります。ユーザーインタフェースをプログラミングする分野があるかと思えば、Webフロントエンドの分野や高度な数式を駆使する分野もあり、また、AI(人工知能)に近い分野もあれば、リアルタイムデバイス制御に関連した分野もあるからです。Javaの特徴の1つは、これらすべてのプログラミングを1つの言語フレームワークの中で行えるということです。Javaはこれらの分野のどれに対しても完璧にチューニングされていないかもしれませんが、そのすべてに対応できるという汎用性に極めて優れているのです。

 ドメイン固有言語は、特定の分野では素晴らしい威力を発揮しますが、複数の分野にまたがる必要がある場合には苦労することになります。

       1|2 次のページへ

Editorial items that were originally published in the U.S. Edition of “eWEEK” are the copyrighted property of Ziff Davis Enterprise Inc. Copyright (c) 2011. All Rights Reserved.

注目のテーマ