ObjectSquare [2000 年 6 月号]

[OOエンジニアの輪!]


OOエンジニアの輪!

〜 第4回 大島芳樹さんの巻 〜


前回の青木淳さんからご紹介いただいた今回のゲストは大島芳樹さんです。大島さんは、現在東京工業大学に在学中。Smalltalk の処理系である Squeak をシャープ(株)の Zaurus 上に移植した Squeak/Zaurus「ざうちゅう」を公開していらっしゃいます。今回のインタビューではこの「ざうちゅう」の話を中心にいろいろとお話を伺っています。

大島さんのような若い方もご紹介できるとあって、いよいよこの「OOエンジニアの輪」が広がってきたように思います。うれしい限りですね。


オブジェクト指向言語との出会い

--- 大島さん自身は、オブジェクト指向をやっているというイメージですか?Smalltalk をやっているというイメージですか?

ま、Smalltalk ですね。…本当の一番最初は、大学 3 年生のときの課題で、研究室に関係のあることなら何をやってもよい、というもので、小さな言語の parser を書こうと思ったんです、…忘れましたけど(笑)、C++ で書いたのは確かです。いわゆるオブジェクト指向言語に分類されるもので書いたのは、それが一番最初だったんだと思います。

--- あまりその段階では、OO って面白いなぁとか、そういう話にもならずに?

まあ、ある意味、オブジェクト指向は常識と言うか、当然それでやるもんだろうという感じはあったんで。…よく知人から言われるんですけど、インフォーマルな言葉遣いをするらしいんですね。ネットワークの話とかでも、「ある機械に SMTP でなんとかって 言えばなんとかって答えるから」、機械に対して言うとか、そういう言葉遣いを人よりはするらしくて。実感はないんですけど(笑)。そういう意味では、プログラムのコンストラクトを擬人化と言えば大げさですけど、実体のあるものとして考えるのは、僕が普段する説明に近い考え方だなぁということは思ってはいたんだと思います。


Smalltalk を始めたきっかけ

--- Smalltalk を始めたのはいつ頃なんですか?

始めたのは 97 年の 10 月頃ですね。

--- それはどうしてなんですか?

OOPSLA ってありますよね。OOPSLA に student volunteer っていう資格で、登録料はただになるけどちょっと仕事をするっていうのがあるんですけれど、世界中から学生を 80 人ぐらい募集するっていうのに応募して行ったのが最初なんです。それまではオブジェクト指向と言えば当然 C++ で、Smalltalk ってのはもう昔の言語で、誰も使っていないものに違いないと、見たこともないまま思っていたんですけど。Smalltalker は OOPSLA ぐらいしか行くところがないから、って話もあるんですけれど(笑)、(Smalltalk は)実はすごく使われていて、OOPSLA のエキシビジョンとか行けば Smalltalk のソリューションを売るっていうのでブースを設けている会社が並んでいたりとかして、「意外と使われているんだなぁ」と思ったんです。

その年に、Squeak の最初の論文が OOPSLA で発表されて。その論文の発表のときも、Squeak は小さな機械で動く、っていうことは言っていたんですね。で、その発表の後で、同じ大学の松岡先生という方がいるんですけれど、松岡先生というのはオモチャみたいのをあちこち持って行っては見せびらかして人をびっくりさせるのが好きで、その時は Power Zaurus というのを持って行っていたんですけど、それを Squeak チームの人に「これにも移植できるんじゃないのか」って見せびらかしていたんですね。僕、そんな話をしているなんてぜんぜん知らなくて、ただその辺うろうろ歩いていたんです。そしたら松岡さんに呼ばれて、「君たち、Squeak を Zaurus に移植するというのは面白そうだとは思わないかね」って(笑)。

--- ほぉ〜(笑)

だから、Squeak ってのはあるらしいけど、「ふ〜ん」ていう感じだったんです。「面白そうですね」と言うだけ言ったんですけど。で、日本に帰って、ちょっと Squeak をダウンロードして使ってみたりし始めたのが、Smalltalk, Squeak との出会いですね。

--- その時たまたまそこを通りかからなければ、やってないかも知れないんですね。

やってないですね。人生変わっていたんですね(笑)。


Zaurus への移植

Zaurus 用のアプリケーションは MORE ソフトといって、後からコンパイルしてダウンロードして動かす、というのは昔からあったんですけど、97 年の時っていうのは、MORE ソフトを作る開発環境というのが、絶対に学生風情には出せない、という態度で。確かに向こうにしてみると、学生からいきなり「あるソフトを作りたいと思っているので開発環境を入手できないか」と言われても困ったのかもしれませんけど。その頃はすごく closed なやり方で。

--- ありますよね。企業だと。

でも、結局その後他の Windows CE とか Palm とかが出てきて、特に Palm はユーザがいろんなソフトを作っているからすごく盛り上がっているというのがあって。Palm とかが話題になって、ようやくそれで少しポリシーを変えたんだと思うんですけど。98 年の 5 月だったと思うんですけど、ビジネスショーがあって、そこで開発環境の体験版というのを配り始めたんですよ。そんな風に配るんだったらもっと早くに…とも思ったんですけど(笑)。

それで、もらってきて、作業がようやく始められるようになったと。まあ、作業といっても、本当に片手間でやっている話ではあったんですけれど。

--- じゃ、この間の半年ぐらいは結構悶々としていた訳ですか。

ま、悶々というほどそればっかりやっていた訳ではないです(笑)。

--- 開発環境が手に入ってからはどうでした?ちなみに、この開発環境って C ですか?

そうですね。Squeak の移植は、Zaurus の MORE ソフトの仮定しているプログラムの書き方からは逸脱した形にはなったんですけど、無理矢理関係ないからやっちゃえ!って感じで。こう書けば動くだろう、と思って書いたらたまたま動いたので。それは始めてから、その時はちょうどフランスワールドカップとかやっていて、衛星放送で全試合見たような気がしなくもないんですけれど(笑)、そういうことをしている合間に書いて、多分 2〜3 週間ぐらいですかね。絵が出てペン入力ができるようになるところまではいった、という感じですね。

--- はぁ、すごいですねぇ。ちなみにカーネルというか、エンジンというか、コアの部分はどれくらいのサイズなんですか?

バーチャルマシンは Squeak で書かれているんですけれど、1 万行とかって言えばいいのかな。それは Squeak から C にトランスレートできて、できた C をコンパイルすると、バーチャルマシンとして動くんです。あとはペン入力を受け付けるところとか、画面へビットマップを出すところとかっていうのは、Zaurus の API を呼ぶようなのを C で書いてリンクするわけです。

--- じゃ、VM 自体っていうのはそのままで。

そうですね。本当にそのままですね。


Alan Kay の反応は?

--- 移植できて、どうされたんですか?

それもいろいろ微妙なタイミングがあったんですけれど、(98 年) 7 月に APCHI という国際会議が日本であったらしくて、僕は参加していないんですが、Alan Kay が招待講演で日本に来るという話を聞いていて。本当にいいタイミングだったんですけど、動いてしばらくしたら来る、というような感じになって。で、松岡さんに、Alan が秋葉原に行きたい、と言ったらしいんですよ。暇そうな学生で案内してくれそうな奴はいないか、って多分聞かれたんだと思うんですけど(笑)。結局僕のところに話が来て。その時、実は松岡先生は Squeak が動くようになっているということは知らなくて。その後メールで動くようになっているとは言ったんで、もっとびっくりさせてやれば良かったのかもしれないんですけど(笑)。

--- 反応はどうでした?

まあ、PDA で動いたっていうのは別に初めてじゃなかったし、それに Power Zaurus というのは当時としては高性能だったんですけど、やはりハードウェアとしてはまだ貧弱で、ウインドウが出てちょっといじれるよ、ってくらいでしかなかったんで。まあ「動いてる、動いてる」っていうぐらいですかね。

--- その後他にも公開されていったわけですが、反響はいかがでしたか?

僕はその時は Smalltalker としては新米で、そもそも Smalltalk のコードとかをほとんど書いたことがないまま VM は移植した、みたいな変な感じだったんです(笑)。もともと日本でも以前は Smalltalk を研究などで使っていた人は多かったようで、そういう方々からは「すごい」とかという感じではあったと思うんです。ま、でも結局実際のところ、当時の Power Zaurus ではハードウェアが Squeak を動かすには厳しくて、大したことはできなかったんですけど。

--- Smalltalk コミュニティの人たちと付き合いが始まったのはこのあたりからですか?

そうですね。98 年の時の話でいけば、OOPSLA は年に 1 回だから、10 月にあるわけで。その時は、Disney の人が旅費を出してくれて、行って見せてきましたね。


Squeak の使いどころ

--- Zaurus って結構頻繁に新しいのが出てきますよね。

そうですね。半年とか…。99 年の 4 月に ICRUISE ってのが出たんですよ。これはハードウェアがすごくて、640*480 のカラー液晶が載っていて、CPU もかなりで。これまで何がネックだったかというと、メモリの搭載量が昔は 2MB しかなかったんですけど、ICRUISE とかは 8MB 積んでいて。それでもう、何でもできるようになったという。

Squeak の場合、VM の上で動くイメージをいかに大きくできるか、っていうのが鍵なんです。昔だと、2MB のうちユーザのアプリケーションから使えるヒープってのは 800KB しかなくて、それは本当に厳しかったんですよ。一生懸命 shrink したイメージを作っても 600KB ぐらいになって、動かすと 700KB ぐらいになっちゃって、ウインドウを 1 個開いてもやっぱり 20KB とか使っちゃいますから、そういうのを 1 つ 2 つ開くともう動かなくなっちゃう、という状況だったんで。8MB あれば、そのうち 5MB ぐらいしか使えないって言えば使えないんですけど、何でもできる。

…ここで、Zaurus に搭載したデジタルカメラを Squeak 上から操作する、といったデモンストレーションを見せていただいたりしています。

ネットワークとか、IrDA とか、サウンドとか、一応今あるハードウェアは Squeak から叩けるようになっています。

だから、去年ぐらいから「本当に使おうじゃないか」という話になってきて。Disney とか、Disney Online と言ってますけど、コンピュータと無縁なわけではなくて、逆に子供とかにコンピュータを使わせる最初の 1 ステップとしてコンピュータを使っていろいろやる、というので力を入れているんですけど、もしかしたら Disney Online でアニメーションを配信するとかっていうプラットフォームやコンテンツを作るところに Squeak を使うとか、って話もありますし。あと、Zaurus 版をハードウェアとしてはよく動くようになっているので、使うのではないかという話で、どういう機能がいるとか、作ったよとかというやりとりを頻繁に行ったりしてます。


今後の展望(?)

--- お話を聞いてますと、こういったのを完全に "Squeak OS" じゃないですけど、そういう PDA が出てきたら面白いですね。

その通りなんですよ。Zaurus OS いらないんですよ(笑)。本当にそういうのを作れると…別に Zaurus 上である必要はないんですけれど。PDA としてあるといいですね。

--- ぜひ(笑)。


© 2000 OGIS-RI Co., Ltd.
Prev Index Next
Prev. Index Next