Vista Smalltalk flash で遊んでみました
That page has expired. さんで Vista Smalltalk Flash という、 いろいろ複雑な感想を抱いてしまう名前*1の Smalltalk の実装系が紹介されていたので遊んでみました。
Vista Smalltalkの Homeへジャンプしたら、Adobe の Flashベースの 新リッチクライアント環境 Apollo で動くVst Apolloのがあったので、それをダウンロード。
さて、Vista Smalltalk Flash (Apollo)ですが、なにより見た目が格好いいですね。
Vista Smalltalk は Visual Works のようなランチャータイプじゃなくって、Squeakのように独自のデスクトップを持っているのですが、ウインドウ枠もワールドの背景も半透明で、ワールドを最大化するとMac の ダッシュボードみたいな雰囲気がでて非常に格好いい。ただまだちょっとウインドウデザインがこなれていなって、半透明ゆえにタイトルバーの文字が見づらいのと、ウインドウのリサイズが何処を掴めばよいのか解りにくいのが難点です。(この辺は時間が解決するでしょう)
見た目に満足した後はさあ中身を眺めましょうか、と早速クラスブラウザを立ち上げて見てみると、、、、、
、、、、えっと、これはLispです。
クラスブラウザに並んでいるクラスは、Smalltalker にはおなじみのモノばかりなのにコードペインに現れるのはことごとく Lisp。Transcript >> #Show: ですら
と、こんな感じ。Vista Smalltalk Flash の 「Smalltalk」とはどうも環境としての Smalltalk のコトらしいです(笑)
* * *
この コードペインに現れる Lisp は Smalltalk のコードのセマンティクスそのままに直訳可能になっていて、例えば HelloWorld、
Transcript show: 'hello,SmalltalkWorld'
は、
(@show- Transcript "hello,LispWorld")
のように書けます。
メッセージ式の書き方さえ解ってしまえば、後はテンポラリ変数は let、代入は setq、ブロックは lambda という素直な対応になっているのでスラスラ書けそうです。
http://vistascript.net/vistascript/docuwiki/doku.php をざっと見てるとどうやらちょっと前のバージョンのクラスブラウザは、Lisp と Smalltalk を切り替えるボタンがクラスブラウザについていて、表示をスイッチできた模様。最初っから Lisp一本 という訳ではなかったということみたい。
今のバージョンはクラスブラウザが Smalltalk コードに対応していないようなのですが(裏技あるかしら)、Smalltalk全く書けないというわけじゃなくって Smalltalk用のWorkspace 上では Smalltalkコードが書けます。(カスケードメッセージに対応していないけど)
まだこの環境をざっと眺めただけなので、何故デフォルト言語が Lispの独自方言 になっているか、猫にはその理由はよく解っていないのですが、Lisp なメッセージ式は結構好きです。
カスケードメッセージに対応していないとか、デバッガが無いとか、クラスブラウザに名前は出てもまだ中身のないクラスがあるとか、イメージを保存出来ない(と思う・・・)とか、まだまだこれから感があるのですが、面白い環境だな〜、と思います。
猫的には ブラウザの枠の外で動いたりメインウインドウの背景が半透明になる Apollo 版が お気に入りなのですが、Flashなので、Apollo をインストールしたり Vst Apollo をダウンロードしなくても ここ から遊ぶコトができます。どうぞお試しアレ。
*1:なんだか名前が自己矛盾してそうというか、アニメの続編のような名前と言うか