[OOエンジニアの輪!]
今回のゲストは、サンの戸松豊和さんです。 戸松さんは現在Java系のコンサルタントとして活躍されており、「Javaプログラムデザイン」を始めとした良書の著者でもあります。
![]() |
|
-- では、最初に戸松さんの簡単な略歴などをお願いします。
北陸先端大を卒業後に94年に日本サン(当時)に入社しました。それ以来ずっとSUNです。
-- オブジェクト指向の出会いは?
大学生の頃にSmalltalkをいじってました。当時はなかなかちゃんと動く処理系がなかったのでバイトで一年間稼いだお金を全部つぎ込んでMacIIci(注:当時のほぼ最高機種)を買いました。Smalltalk関連のことをそのまま卒論にしよう思ったんです。
(卒論では)Smalltalkを使っているうちに出てくる不満を解消するために、例えば今のSqueakみたいにC言語にコンパイルできないかなと試していたりしました。卒論ですからたいした成果はでなかったんですが(笑)
-- なぜSUNに入社したんですか?
就職難で他にいくところがなかったんです。(笑)
(北陸先端大の)一期生だったのでなかなか(推薦?)枠が無くて、自分で飛び込んでいったというかんじですね。
-- SUNに入って最初のお仕事は?
まだJavaが無かった頃ですし、最初はオブジェクト指向と関係ない仕事をしてました。入社して最初の仕事は普通のC/S系システムの仕事です。
COBOLで書かれたプログラムを手作業でSybase用のSQLに翻訳するという、結構地味な仕事でした。プロジェクトの規模が大きすぎて末端には全体像が見えず、(プロジェクトの)仕様自体もきちんとアクセスしやすい形になってなかったですね。やってても全然面白くないというか。(笑)
-- 若くないとできない仕事かもしれませんね
今思うと経験にはなりました。
-- 基本的にJavaが始まるまではそういう仕事を?
Javaのα版が出るまでの1年間くらいの間そういう仕事をしてました。
--Javaの第一印象はどうでしたか。やっぱりなにか感じました?
言語系のアカデミックな人たちの仕事と業務系の人たちの要求の境目に位置するような言語だと思いました。新しい研究成果が実世界に反映されているような印象でした。例えばGCやその他の言語仕様など、そういうのはわりと面白いなと思いました。
(Javaのα版が出た直後に)触り始めて「これは広まるんじゃないか」と思い、いろいろ雑誌記事を書いたりしました。
-- Javaが世の中に出て以降はずっとJava中心の仕事ですか?
そうですね。一時期ほとんどJava以外の言語を扱わなかった時期がありました。その頃はたまにCで書こうとすると、ちょっと本見ちゃったり(笑)。最近は携帯関係の仕事でエミュレータを作ったりVMを改造したりする必要があるので、だいぶCも触ってます。
-- やっぱりCよりもJavaが楽ですか?
理想をいえばアプリケーションを書くときは全部Javaで書けたらこんな楽なことはないと思います。だけど性能とかリソースの問題をいかに乗り切るかが課題ですね。
-- Javaプログラムデザインを書いた理由は?
最初Javaの知名度が低かったころに、いろいろな所にいって布教活動的なことをしていました。その際にちゃんと技術的な裏付けも必要で、割とオブジェクト指向を知らない人にも全体像を教えるために、「オブジェクト指向とは」というところから説明してました。結構2日がかりでおしえたりすることもあって。そういうことやっているうちに、だんだん生産性が低いということに気づきました。自分の説明している内容の本があれば楽だと。
そこでJavaを始める人にも「オブジェクト指向」の部分から理解してもらえる本を書いてみたいと思って書きました。
-- 結構売れたんじゃないんですか。私も個人のお金で買いました(笑)
あの手の本のなかでは結構出たほうですが所詮専門書なので。。。
-- どの位の期間で書いたんですか?
半年くらいです。プロジェクトを抱えつつ合間にやってました。ただ新しい内容っていうのはあんまり無くて、勉強した内容を噛み砕いた内容です。後半の並行性のところは、大学院生のころに輪講でやった内容をかいつまんで、Javaをやっていく人が知っていれば助かるなというところをまとめました。
-- あの頃はまだ(Java関係では)マルチスレッド関係をきちんとまとめた本は少なかったですね。
どうしても、マルチスレッド関連の説明をしようとすると特定のライブラリ(Javaもそうですが)に特化した説明になってしまいがちで、なかなか難しいですね。
--Javaに対して「一言いいたい」部分はなんですか
JVM自体はだんだんよくなっています。最近の実装では効率のよいものがちょこちょこ出てきていますね。
例えばJ2MEのCVMというVMはJVMよりも少ないメモリでそこそこの性能がでてます。CVMに関してはLinuxとかでも動く処理系が出てきています。ソースが公開されていて、いじってると結構楽しいですよ。ライセンスはGPLとかじゃなくSUNのライセンスですが。あと、Taoのintentもなかなか面白いと思います。
もちろん普通のJava2SEの方もVMの性能が相当よくなってきています。
ただJ2SEのAPIの方は大きすぎるという印象があります。みんなが欲しい機能を全部くっつけたような、なんでもありの状態というか。そこらへんは個人的にはちょっと困るなと思っています。
-- ある種メジャーへの道というか。
仕方ないのかも知れないですけどね。APIに関しては1.2、1.3 とバージョンがあがってくたびに、ほとんど倍になっていくみたいですが。
-- それ以外でなにかありますか?
まだ(Java)デスクトップのアプリケーションであまり使われていないので、もっと使われるようになって欲しいですね。
(Javaがデスクトップアプリケーションに通常に使われるようになるには)今は起動に時間がかかるとか、アプリケーションを複数立ち上げるときにプロセス間でコードをシェアできないといった問題があります。これに関しては一所懸命取り組んでる人がいるようですが
そこらへんの技術的なネックが解除されて使われるようになれば、Java好きの人にとってはとてもよい感じになるんじゃないでしょうか。
-- 最近ではサーバサイドに注目がいってますね
(デスクトップ系も)まだ期待はしてるんですけどね(笑)
後はセキュリティですね。Javaはセキュリティ機能を考慮していると言われることが多いですが、まだDoS攻撃の問題だけは解決されていないんですよ。一つのVMの中にいろいろなところからコードが集まってきたときに、他のコードの邪魔が出来たりするんですよ。VMのロックをかけて解放しないアプリケーションとか。
-- やろうと思えばできちゃうと
それを解決するする方法はまだまだ研究室の段階ですが、実用化されればモバイルエージェントも実用的な段階に入ると思います。-- 今後の展望は
今の動きを見るとエンタープライズ系と組み込み系に二分されていますが、願わくばデスクトップ系も成長して欲しいと思います。すぐにはうまくいかないと思いますが。
--引き続いてPnutsの方の話を。一月以来バージョンアップしていませんが
4ヶ月くらいでバージョンアップしてます。もうそろそろバージョンアップの時期ですね(注:取材時5月中旬)ユーザの方が4ヶ月くらいで入れ替わるようなのでちょうどいいペースなのではと。
最初は単にテストツールとして開発したんですが、そのうち単独でも面白いツールになると思い開発を続けることにしました。開発自体は僕一人でやってます。 JavaCCというコンパイラコンパイラが非常に便利で、言語処理系自体は簡単に作れます。あとはAPIをより便利に整理したり、(オンザフライ)コンパイラを搭載したりして開発を続けています。
-- PnutsのコードをJavaのバイトコードに変換しながら実行するんですね
はい。おかげで性能的には思ったよりほかの言語処理系に比べて遜色ないスピードが出ています。JVM自体の性能が上がってきたので、それに助けられていてPnuts自体はそんなにがんばってないんですが(笑)
-- 最初のバージョンを作るのにどれくらいかかりましたか?
最初のバージョンは1ヶ月くらいでつくりました。
-- どれくらいの時間を割いてるんですか?
基本的には空いている時間にやってます。(会社では)一応業務に差し支えない程度に時間を割くのは問題無いということになってますが、その代わりにSUNのコピーライトで出してます。
-- それで商売しようという気は?
言語処理系だけでお金をとって儲かるのは稀ですよね。Pnutsに関しては誰でもいいので気に入った人に使ってもらえればいいと思ってます。ただし提供する側がやらなければならない仕事は、きっちりやろうと思ってます。
--Pnutsの名前の由来は?何かの略語とか。
大した意味はなくて、ひとつは覚えやすいということと、その頃の検索エンジンでほとんど引っかからない単語を選びました。
-- 今後の展望として考えてることはありますか?
Pnutsに関してはきちんとケリをつけてフィックスしたいですね。ある程度他のこともできる時間が欲しいので。一冊(Pnutsに関する)本が書ければいいと思います。あとは誰かに引き継いでもらうとか(笑)
-- 最近はどのような分野の仕事をされているのですか?
主にJava2ME周りの仕事です。Java2MEを使いたいという企業の方のお手伝いですね。JVMからその上で動くサービスまでひろいレンジで仕事をしています。組み込み系とJavaの接点で仕事をしています。
-- 最近はエンタープライズ系はあんまり
触って無いですね。
-- 今の仕事で面白い部分は?
携帯電話だと各社の環境の違いが多種多様で面白いですね。ユーザとしても面白い部分があります。Javaの実行環境は各社が一番競っている部分でもありますし。
-- それではお堅い話はこれくらいにして、趣味の話を聞かせてください。
一番好きなのは山歩きです。大学の頃は山岳部で、街の山岳会にもはいっていろいろな山を登ってました。大学時代の三年間くらいは真剣にスポーツとしてやってました。
-- 絶壁を登ったりもするんですか?
はい。当時はフランスまでいって壁を登ったりしました。
-- 最近はフリークライミングがはやってますね。
あれは本当に日々のトレーニングが重要なスポーツですね。普段の生活では使わない筋肉を使うので、たまにやると腕がボーリングのピンみたいになっちゃいますね。
-- 最近はあんまりいってない?
結婚してからは妻と一年に一回くらいはいっていたんですが、子供が生まれてからは行ってません。
最近は(CATVの)将棋番組を見るのが趣味です
-- 渋い。将棋って見てても楽しいものですか?
東京将棋会館にタイトル戦とかを見に行くとプロの先生が解説してくれたりします。ホントに娯楽としても面白いですよ。
-- 自宅ではコンピュータ関係は?
最近はあんまりやらないです。子供を寝かすのが大変で。
-- 話はちょっと変わりますがコンピュータを始めたきっかけは
小さいころはキーボードプレイヤーになりたくて、YMOとか喜多郎とかにあこがれていました。それでYAMAHAのMSXのパソコ ンを買ったりしたのがきっかけです。
-- 今でもピアノを弾かれたりしますか?
たまに気晴らし程度に弾くことがあります。
--最後に新人エンジニアへのメッセージをお願いします?(時期的に新人が配属される時期なので)
いくら普段の業務が忙しくても、それをこなした上で何かひとつ自分の好きな技術を追っかけるようにするべきだと思いますね。
-- それはご自身の経験からですか?
自分に言い聞かせてる面もあります(笑)。 全然違う分野のことを業務でやっていても、時間をつくって自分の好きな分野をずっと勉強していくと懐が深くなっていきます。そうしていくと、すぐには役に立たなくても、そのうち自然とそれが生かされるような状況になってくると思います。
-- 確かに(勉強の成果が)自然とどこかでつながってくることがあるますね。
業務だけじゃなく有望な技術とか、自分で思いついたアイディアとかは大事にして続けていくべきだといます。
-- 最後になにか付け加えたい点は?
Pnutsの件では気軽に連絡してください(笑)
インタビュー後、戸松さんに増補版「Javaプログラムデザイン」を頂きました。(ご本人のサインも書いていただきました)
こちらのレアアイテムを抽選で1名の方にプレゼントしたいと思います。
ご希望の方は、お名前、ご住所をお書きの上、
oosquare-editor@ogis-ri.co.jp 「Javaプログラムデザインプレゼント係」までEメールにてお送りください。(Subjectに明記してください)
期限:2001年6月末日まで
© 2001 OGIS-RI Co., Ltd. |
|