2023/09/10

Who's Who in Java 過去編

このエントリーをはてなブックマークに追加
James Gosling, Community Keynote, JavaOne 2015 San Francisco

むきむきJava という若手中心のJavaのコミュニティが立ち上がり、第1回目のイベントをやるというので、ぜんぜん若手ではないのですが、プレゼンさせてもらいました。

コミュニティの趣旨であるJava筋をむきむきにするようなのは若者にまかせて、Javaの初期から関わっているおじさんとして技術ではない部分で興味を持ってもらおうという内容にしました。

題して、Who's Who in Java です。発表資料はこちら。

Who's Whoというのは日本語で言うと紳士録とか名士録というものです。最近だと使わない言葉ですね。

ようするに、Javaで有名な人を紹介するということです。というか、Javaを作ってきた/作っている人を紹介するプレゼンをしました。

話しだすと止まらないぐらいエピソードがいっぱいあって、時間を盛大にオーバーしてしまってすみませんでした。

できれば、1人ぐらいは覚えておいてほしいですね。

せっかくなので、ここで紹介しましょう。まずは作っていた人たちから。


James Gosling

1人目は "Javaの父" ことJames Goslingです。

彼はカーネギーメロン大学在籍中にEmacsを作った人として有名ですけど、結局Gosling EmacsはGNU Emacsにとってかわられてしまいました。

また、Sun Microsystemsに入社した後もSunOS向けのウィンドウシステムであるNeWSを作成したりしています。NeWSはDisplay PostScriptとは違いますが、PostScriptを使って描画するというかなり画期的ウィンドウシステムだったのですが、結局はX Windowにとってかわられてしまいました。(昔、SonyのワークステーションがNEWSで、NeWSとよくゴッチャになりやすいというのもありましたw)

3度目の正直ではないですけど、彼が情報家電向きに作った言語がOakです。

でも、結局情報家電向けには受け入れられず、方向性を変えてJavaとなったわけです。

彼は常にTシャツにジーンズといういでたち。

上の写真は2015年のJavaOneのコミュニティキーノートでのGoslingです。この時もTシャツ、ジーンズでしたが、ほんとにいつでもTシャツ、ジーンズです。

Sun Microsystemsだったころには、JavaOnのドレスコードの記載があって正装がTシャツとジーンズと書かれていたぐらいです。こういう遊び心はなかなか見かけなくなってしまいましたね。

そして、JavaOneでは毎年新しいTシャツを作っていて、それをキーノートの最後に投げるというT Shirt Tossも恒例になっていました。

2004年や2005年のJavaOneではT Shirt Toss Machineのコンテストがあったりしました。2005年は確か下の写真のマシンが優勝したような気がするのですが、詳細は覚えてないです... 

JavaOne 2005 San Francisco

James GoslingはOracleをやめた後、ベンチャーにいったりしてましたが、現在はAWSに所属しています。

そして、2019年にはマウンテンビューにあるComputer History Museumで殿堂入りしました。

たまたま、この年にComputer History Muesumに行ったら、ミュージアムのロビーにこの年に殿堂入りした4人が大きく取り上げられていてビックリしましたw

ちなみに、さくらばはJamesが来日した時に日本のSunの人に誘っていただいて、ランチを一緒に食べに行ったことがあります。

その時に、「Java言語仕様」を持って行って、サインしてもらったのもいい思い出です。

下の写真がサインをしてもらっている時に撮ったものです。

James Gosling, JJUG Cross Community Conference


Bill Joy

次はBill Joyです。

Bill JoyはあまりJavaのイメージはなくて、BSDのイメージの方が強いとは思いますが、初期のJavaの強力な推進者でもありました。

ちなみに、むきむきJavaの参加していた人たちはLinuxがUnixだと思っていたぐらいなので、BSDと言っても「はぁ?」という感じなんでしょうね。


Javaがリリースされたころ、すでにBill Joyは伝説のプログラマでした。

Bill JoyはBSDのcshやviを作った人で、TCP/IPのスタックを作ったのも彼でした。週末に1人でBSDのカーネルを書き換えたという伝説もあったりします。

で、そのBill Joyですが、OakのころからJavaに関与しています。Java言語仕様の作者としてもGoslingの次にクレジットされています。

ただし、彼がJVMを作っていたというわけではないです。

Javaが発表された1995年に、日本のJavaのお披露目的なイベントがたしかニューオータニでやったのですが、そこでプレゼンしたのがBill Joyでした。

その時に、Javaのカップをもらって、いまだに手元にあります。

その後、JavaのJiniやJXTAを進めていたのですが、これらはイマイチでしたね。どちらも分散オブジェクトシステムだったのですが、今となって考えるとオブジェクトを分散させて使う意味はほとんどなかったですね。

そういえば、JavaOneの前日にチュートリアルのJava Universityというイベントがあったのですが、そこでさくらばがJiniのコースを受けたことがあります。

コースの最後になって、なんとBill Joyがやってきたのです。抽選でJiniの本をくれるということになったのですが、そこで、あててしまったのですよ。

で、その場でJiniの本にBill Joyにサインしてもらいました!!

ちなみに、上の写真は2005年のJavaOneで撮ったのですが、このすぐ後にSunを退職されてしまいました。今はベンチャーキャピタルのパートナーになっています。

また、彼もComputer History Museumの殿堂入りしています。


Joshua Bloch

Joshua Blochといえば、Effective Javaの著者として有名ですね。Javaを使っている開発者であれば、ぜひ読んでほしい本です。

そのJoshua Blochですが、コレクションフレームワークなどを作っていた人でもあります。今でもJavaのソースコードを読んでいると、Joshua Blochがクレジットされているコードがいっぱいあります。

さて、彼はプレゼンの名手でもあります。Effective JavaもJavaOneのセッションとしても有名でした。

そして、当時の同僚であるNeal Gafterと一緒にJava Puzzlersというセッションも担当していました。

このJava Puzzlersは、簡単にいうとJavaのクイズです。言語仕様やAPIの分かりにくいところをクイズにして、答えてもらうセッションです。しかし、単なるクイズではなく、どうすればその間違いを防ぐことができるか、そして最後には教訓まで含めるという、とても教育的なセッションでした。

たとえば、こんな問題です。オリジナルはDateクラスを使っていたのですが、Date & Time APIに書きかえてあります。

このクイズの答えは2です。

なぜかというと、staticであるクラス変数は上から初期化されます。

つまり、INSTANCEの方がCURRENT_YEARより先に初期化されます。

INSTANCEの初期化でElvisのコンストラクタがコールされますが、コンストラクタ内のCURRENT_YEARはまだ初期化されていません。そのため、CURRENT_YEARは0のままになっています。

そのために、beltSizeは-1930になってしまうわけです。

この問題の教訓はクラス変数の初期化に他のクラス変数は使わないようにすることと、初期化の順番に依存してしまうようなコードは書かないようにしましょうということです。

このクイズのタイトルであるElvis LivesのElvisは、もちろんElvis Presleyのことです。晩年のElvisはどんどん太ってしまっていたのですが、そのElvisが生きていたらウェストがどのくらいになっていただろうねというジョークになっているわけです。

この問題に限らず、Joshuaのパズルはウィットに富んでいます。

彼らはJava Puzzlersのセッションには、おそろいのつなぎを着て、セッションの開始する時に"We are Click and Hack, The Type-it Brothers!"と言ってはじめるのです。

これも元ネタがあって、アメリカのラジオ番組の「Car Talk」のパズルコーナーから来ているらしいです。オリジナルは"Click and Clack, the Tappet Brothers"なんだそうです。

Java Puzzlersも書籍になっていて(日本語の翻訳はすでに絶版なのですが...)、その日本語版には訳者の柴田さんが、クイズの元ネタや英語ならではのジョークの解説を書いてくれています。こういうジョークを思いつくJoshuaもすごいですけど、柴田さんも裏をとるのが大変だったでしょうね。

ちなみに、彼はSunを退社した後、Googleにいましたが、現在はカーネギーメロン大学の教授をしています。


Scott McNealy, John Gage

過去の人の最後はScott McNealyとJohn Gageです。

彼らはJavaを作っていたわけではないのですが、Javaにとってとても重要な人たちです。

Scott McNealyは、Javaがリリースした当時のSun MicrosystemsのCEOです。

英語でべらんめえ調というのも変な感じですけど、ほんとそんな感じで話す人でした。上の写真でも彼は手にカードを持っていますが、あれはカンペです。

プレゼンでカンペ持って喋ってもいいと教えてくれたのが(もちろん、直接教えてもらったわけではないですけどw)彼でした。でも、カンペを見ながら話すことはないですね。

Scott's Top 10というのは、彼のジョークのことです。JavaOneなどのキーノートで10個のジョークを言っていくわけです。カンペに1つずつジョークが書いてあって、受けたらそれをとっておいて、受けなかったら捨ててしまうという。

変なCEOですよね。


そして、John Gageです。

彼のSunでの肩書はScientistでした。Sunのスローガンに"The Network is The Computer"というのがあります。このフレーズを考え出したのが、John Gageでした。

現代ではネットがなければ、ほんとに何もできないので、このフレーズも納得なのですが、ネットワークの普及期にこれを提唱するというのはほんとに先見性があったのだと思います。

さて、彼は長らくJavaOneのMCでありました。彼がいなければ、当時JavaOneがあれだけ盛り上がらなかったと思います。

彼が必ずJavaOneで言うフレーズに"Don't be Shy!"というのがあります。知らない人たちの集まりではあるけども、Javaという共通の話題があるのだから恥ずかしがらずに話しましょうということです。

彼のMCにおけるポスチャーはさくらばのお手本でした。ポスチャーに関しては彼から学んだことがほんと多いですね。


つらつらと書いていたら、やっぱり長くなってしまいました。

ほんとはTim LindholmやGraham Hamilton、2020年に亡くなってしまったBill Shannon、Roberto Chinninci、Chet Haase、そして奥津さんなど、取り上げたい人はいっぱいいるのですが、このエントリーではこのへんでやめておきます。

そして、今Javaを作っている人たちは次のエントリーで!

0 件のコメント: