- title: Sun Developer News
- authors: atm09td,
- url: https://atm09td.tumblr.com/post/1044423981/sun-developer-news
だれかのtumblrから. 消えそうなので魚拓をとっておく.
21世紀に相応しい仕事をしよういまこそ新しいOS、新しい言語をイメージするコグニティブリサーチラボ株式会社代表取締役 苫米地 英人氏
2002年新年号の談話室時也葉に登場するのはコグニティブ リサーチ ラボ株式会社の代表取締役であり、コンピュータサイエンテストである苫米地英人氏をお迎えしての新春放談。
苫米地氏は、Javaコンソーシアムの立ち上げに尽力されたり、ジャストシステムで多くのプロダクト開発に関わった実績に加え、大学における活動や、国家プロジェクトでの活躍など多彩な方面で活躍されていますし、コグニティブリサーチ社においては独自のWebサーバをLISPを使って開発するなど、LISPのエキスパートとしても有名。
今回はコンピューターサイエンテストとしての立場から、今求められているコンピューティングのあり方についてお話を伺った。JavaやSolarisの世界に留まらず、真の次世代コンピューティングについてとてもエキサイティングな話しを伺うことが出来た。そのすべてを紹介することはできないが、その片鱗でも感じてもらいたいと思う。
文中敬称略
■コグニティブリサーチラボ今昔物語コグニティブリサーチラボ社(CRL)のユニークなところといえば、なんといってもLISPで開発されたWebServerシステム「Lispache」だろう。これはコグニティブリサーチラボ社のWebを始め、音楽配信サイト www.aoyama.com やiアプリの配信を行っている eapli.net といったサイトで運用されている Web Server です。高いセキュリティとパフォーマンスに加え、無停止でメンテナンス作業ができるなど運用性の高いユニークな特徴を持つ Web Server である。
甲斐:おもしろいですよね。世間ではapacheかIISかというところに、LISPで組んでいる。
苫米地氏:JavaでなくLISPというのが面白いんですかね。甲斐:なぜそういうアプローチをするのか、多くのデベロッパの方は興味があると思いますが。そのあたりはJavaOneでもお話されましたよね。
苫米地氏:しましたね。ただベーステクノロジーでなく製品の話をしました。デベロッパというよりはお客様対象ということで。会社を作った経緯なんですが、85年にフルブライトからお金を貰ってエール大学の人工知能研究所というところに行きまして、それからカーネギーメロンに移りました。そのときの我々はプログラムを作るのが仕事だったんです。その後アメリカに居たときにいろいろな大学の先生から来ないかと誘われていたもので、最終的に九州と徳島に絞った後徳島に決まったんです。たまたまそこにはジャストシステムがあって、そこで浮川さんが毎週のように遊びに来るようになって。研究所作るからと、東京の研究所と徳島と両方見てくれといわれて、ちょうど東京に戻ろうと思っていた頃なので受けたんです。その後自分でやりたいことがあって独立しました。それでソフトウエア業界では辞めたら同業他社で2年間は働かないという暗黙のルールがあったもので、ジャスト的にはマイクロソフトに行くなということだと思うんですけど、僕は間に受けて2年間は民間は一切やらなかったんです。通産省関係のIPAが多いですけれど。当時メールをどれくらいの人が使っていたかという時代ですよ。その頃の私は、日本中の家庭が、もちろん企業もそうだけれど、かなり高速な常時接続がされるようになって、各家庭にまでサーバが入ってくるだろうと。そんな電子的なインフラストラクチャが重要になった時代に、一番重要なのはセキュリティだと。そこで、徹底的にセキュリティを政府プロジェクトでやらせてくれと話をしたんですが、なにしろ電子メールを使ってない人たちだから、そんな時代が来るわけない、っていわれました。でもそのときに2つのグループが分かってくれた。1つは通産省の課長補佐、もう1つはね、なんとSunだったんですよ。本田会長のところへ行って、Ultra2を2台借りたんですよ。アンドSS10かな。そして政府に対してセキュリティのプロジェクトを3つのステップでやらせてくれって言ったんです。開発のステップはそのための一番コアとなる基礎技術を開発するところ。セカンドステップはそれを利用して、盗まれてよいもので実験させてくれと。3番目は盗まれちゃ困るデータね。ファーストステップで作ったのが、まさにSolaris上で作ったLISPのサーバなんですよ。
■なぜLISPでサーバを?苫米地氏:何でLISPなのか。理由は2つあって、1つはもともと動的オブジェクト指向をやるしかないっていう開発側の論理。もう1つはセキュリティ論理としてエンジンが完全に動的バージョンアップが可能であること。残念ながら未だにJavaはそうじゃない。というのはJavaは完全な動的オブジェクト指向ではないと認識しているんです。例えばタイピングが静的だったりとか。我々は単純に、開発者の論理と運用上の論理だけで選んだんです。開発者の論理として究極の動的なオブジェクト指向を突き詰めたから、ほんのちょっとでもタイピングの静的性向があっちゃったら困る。今になって言えるのは、そこまでピュアに、動的性向にこだわる必要はあったかどうかはなんともいえませんけどね。でも最初だし、足かせをはめたくないと、やっぱり完全に動的じゃないと、こういうことができない、ああいうことができないといった、いろいろな理由があったけれども、それは後からのいいわけであって、本音は純粋に理論的に動的オブジェクト指向を徹底的に突き詰めたいと。それで我々は何をしたかというと、まずWebServerを作った。http1.1準拠の、マルチスレッドにしたけど、外部からみると当時のapacheにできるだけみえるようにして、apacheのセキュリティのバグがあるといえばそのバグも一生懸命真似して、セキュリティホールがあるといえば一生懸命真似して、apacheのふりをして、apacheのつもりでアタックしてくると後で馬鹿を見るようにね(笑)。そこまで真似をして、それでLispacheという名前なんですけど。できあがったLispacheは、とにかく動的オブジェクト指向のWebServerに仕上がったんです。すると、物理空間と論理空間を完全に切り離したシステムができるんです。例えばLispacheで動かしているCRLのサイトは、www.crl.co.jpの後に/company/index.htmlって表示されるじゃないですか。実はindex.htmlってファイル最初から無いんですよ。company/というディレクトリさえないんです。全部リアルタイム生成なんですよ。全部あるかのように生成しているし、ファイルもあるかのように生成しているんです。どこにあるかというと全部抽象的な論理空間に存在しているだけなんです。それは全部オンメモリなんです。これのいいところは、物理空間から切り離しちゃっているでしょ。あとはメモリ空間がどこまでアタック可能かということで、ANSI CommonLISPの場合は、湾岸戦争での採用以来、特に、動的メモリ空間、ヒープというのですが、ここの耐アタック性が徹底的に考慮されていて、セキュリティを高めているんです。セキュリティのために本来やるべきことは抽象空間と物理空間の切り離しなんですよ。だから僕は絶対にディレクトリシステムにあわせてファイルを置いておく、昔からのapache的なやり方ね、あれは止めたほうがいいと思う。例えば、普通のWebサイトではURLを通じてUnixファイルシステムの中身のデータ構造、ヒエラルキーを丸丸他人に見せているでしょ。これはクラッカーに「私のこのindexファイルは、このディスクのこのディレクトリにあるから見に来てください。」と言っているようなもの。それって最大のセキュリティリスクじゃないですか。だから僕は見せるべきじゃないと思っている。
甲斐:セキュリティのことを考えると。
苫米地氏:Lispacheの強さは一義的にはそこにあるんですよ。その他の特徴と言えば、推論をかけるときは、ほかのありとあらゆるデータもオブジェクトに入っているから、推論エンジンがオブジェクト生成したい目的にあわせて生成する。それがもう1つのLispacheの特徴で、今で言うとCRMなんかに使えるんですけれど。相手に合わせた生成ができるんですよ。
甲斐:クッキーじゃなくて。
苫米地氏:そうです。クッキーレベルじゃなくて、うちでデジタルパスポートと呼んでいる本人の特徴情報を持つデータ構造です。ユーザがあるショッピングモールサイトに行った時に、そのパスポートデータを使って「私はこういう人」というプロファイルが提示できる。政府プロジェクトのときには4段階しか設けなかったんだけれども、完全情報開示、部分情報開示、統計的な情報開示、それとブラインド。身分は明かさないけれど認証だけしてくださいよとか。どこまで自分のプライバシーを明かすかはあくまでもユーザが選ぶ。我々の考えたデジタルパスポートは、「あなたの会社はAだから全部見ていいですよ。あなたの会社はCだから私の統計的データしか見ちゃいけないですよ。」という具合にユーザがお店に自分で指示できるんですよ。それをベースに推論エンジンをかけてHTMLをリアルタイムに生成する。
苫米地氏:セキュリティの点でもうひとつ大切なことがシステムの堅牢性です。その点うちのLispacheはapacheと違って誰もソースコードを知らないし、LISPなんか書ける人はめったにいないから、セキュリティホールを見つけてもそう簡単にワームを作れない。万が一作られたときに、または自分たちでセキュリティホールを見つけたときにパッチを当てたとするとパッチコードが動的に当たるから、要するにサイトが止らないんですよ。よく絶対止らないと言うのは、物理的な話しじゃないですか。リダンダンシーをどうとかと。そうじゃなくてバージョンアップ中も止まらない。その機能は今のところANSI CommonLISPのLispacheしかないんですよ。
■本気でエンタープライズ市場に戦いを挑むなら苫米地氏:アメリカのLISPのシェアを取っているフランツという会社があるんですけど、今回JavaOneのBOFの中でそこのエンジニアを一人呼んで、そこで話題になったのがマクロなんです。なんでJavaにはマクロがないの?って。LISPの場合マクロがあって、何がいいかって言うと、例えばコードの使いまわしができるような開発の効率性ですね。開発の効率性の点では、IDEでも同じような効果があるんですが、どこが違うかというとメンテナンス性なんですよ。例えばビジュアルIDE環境で、自由自在にカット&ペーストでコードを大量に貼り付けてプログラムを作ったとします。でも出来上がったときには、ただベターっと貼り付けられている巨大なソースコードになっていて、どこから何を持ってきたのかわからないでしょ。少なくとも今のいわゆるビジュアル環境っていうのは、開発するときにはものすごく効率性がいいんだけれども、一度ビジュアルエディターがソースを生成すると、後は巨大なソースコードが出るだけなんですよ。マクロ環境の場合には開発が終わってもマクロの状態でソースコードがありますから、コンパイラがコンパイルして初めてベターっと長くなる。つまり抽象化された塊ででてくるんですよ。メインテナンスが圧倒的に楽なんですよ。だから他人が作ったプログラムは、他人がプログラムを作ったときのIDE環境がついてくるわけじゃないですから、ということは、ベターっとこんな長いソースコードを渡されちゃったら、ここはどこから来たのというと、あのへんのあれから来たのかもしれないし、これとこれはこの人が書いたプログラムかもしれないし、わからない。メンテナンスしようがないじゃないですか。ところが、マクロの場合には他人のソースコードでも、マクロはまさに固まりできますからね、その抽象度の高いレベルでやれるから、それでマクロがない言語では大規模開発は無理だと思っています。
セキュリティの視点ではランタイムエンジンが動的にアップデートできる、これが重要なんです。例えばJavaのVMをバージョンアップするときはどうなります?VMを一度落とすでしょ。それじゃあ駄目なんですよ。例えばサーバ上に何かのセキュリティホールがあったとき、それに対するパッチを当てることは簡単です。しかし、当てるときにどういうビジネスリスクがあるかというと、サーバを一瞬止めなきゃいけないんですよ。Solarisだったらパッチ当てるときに、apacheは止めてもサーバは止らないですよね。でもWindows2000の場合はこれはやばいですよ。IISのパッチ当てるとき、だいたいはWindows2000サーバは再立ち上げですから。それはまずい。例えば1000台のサーバを持っていたときに、新しいサーバアタックがでてきたとします。この場合Solaris上でもWindows上でもリスクは同じですよね。そのときサーバ管理者は悩むわけです。どうしよう、パッチを当てるために1台ずつ止めてパッチを当てるのか、Windows2000だと再立ち上げするのかと。この作業の人件費だけで相当な金額になるでしょう。それに、サイトを止めることによる多大な機会損失がある。アメリカのeコマースサイトを1分止めると、1minute 1million dollerといわれているように1分1億円の損失があると。それって大変でしょ。1000台だったら何分止めるかわからないじゃないですか。さすがにWindows2000サーバ再立ち上げが大げさでapacheだけだったとしても、それはサーバそのものを再立ち上げしないといけないんですよ。Javaの問題点というのは、場合によってはVMそのものの問題で有る可能性もあるんですよ。VMの上のレイヤじゃなくて、VMレイヤの可能性も十分ありうるわけ。じゃ、万が一VMにパッチを当てたいときにどうします。それってJavaを一度落とすしかないんですよ。それは我々の発想では受け入れられない。ANSI CommonLISPの昔からの設計の場合、自分自身のバージョンアップをマシンが動いたままできるんですよ。それはできなきゃいけないんです。絶対に自分自身のバージョンアップ中も止まってはいけない。そういうニーズがあるんですよ。昔は誰も電子メールをやっていない時代だから、ウイルスもわからなくて、あまり理解されなかったんですけれど、今だったら理解されると思うんですけれど。特にこの1,2ヶ月ウイルスも多いし。サーバにあるワームが入ってきたときに、サーバを管理している人がパッチを当てるというのは結構なコストだと思うんですよ。実際IISの被害状況を見てみると、インストールしてからまったくパッチを当ててないところが多いんですよね。
甲斐:だからひっかかるんですけどね。
苫米地氏:そうです。でも責められない。怠慢といわれるとその管理者たちはかわいそう。それはビジネスディシジョンかもしれないんです。1000台のマシンを動かしているときに、パッチを当てるために20分ずつ止めるわけにはいかないよと。そういうビジネスディシジョンで放っておいたら入られちゃったのかもしれない。要するに完璧なセキュリティシステムなんてないんだから、バージョンアップ、パッチは絶対しなきゃいけない。そのときに止めるということのリスクは避けなければいけない。
甲斐:LispacheWebServerにしろデジタルパスポートにしろ、セキュリティがすごく重要なわけですよね。Javaはかなり魅力的な言語ではあるが、セキュリティの点では苫米地さんが納得できるものではないので、LISPを使って極力抽象化を行い、URLすらも仮想的なものにして物理的空間と情報空間を分離することにしている。これは言い方を変えると、これまで以上にエンタープライズ市場を狙うJavaに必要なコンセプトと言えます。マクロを取り入れるとか、VMにこだわるとか。そのあたりどう思われますか。
苫米地氏:パスポートという呼び方については、Microsoftよりも先に我々が使いはじめたということは言っておきたいですが。(笑)それはともかくとして、20年30年使い続けることのできる世界がエンタープライズ市場なんですね。そうなったときに、VCでシステムを作るでしょうか?VCで作る一番の問題点はメンテナンス性の悪さです。それと同じようなことがJavaにも感じるんです。我々にも他人のコードを読むくらいなら自分で作るほうがマシだと思う瞬間があります。しかし、エンタープライズの市場では長い年月の間多くの人が入れ代わり立ち代わりメンテナンスに関わらなければいけないんです。そうなると大切なことはメンテナンス性であり、プログラミングとメンテナンスにおける生産性を向上させることです。今のままのJavaではメンテナンス性や生産性がエンタープライズにはまだ十分では無い。エンタープライズを狙うのであれば、そのあたりを改善するか、極端な話し、全然違う言語をつくり出すくらいあってもいいと思います。考えてみれば、これもまた今更マクロ?という見方もありますし。それがJava3なのか、まったく新しい言語なのか。そう言う議論があってもいいですよね。Javaがエンタープライズを狙うなら、開発環境の中でも特に、メインテナンス環境を改善する必要があるというわけです。これって、IDEがどうのこうのじゃないですよ、大切なことはIDEを使うなら、そのIDEで作ったソースを20年後でもメンテナンスできるかどうかということです。20年たったら開発したときのIDEが無くてメンテナンスできない、これでは話しにならない。そういうことなんです。メンテナンス性というのは。
甲斐:エンタープライズ市場が求めるメンテナンス性を身に付けることが必須条件ということですね。
苫米地氏:そうなると圧倒的に強くなると思いますよ。ついこないだまで製造業の設計サイクルなんかは3年から5年だったんですが、いまや週単位になっている。そういうニーズにJavaは効果的なツールになると思います。そのうえでメンテナンス性が向上すれば、今後動的オブジェクト指向が期待される市場では、Javaはまだまだ普及するはずです。
■ここがヘンだよ今のIT ここまでインタビューは「JavaかLISPか。」というテーマが中心で進んで来たが、実は苫米地氏はそういったテーマは本質的なテーマではないと考えているようだ。つまり、我々も含めてITに関わる多くの人間は、何かと言うとオブジェクト指向なのかそうでないのかとか、Javaなのか.NETなのかとか、オープン系のソリューションなのかレガシーソリューションなのか、そういったことばかり気になって物事を捕らえてしまう傾向がある。これから成功するビジネスモデルはとか。それはそれで簡単に片付けられる問題ではないのだが、苫米地氏は、コンピュータサイエンテストとしての立場から、まさにマクロ的な視野から見た問題点を提示してくれた。
苫米地氏:ANSI CommonLISPなのかJavaなのか、僕にとってはどちらでもいいんですね。プログラマーのニーズでしかないんですね。我々にとって言語はツールだからね、そのときの必要に応じて選ぶだけで。実際のところ、世の中にはJavaは書けるけどLISPは書けない人の方が多いわけで。ウチだってそうだし。でもね、先に言語ありきじゃいけないんですよ。あくまでもタスク(:task)が先にあっての話し。タスクによっては20万、30万、場合によっては100万とか200万かもしれないサーバのライセンスを使って、そしてSMPの上でバリバリにSolarisを動かさなければいけないことがある。そんなときになんでも「LinuxとJavaで。」と言う人はかえっておかしいと思う。それはLinuxを信じ過ぎだし、Javaを信じ過ぎ。実際にタスクがどういう仕様で、どのくらいのコストでどのくらいの開発期間でやっていくかということで選べばいいことで。僕はあんまりこだわっていないんです。ただ、自分のプログラマとしての経験から言うとマクロによる生産性の高さが重要だと思っています。今だとANSI CommonLISPが圧倒的に生産性が高い。要するにJavaは動的オブジェクトにしたけれども、開発環境的な意味合いで言うとVisual Cと同じくらいの生産性なんですよ。我々はVCの生産性では喰っていけないと思っています。IDEによって単純にエントリーポイントは下がったかも知れないけど、逆にスキルのあるプログラマにとっての生産性は下がることはあっても絶対に上がっていないと思うんですよ。ただ、開発環境の中で、なんかね、MicrosoftのPCカルチャーに引きづられ過ぎという感じがしているんですよ。
苫米地氏は今のITの在り方に大きな問題点があると語った。例えばオープン系のコミュニテイの在り方ひとつ取っても、苫米地氏はイエローフラグを出してみせる。苫米地氏に言わせると、何かともてはやされているLinuxではあるが、そのビジネスモデルは優秀な企業内プログラマーの才能を横取りしているものだとして怒りすら憶えていると言う。苫米地氏はapacheを例にあげ、apacheが1.3のメンテナンスこそ続いているけれど、2.0のリリースについてはどうなるか見えてこない理由を、多くのソフトウエア企業がプログラマーの成果を横取りして収益に結び付けているからだとしている。そのため多くのプログラマーが自分の才能を無償で提供することに嫌気がさしてきているからだという。そこへ持って来て、「Linuxでエンタープライズビジネスを。」と発言するのは、どこか間違っていないか?というわけだ。ブロードバンドブームもしかりで、電話会社や電力会社が莫大な費用と時間を使って作って来たインフラの一部を間借していたのに、既成事実を作って如何にも先進企業のような顔をして歩いている企業がいることにうんざりしているようだ。これらはどれもが「来年の業績アップだけを考えて行動している。」結果の現れだと言うことが納得できる。全部が全部、来年の業績向上だけを考えているようでは、この先真っ暗やみだということだ。だからこそ、Sunをはじめ「心ある」プログラマーや研究者には未来を意識してほしいということだろう。苫米地氏は、プログラマーや研究者、科学者に対して未来を考えてモノ作りをして欲しいと語ったが、我々の周りが消費社会である限りユーザは無関係というわけにはいかない。むしろ良い企業やプログラマーを育てるには、ユーザ側が未来を意識する必要があると感じた。
さらに、未来をつくり出す可能性も持ったツールとしてJavaを評価しながら、現在のJavaとJavaを取り巻く環境がそれを台なしにしてしまうと語る。その最大の理由はバイトコードコンパチが失われかけていることだと指摘した。そしてバイトコードコンパチがJavaの生き残る道だと強調する。
苫米地氏:最近Javaが単純にバイトコードで動かせなくなってきた。僕はJavaはバイトコードを捨てちゃいけないと思っています。バイトコードだけは保証せよ!と言いたいですね。バイトコードによるポータビリティは最大のメッセージだったと思うんです。でも最近そういうことあまり言わないでしょ。ここはまさに50年後に通用するメッセージだから絶対に守るべきだったと思うんです。これが最近ないがしろにされている気がするんです。バイトコードで走らせて遅くて困るアプリケーションっていくつあるんですか?って。本当に困るんであれば、そういうときだけコンパイルしたものを使えばいいじゃない。それにもうひとつ、バイナリにした瞬間にセキュリティリスクが出てくるんですよ。元々最初の頃のJavaの最大の利点はセキュリティだったんです。それはバイトコードという抽象度で切り離すことでイリーガルなインストラクションは吐き出させない。例えばこのメモリはいじらせない、このCPUインストラクションはたたかせない。そういったことをコントロールする。だからバイトコードを使うことで圧倒的にセキュリティが出せる自信があったわけです。ところがバイナリの状態でデリバリーされることで、受け取った側はどんなパッチがあてられているか、どんなコンパイラで作られたモノか見当がつかない。本来バイトコード以外は使っちゃいけなかったのに。いつのまにかそうじゃなくなった。これがバイトコードは遅いというだけで、使われなくなったとしたら、それはマズイんじゃないかと。でも、カルチャーとしてバイナリにコンパイルして使うという方法が通っている。これはなんか違うと思うんですよ。あくまでもJavaはバイトコードで扱ってVM上でしか動かさない。JITでコンパイルしない。バイナリにしない。これがセキュリティを守る方法だと。これがJavaの生き残る道。バイトコードで動かせれば、未来永劫どこでも動かせることを保証する。これがJavaの生き残る道で、これがなければOne of themですよ。
■50年後の市民が文化を生み出すツールを作る苫米地氏:ちょっとSunへの批判ね。これね、2つあるんですよ。1つは21世紀になってUnixはないでしょって。これはね、SolarisがとうとかLinuxがどうとかというレベルじゃないですよ。もうひとつ上のレベル。OSという本質的な意味ね。IBMとかが「Linuxで!」なんて聞くと「え~っ!」て思うもん。「あなたたち、IBMでしょ。それはないんじゃないですか?」って。そりゃMulticsの時代にMulticsってヤバイからUnixねって、それって何10年も前の話でしょ。
甲斐:1/4世紀前。
苫米地氏:今21世紀ですよ、Linuxが良いSolarisが良いって言う時代じゃないですよ。今良いOSがもし必要であればOSを考え直しましょうよって思うでしょ。僕はそれでLinuxが良い、Solarisが良いっていうディスカッション自身が何か間違っていると思います。それは10年前、20年前の話しであって、今は、次世代の21世紀のOSはどうするかっていう、そんときにリアルタイム性を出すには、スレッドのプリエンプティブ性をどうしようとかいうレベルの話しじゃないでしょ。本質的に、スケジューラとはなんぞやというレベルから入って、OSそのものの話し。それをどうするかっていう話し。SunもSolarisを続けていくのは良いけれど、同時に似ても似つかない本物の次世代のOSをやっていて欲しいですね。2つめにMicrosoft、パソコンカルチャーに引きづられ過ぎというところですね。それはMicrosoftの批判じゃなくてね。ビジネスデシジョンの問題なんですけどね。SunのやっていることもそういうPCのカルチャーに引きずられているところが多いんじゃないのって。こんなことやっていたのでは21世紀暗いよって。PCというのはエンドユーザのカルチャーでありホビーのカルチャーで、JobsとWozとか尊敬するけどコンピュータサイエンテストではない。街の発明家であり街のエンジニアである。決して科学者じゃないからね。そこから出て来たものは未来はデカくなるのではなくむしろ小さくなると考えているんです。そういうところから離れて、Sunには次のOSをどうしようかと議論してほしいですね。僕の中ではSolarisも含めてUnixの時代は終わっているんですよ。単純に言うと立ち上げられるスレッドの数が少なすぎ。僕の希望としては10万スレッドくらいが立ち上がるようなOSの出現を望みますね。今のUnixとは根本的に違うOSを。そういうディスカッションをしてほしいですね。こういうことは先進的なコンピュータメーカでないとできませんからね。50年前であればIBMだったんでしょうけど、今Linuxなんて言い出す所を見ると全然期待できませんから。Javaも同じで、過去にありとあらゆる言語を見て来て30年間プログラムをやってきた僕としては、今のままのJavaではOne of themでしかないです。ニーズによって選ぶ言語。僕が今でもANSI CommonLISPを使うのはOne of themではないからですね。JavaがOne of themで無くなるには、セキュリティとポータビリティの観点からJavaはバイトコードであるべきだし、VMによって物理世界と情報世界を完全に切り離すことを絶対やるべきだと思うんですよ。そしてプログラマーに対してはPCカルチャーじゃダメなんじゃないの?ってことを言いたいですね。
僕はおとといね、元東大の生産技術研の所長をされていた原島先生(現東京都立科学技術大学長)から「この言葉を世界中に広めよ。」と言われて来た言葉があるんですよ。それはね、「我々の仕事は科学者と技術者の集団として、あるときはサイエンテストとして、あるときはエンジニアとして、50年後の世界の市民が文化を生み出すようなツールを作ることだ。」と原島先生はおっしゃったんです。まったくそのとおりなんです。20年後じゃダメなんです。50年後じゃないといけない。我々は文化を生み出せないけど、文化を生み出すツールは作ることができる。それを今頃からコツコツと作っていかなければいけない。実際計算機が作られてから50年くらい経っているんですよ。エニアックの時代の人たちが今のMacintoshのようなものを考えていたのかどうかわからないけれど、計算機は形を整えてから50年くらいで一般の科学者でない人たちが音楽とか芸術とかを生み出すツールになっているわけです。今の私達は次を始めなければならないので、次の50年後くらいに音楽や芸術を生み出すようなツールをこれから作りはじめなきゃならないと思っています。では誰がやるのか。それは我々だし、会社で言えばSunやIBMしかないでしょう。もちろん来年の収益をあげなければいけないのは当然です。しかしそれは誰でもできることで、あまり重要な問題ではない。それよりもどこまで価値のある仕事をできるかということだと思うんです。じゅうぶんJavaはそういうメッセージを持っていると思うんですよ。
取材 Sun Developer News 編集部