SqueakJS 5.0

SqueakというSmalltalk処理系があります。
SmalltalkXeroxパロアルト研究所で生まれましたが、いくつかの社内バージョンをへてSmalltalk-80として発表されました。

XEROXはいくつかの企業にSmalltalk-80をライセンスしました。その内の一つがApple Smalltalk。僕も高校生の時に10ドルとかで入手して、クラスブラウザ開いて首ひねってました。
さっぱりわからないので本屋にいって解説本を見つけても、仮想機械の実装が書いてあって、いやそこじゃなくてと帰ってきた記憶があります。
そもそもバカほど値段が高かったので、買えるわけもなかったんですが。

とにかくApple Smalltlakを源とするとのことなので、その時のコードも残っていそうです。

XEROX社内にはSmalltalkかInterLisp-Dが起動するマシンがあったといいます。
その流れでOSかのように振る舞い、現在においても相当強力なプログラミング環境なのですが、立ち位置として風変わりなゲストOSになってしまっています。
しかも鎖国状態というか...そしてホストOSに近づいても距離を置かれる有様。Smalltalkの偉い人にそんなことはないと怒られそうですが。

今はWebブラウザ上で動くSqueakJSというものがあります。一旦ダウンロードしてしまえば、オフラインでも動作します。
僕は新しいもの好きなので、SqueakJS 5.0を動かしています。動かして何をしているかといえば、クラスブラウザを開いて実装を読んでます。
やってることが高校生時代と同じです。

あ、Smalltalkは動的オブジェクト指向プログラム言語です。全てがオブジェクトとして表現され、オブジェクトにメッセージを送ることで処理が行われます。
それは制御構造でさえもそうなっている...ように見えますが、実際は最適化されて普通の言語のように処理されてるそうです。

夢のない話です。