ゴスリング氏インタビュー

Javaの父が語る「JavaFX」、そしてスクリプティング言語の現状

2007/05/17

 Java言語を発明したジェームズ・ゴスリング氏は、サン・マイクロシステムズの副社長でフェローでもある。同氏はJavaOneでeWEEKのシニアエディター、ダリル・K・タフトの取材に応え、Javaのオープンソース化、Javaプラットフォームの新たな方向性とプログラミング全般、新しいサンの技術とマイクロソフトとの競争について語った。

――Javaはいかにして第2のC++になったのですか? あなたは、開発者がC++の泥沼を避けられるようにJavaを発明したようですが、いまは多くの開発者が、Javaは同じ膨張の問題を多く抱えていると言っています。

ゴスリング氏 その質問はいろいろな意味に取れますね。私は、Java言語はC++が陥ったネズミの巣のような複雑さをうまく避けてきたと思っています。C++の問題の多くは、大昔、セキュリティなどを考えることが重要ではなかったころの設計によるものです。

 それにJava言語の進化はコミュニティに徹底的に吟味され、調べられてきました。この点には非常に満足しています。極めて複雑で難しくなったと感じられる部分はすべてAPIです。Javaで利用できるライブラリ一式は退屈です。C++よりもずっと大きく、ある意味では人々が構築しているさまざまなものの避けられない結果です。

 これは、ピーターの法則といわれるものが当てはまる分野の1つでもあります。ピーターの法則とは「すべての人は昇進を重ねて、おのおのの無能レベルに到達する」というものです。仕事をやりやすくするツールを作るのにかなりの時間を投じている人が、自分の仕事を容易にしたら、その人に「あなたは何もしないで座っているだけだ。だからやることをあげよう」と言う人が出てきます。皆が今構築しているものがどれほど複雑か見てみると、5年前と比べたらとてつもないレベルです。いま人々が開発しているシステムの多くは、ほかの技術だったらどうやって作るのかまったく分かりません。

JavaFXはリッチなGUIのため

――どうしてサンはGroovyなどすでにあったものを活用するのではなく、まったく新しいスクリプティング言語を作ったのですか? なぜ開発者はJavaFX Scriptで新たなスクリプティング言語を学ばなければならないのですか?

ゴスリング氏 スクリプティング言語が足りないということではありません。この種の言語は10億ほどあるはずです。その多くがよく使われています。問題は、スクリプティング言語の大きな強みが、特定のアプリケーション分野にターゲットを絞り込んでいることから生まれるという点にあります。それに世にあるスクリプティング言語の大半は、Webページを生成するために作られました。そこがリッチなグラフィカルユーザーインターフェイス(GUI)の構築とは根本的に違います。JavaFX ScriptはGUIのためのものです。

 基本的なレベルでは、これらスクリプティング言語のほとんどはトランザクション指向です。リクエストが来て、ページを生成して出せば終わりです。GUIでは、実際に時間の進行があります。時とともに何かが起きます。テキストの一部が表示されるような、わずかなことでもです。ただ現れるのではなく、ゆっくりと展開していきます。ゆっくりと不透過率を変えたり、サイズを変えたり、あらゆるものを変えます。GUIの世界では異なるアニメーションの動きに関するものもたくさんあります。

 だからクリス(・オリバー氏。JavaFX Scriptを考案したサンのエンジニア)はこれを大きく違ったやり方でとらえ、その分野で非常に有効なものを考え出しました。

 JavaFX ScriptをWebページの生成に適用しようとするとひどいことになります。そういう用途向けに作られたものではないのです。

――では、これは彼(クリス・オリバー氏)が空き時間に作ったのですか? それともサンのプロジェクトだったのですか?

ゴスリング氏 彼はSeeBeyondにいたときにこの取り組みを始め、その後サンがSeeBeyondを買収しました。これはクールだと思ったので、買収の後も取り組みを続けてもらったのです。世間に披露して、皆に使ってみてもらいたいと思えるレベルにまで達しました。クリスは「自分の子どもを世間に出す」ことに少し及び腰でしたが……。

Web2.0の中核、JavaScriptがたどった道

――同じような趣旨ですが、Web2.0とマッシュアッププログラミング向けに登場しそうなのはどんな言語だと思いますか?

ゴスリング氏 分かりません。今のところWeb2.0に関するプログラミングで気掛かりなのは、混乱しているということです。1万通りくらいのやり方があって、あれやこれやいろんなものをまとめるのは、ペンキを混ぜるようなものです。何色ものペンキを混ぜると、いつも汚い茶色になります。そういうやり方をしているときに一貫したアーキテクチャ・アプローチを考えるのは困難です。

 ある程度のレベルでは、Web2.0がどう進化しようと変わりません。Web2.0という言葉は嫌いなんです。誰もその意味を知らないのですから。ですが、そこで使われている中核技術はJavaScriptです。定義がバラバラになってしまったのはいささか残念です。

 当社がJavaの検証などに厳しいと批判する人もいます。厳しい検証がなぜ重要かというと、それを示す大きな反例の1つとして、 JavaScriptのたどった道が挙げられます。平均的なJavaScriptのコードを見ると、やりたいことに、ごくわずかな時間しか費やせません。残りの時間は「Internet Explorerでこれを動かす場合は、このやり方でやらなければならない。Safari、Opera、Firefoxなら、別のやり方でやらなければならない」といったことに費やしているのです。

 それで、すべての違いを統一しようとするライブラリが出てくる段階に達します。そしてライブラリのライブラリのようなものが登場して、深いメタ循環になってしまいます。こうした複雑な構造のすべてのピースは、プラットフォームがごちゃごちゃになっているという事実に対処しようとするためだけのものなのです。

――JavaFXではそのような状況に陥らないのでしょうか?

ゴスリング氏 そこにはJavaScriptはありません。JavaFXは基本的にJava VM(仮想マシン)向けにコンパイルする言語です。つまり、まったく新しい言語、まったく新しいAPIではないのです。SwingとJava2Dを推進するおもしろい方法です。

 ですからJavaプラットフォームに付いてくるレンダリングライブラリ、アニメーション機能などはすべて持っています。これは全部、JavaScriptにはないものです。

Javaオープンソース化には満足

――サンとJavaのオープンソースの方向性には満足していますか? あなたが抵抗したという噂も前にありましたが。グラハム・ハミルトン氏(サンの前Javaリードアーキテクト)は、それが原因で辞めたと言われています。サンの取った路線に不満はないですか?

ゴスリング氏 これまでの進展には満足しています。当社は最初から、これをほぼオープンソースプロジェクトとして進めてきました。大きな問題は相互運用性と一貫性に関連したものです。それから、オープンソースの世界に関して、多くのプロジェクトが分裂の道をたどっていることを私が心配しているということです。

 多くのプロジェクトが、もっともな理由もなく、2万7000もの異なるバージョンに分かれてしまっています。

 それに、当社が採用してきたライセンスは大体、テストを義務付けたMozillaライセンスでした。ですが、開発者コミュニティが十分に強力になり、彼らが一貫性、相互運用性、品質に関して、市場のプレッシャーによってものごとがうまく進むと強く感じる段階にきたようです。ですから不正を行おうとすると、市場で問題になるでしょう。

――サンのJavaオープンソース化計画についての話が盛り上がり始めたときに、私はサンがJavaをオープンソース化するつもりでも、どうでもいいというコラムを書きましたが……。

ゴスリング氏 大多数の人にとって、オープンソース化はすごいことではありません。実際、オープンソース化にネガティブな懸念を持つ人の方がたくさんいました。当社の最大の問題はおそらく、世界のもう半分にパニックを起こさせないことでした。

 人々がJavaに関して評価していた点の1つが、一貫性と相互運用性、そして検証だったからです。NASDAQのようにJavaを中核で走らせている組織があるという事実があります。

――検証の問題について、「利用範囲」制限なしでTCK(互換性テストキット)に自由にアクセスできるようにしてほしいというApacheの主張は正当だと思いますか?

ゴスリング氏 私にはApacheの不満の正確なところは分かりません。それについてはサイモン(・フィップ氏。サンのチーフオープンソースオフィサー)と話した方がいいかもしれません。当社がオープンソース化に関して抱えていた問題の1つは、人々がよくオープンソースコミュニティを1つの幸せな大家族として一般化しようとしますが、実際には敵対する国家の群れだということです。彼らは皆、防壁を築き、石を投げ合っています。

――それは完ぺきな説明ですね。実際に戦いがあるのですから。

ゴスリング氏 現実に戦いが起きています。オープンソースコミュニティに対して友好的になるのは難しいことです。ある陣営に対して友好的になれば、ほかの陣営から敵と見なされます。われわれが困っているのは、われわれはApacheの人たちが好きだけれど、どちらかというとGPLの人たちも好きだったということです。Apache陣営は、GPLを採用したことでわれわれに腹を立てていました。ですが、何かを選ばなければならなかったのです。Apacheライセンスを選んでいたら、GPL陣営の人たちはわれわれに腹を立てたでしょう。

原文へのリンク

(eWEEK Darryl K. Taft)

情報をお寄せください:



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