korakuriderさん

http://d.hatena.ne.jp/korakurider/20050503/p2にある質問について、勝手に想像した答えを書いてみます。

Tweakが完成した暁には、TweakとSqueakはどういう関係にあるのか?文法やコンパイラまで拡張しているようだが、Traitsのように、使わなければ無視できる種類の言語拡張なのか、それともSqueakとはまったく独立したシステム(Smalltalkの新たな変種実装)になるのか?

Tweakは、Smalltalkとは異なるオブジェクトモデルに基づいた言語とGUI環境です。現状では、画面に何かを表示したりしないのであれば、CObject以下のクラスを無視することによってSmalltalkとして使えますが、Tweakの画面に少しでも何かを出そうと思ったらTweakのオブジェクトを使わないといけません。将来的には、画面に出さないものもTweakのイベントモデルを使って通信することが推奨されるものと思われます。

Tweakには、Squeakと独立したライセンスがあるらしい。(http://tweak.impara.de/ABOUT/License/)しかも「オープンソース」として扱えるMITライセンスだ。Squeak上で作られたものなのに、こんなことが可能なのか?

dual licenseは許されている、という解釈がどこかにありました。でも、微妙な気はしますよね。

ごりごり開発している人には大変興味深いシステムですが、eToyで作品を書いているユーザにとって、Tweakに移行することにはどういう意味があるのか?たとえば、今までは困難だった、Event Drivenな動きや同期処理をタイルスクリプトで書けるとか、そういう新たな可能性がありそうなら、探求してみたいです。

ひとつの言い方は、eToys2の実装言語がTweakになる、ということです。新しい機能を使いたければ、Tweak版のeToysを使ってくれ、と言うことになります。

が、実はもっと深い理由があります。Tweakの特徴は、eToysのようなプレイヤとコスチュームのアーキテクチャが上から下まで使われていることで、今のMorphicとeToysのような境界がありません。建前としては、Tweakのオブジェクトとしてオブジェクトを作ると、テクスチャルなコードからでもタイルからでもそのオブジェクトのすべての機能が使えるようになります(建前としては)。ですので、イベントを受け取って動作するようなふつうのTweakのオブジェクトはその振る舞いをテキストとしてもタイルとしても自由に編集することができるようになるはずです。