Java Expert+gihyo.jp Presents Sun Microsystems, Inc.スペシャルインタビュー集

Javaの父、James Gosling 特別インタビュー どうやってJavaが生まれたのか、そして、今後はどうなるのか

Javaの12年

「12年すべてを振り返るのはとても難しいです。皆さんもご存知のようにJavaの歴史はカラフルで、たくさんの出来事がありましたから。全部話したら何時間かかってしまうかわかりません(笑⁠⁠。

そこで、いくつかのトピックごとにお話ししましょう⁠⁠。

なぜJavaを作ろうと思ったか?

Javaの父、James Gosling氏
画像

「Javaの開発動機、それは⁠開発者の人生をシンプルにしたい⁠ことでした。シンプルにするというのは、単に簡単にデモが作れるとかではなく、業界水準に耐えられる品質で、かつ開発を簡単にしたい、ということです。

開発するにあたっては、C/C++、Lispなどさまざまな言語を取り込んでいます。そして、機能面だけではなく、開発者のマインドを大切に考えました。それまで他の言語で開発していた方たちが、違和感なく、そのままJavaの開発をできるようにしたかったからです。すなわち言語間の開発文化を重要な要素としていたのです。

こうしたコンセプトを元に、Sunのプロジェクトの1つとしてJavaは生まれました。最初は3、4人ぐらいでスタートして、その後20人ぐらいまで増えて軌道に乗りました。

また、Javaの開発にあたって、Gosling EmacsやTECOなどコンセプトやアーキテクチャ的には異なるものでも、そのときの開発経験は大変役に立ちました⁠⁠。

Javaのバージョンアップ

「その後、Javaはバージョンアップごとに大きな変化をしています。大きく分けると1.1~1.3まではパフォーマンス、信頼性、APIの拡張を意識したアップデートが行われました。1.4ではエンタープライズでの用途を意識し、1.5以降はJava自体を拡張していく動きで進んでいます。

そして、1.5→現Java 6において最も大きなトピックとなったのがオープンソース化です。Javaの開発自体はオープンソースのコミュニティと同じように、開発者同士がコミュニケーションし行われていました。そして、6になり、ライセンス面で完全にオープンソース化されたのです。これによって、今まで以上に開発者への窓口が広がりました。

開発姿勢については引き続きコミュニティと連携を取りながら行っていきます⁠⁠。

Java VMのこれまで

「続いて、Javaを2つのアーキテクチャに分けてお話ししましょう。まず、Java VMについてです。

Java VMは、ハードウェアの進歩から非常に大きな影響を受けています。開発当時と比べて、メモリ領域が拡大されているだけではなく、プロセッサのアーキテクチャが進化しているからです。中でも現在は⁠マルチスレッド⁠⁠マルチプロセッサ⁠⁠ガベッジコレクション⁠に関する開発が集中しています。最近のデバイスは、ハードウェアのメモリ領域が大きくなってきているため、大型のスケールに対応する必要があり、かつ、携帯電話のような小型デバイスを制御することが求められます。

こうした状況の変化、ニーズに応えるべく、Java VMそのものが変化し、状況に応じてOSと同じような働きをするところまで進化しました。

また、Sunから見た場合、現在開発しているNiagaraやNiagara 2のようなマルチコアプロセッサ上でのパフォーマンスは、Javaとの親和性を意識して開発されています⁠⁠。

言語としてのJava

「続いて、Java言語、シンタックス(構文)に関してお話ししましょう。

先ほども話したとおり、開発当初たくさんの言語を参考にしました。ただ、開発時は今ほどWebは一般的ではなく、インターネットそのものが普及していなかったのですが、私たちは⁠ネットワーク⁠がJavaにとって重要な鍵を握ると考え、ネットワークを意識した言語として開発しました。それがスローガンにもなっている⁠Write Once, Run Anywhere⁠です。今ではスマートカードと携帯電話がつながったり、自宅のPCから銀行のシステムへアクセスするといったことがJavaのプログラムで実現することからもおわかりいただけると思います。

そして、高機能化する一方で複雑化していることも事実です。これらはすべてコミュニティとの対話から発展してきている結果でもあります。これからもJava言語の進化、機能追加はコミュニティとの対話が基本となって行われていくでしょう。

Javaは開発者とともに成長する言語です⁠⁠。

Javaの今後

JavaFX Scriptの動向

本紙#01を手にとってポーズをとってくれた
James Gosling氏
画像

「直近の話題としてJava SE 7が気になると思います。Java SE 7では、Java VMに関してはスクリプト言語への対応、シンタックスではクロージャの導入が気になっている方が多いと思います。

スクリプト言語への対応という点については、RubyやPHPなど既存の動的言語のサポートに加えて、2007年のJavaOneで発表されたJavaFXおよびJavaFX Scriptに注目していただきたいです。これは、Sunが中心となって開発しているJava VM上でうごく動的言語で、リッチなアプリケーション開発に適しています。現在はまだプロトタイプの段階で、商用に耐えうるものではないですが、希望としては2007年のクリスマスごろまでにベータバージョンのリリースをしたいと思っています。そして来年1~2月ごろには実際に使えるレベルで提供したいです。当然ながら、次回のJavaOne前には、正式版をお披露目したいですね⁠⁠。

クロージャの導入について

「シンタックスの話題で、Javaエンジニアが最も注目しているのがクロージャの導入ではないでしょうか。実際コミュニティ内でもさまざまな議論が交わされています。次バージョンに採用してほしいというニーズが高い一方で、全員が合意する形というのがまだ見えていない状況です。

現在は、Neal Gafterが中心となって仕様をまとめ、標準化のための努力をしています。まだまだ作業段階なので、今後の展開については引き続き注目していてください⁠⁠。

James Goslingという人物

初めてのコンピュータ

「私が初めてコンピュータに触れたのは13歳のとき、DECのPDP-8でした。当時住んでいた場所の近くにカルガリー大学があり、その研究室に行って触らしてもらいました。⁠Cool!(かっこいい!)⁠って思いましたね。余談ですが、今一番楽しいのは子供との生活ですが、その次に楽しいのは今でもこのときの印象が残っています。

最初に書いたプログラムはFocal5という言語で、そのPDP-8上で実行しました。当時は情報源がほとんどなく、大学の図書館に入り浸って調べました。トライアル&エラーを繰り返しながら、自分で書いたプログラムが初めて動いたときはとても感動しました⁠⁠。

JavaOneの思い出

「それからいろいろと経験するわけですが、Javaに費やした時間は莫大です。その中でも、JavaOneは自分にとって大切な出来事で、たくさんの思い出があります。最近では、2007年の基調講演で見たヘリコプターのデモは記憶に残っています。

それから2006年のAfterDarkに登場してもらった『Mythbusters』のAdam Savage氏とJamie Hyneman氏も印象的ですね。

最近とくに私の基調講演では、Toy Showのような要素が強く、皆さんにJavaのおもしろさを伝えたいと思っています⁠⁠。

Java以外に興味ある分野

「もし仮に明日から仕事をしなくて良いと言われれば、作りたいソフトウェアや研究分野のリストはたくさんありますよ。具体的には、プログラミング言語の概念そのものを変えてしまうような大きなスケールのものから、AI(人工頭脳⁠⁠、新しいデバイスをコントロールするものなど、さまざまなです。

おそらく1日が48時間で、寿命が1,000歳ぐらいないとすべて実現できないでしょう(笑⁠⁠。

Javaと自分

「正直、Javaがここまで普及するとは思ってもいませんでした。中でもびっくりしたのが銀行システムのようなエンタープライズ用途で使われていることですね。

これまでを振り返ってみて、Javaのおかげで私はとても幸せな生活を送れていると思います⁠⁠。

Java Expert編集長 馮 富久(左⁠⁠、James Gosling氏(右)
画像

日本の開発者に向けて

楽しくないことはやめる

「私の理念の1つに⁠楽しくないことはやめてしまう⁠というのがあります。楽しくもないことを続けるのは難しいからです。それがたとえ仕事だったとしても。

だから、ソフトウェア開発を仕事にしている方やこれから仕事にしていきたい方には、ぜひコードを書いてモノを動かすことの楽しさを感じてもらいたいです。

“楽しさ⁠は非常に大きなモチベーションになることを忘れないでください⁠⁠。

学ぶ姿勢を大切に

「楽しさが重要とは言っても、勉強することが苦手な人はこの業界には難しいと思います。

なぜなら、ソフトウェア開発のようにIT業界は1年先の動きが見えづらいからです。だからこそ、つねに勉強する姿勢が大切です⁠⁠。

Gosling氏の生コメント!

おすすめ記事

記事・ニュース一覧