なぜSqueakか?

最近、ゲームもやらずに(や、一応本業ゲーム屋なので、それもどうかと思いますが(^^;))空き時間をひたすらSqueakにつぎ込んじゃってますが、なぜわざわざSqueakなのかって話をちょっと。

まず一番の理由は Florian の興味の範疇がやたらと広いからというのが挙げられます。そりゃもう、本業の方ではいろんな怪しげシステムをとっかえひっかえしながら使っていますが、そもそも不思議OSが大好きなんですよ。Symbian(EPOC32)やら、PIECEやら、BTRONやら、BeOSやら。仕事で使っている組み込み用、コンテンツ用OSもいれると、結構すごいことに。
Smalltalkは大学のころSONY/TektronixのSmalltalkマシンで触ったのが最後(ちなみに最初はOh!MZの記事で知った)で、以前からMI-Zaurusで動いたいたという話もあって興味あったのですが、しばらくブランクがありました。これが、Zaurus用のセルフ開発環境をいろいろと試していた時にたまたま引っ掛かり、別の本をさがしていた時にたまたま「Squeak入門」と「Play with Squeak」を見つけたというのが使い始めた理由です。
ようは、単に運と巡り合わせで積極的な理由が始めからあった訳ではないって事ですね(^^;)。

二つ目の理由としてはSqueak自体のユーザーインターフェースが気に入ったからという物が挙げられます。
Florian は良いUIとして以下の条件を考えています。

  • 何にでも同じ操作が成り立つ(直交性)
  • パッと見て何をしていいのかすぐ分かる(直観的)
  • いつでも別の物事に取り掛かれる(モードレス)

さすがにこの辺は、Xerox Star直系の環境だけあって大変意識的です。ハローというちょっと習得を必要とするインターフェースはありますが、ハローのお陰でできることは大変増えていますし、一度ハローの持つメタファーになれてしまえば大変直交性高く扱うことができます。「回転」なんてのがすべての画面上のオブジェクトに対して出来ると知った時にはなかなか感動的でしたね。メニューすらもまわるんだもんなぁ(^^;)。
これは、ユーザーインタフェースというものに対して、かなり高度な抽象化がなされており、なおかつその抽象化によって得られる利益がかなり大きいという確信のなせる技でしょうね。

あと、SqueakAlan Kay博士の提唱する「パーソナルなコンピュータ」DynaBookの系譜に位置するという出自からも明らかなように、人間の知識活動を補佐する方向でさまざまな設計がなされています。
Florian 自身はコンピュータを、絵かきの筆や、作曲家のピアノと同じぐらいの意味で「イメージ実現のための便利な道具」としてしか見ていませんが、それでも「パーソナルコンピュータ」は人間の活動を補佐する、ないしは拡張する存在であってほしいと思っています(実はこの観点に立つと、 Florian はパーソナルコンピュータを必要としていないのですが、それは、さておき(^^;))。
なので、Squeakの持つ知識処理のための方法論や、どんなメディアでも平気で扱うようなスタンスや、それらの総体としての生命感が大変好ましく見えます。


とはいえ。

UIに意識的なのは、現代のOSは多かれ少なかれ常識と化していますので、程度の差こそあれどんな環境を使ってもそこそこ統一感のある使い勝手を味わうことは出来ます。WindowsMacintoshだって、Xerox starの反省を踏まえたものになっていますし、Gnome,KDEや古くはMotifだってUIのガイドラインを決めた上でアプリケーションの実装がなされています。

知識処理も、Squeakが飛び抜けていいという訳ではありません。ActiveXやOpenDoc(なつかしい(^^;))は統括的な知識処理のために作られたものでしょうし、純粋に知識処理を行うというだけであれば、OS自体がハイパーテキスト構造を持っているBTRONの方が人間の感覚に近い知識表現を行うことが出来るかも知れません。

そうして見ると、Squeakという環境は教育目的のため以外は明らかな優位性を持っている訳ではないのかも知れません。
ここで言う教育とは、eToysだけを指すものではなくて、Squeakを使う人が意識せざるを得ないさまざまな項目一つ一つすべてを指しています。曰く、オブジェクトを生成し、内部にデータを溜め、操作することによって自然と「オブジェクト指向環境」を意識するようになるということや、単純な文法によるプログラミング言語によって、逐次処理というメタファーを受け入れることや、システムの全ソースが書き換え可能・再評価可能な状態でユーザーに預けられている事など。
でも。
遥か昔、 Florian がまだコンピュータというものを知らなかった頃、初めてマイクロコンピュータに触った時には、その環境には知識処理的な観点こそあまりありませんでしたが、徐々にノイマン型コンピュータという新たな世界が開けて行く感触に感動した記憶があります。その感触は、BASICという教育及び簡易処理を目的とした環境から、マシン語を覚え、当時のOSに当たる「マシン語モニタ」のソースを読む(当時 Florian が使っていたMZ-700には、マニュアルに全ソースコードが乗っていた)ことでさらに広がって行きました。
もちろん、 Florian は特殊な例です。1980年代前半のマイコンブームは数多くのマイクロコンピュータを世界に広げましたが、BASICによって世界が広がる感触を得た人は残念ながら稀でしょう。ほとんどの人は、マニュアルを片手に言われるまま操作をするだけで、血肉として新しい世界を受け入れるには至らなかったと思います。
でも、 Florian にはSqueakに、あの当時のわくわくが、もっと敷居の低い形で込められているような気がしています。そして、まがりなりにも知識処理という実用性が備わっている上で、「コンピュータとは何か」や、ひいては「世界をどのように理解するか」という訓練を、Squeakを使っている人は徐々に理解して行けるのではないかと。

世界が広がることは人間としての根源的な快楽のひとつだと Florian は思っています。それは、例えば初めて乗った自転車のような、近所の森にもぐりこんでケガをするような、おばあちゃんの昔話を聞くようなものと同じレベルで、コンピュータというメタファによって、世界の構造に触れることも、はやり快楽だと思えるのです。
そういう意味で、 Florian は、世界を人に見せるおせっかいのために、そして何より自分がその快楽を追体験するためにSqueakを使っていたり、Squeakについていろいろ書いているのかもしれませんね。