Squeak on Google Native Client

再び更新です。今回は、Native Clientの中のSqueakとブラウザの中のJavaScriptの間でデータの受け渡しをできるようにしてみました。

http://tinlizzie.org/~ohshima/squeak

にアクセスして、画面が出てきたら青色の車のハンドルを右クリックし、青ハロでぐるぐる回してみてください。一番したのテキストフィールドの値が変わります。反対向きは、その上の数値を入力し、横のボタンを押すとSqueakの中の車の曲がり具合が変わります。

JavaScript側にも車を作って同じハンドルで2台の車が運転できるようにもしたかったのですが、時間切れになってしまいました。

というわけなのですが、Squeakに限らず、Native Clientはいったい何の役に立つのか考えてしまいますね。インターネットでオブジェクト指向だと言えば、やはりオブジェクトは自分の実行環境も運んでいろいろなノードに移りつつ計算を行うというモバイルエージェントがあるべき姿なのですが、Native Clientならまさにどんな言語で書かれていてもその実行環境を運んでいけるわけで、Java VMやらの単一実行系の存在を仮定しなくても(Chromeの存在は仮定しますが)、モバイルエージェントが作れるかもしれないという気はするのですよね。ラウンドトリップが問題になるようなアプリであれば、サーバーで物事を実行する代わりにユーザのところで実行できるし、マルチコアのCPUだったりもすれば、重い計算ももしかしたらJavaScriptだけでやるよりも何倍も速くできるかもしれないという。レガシーソフトウェアを動かすだけでは終わらない何かは出てくるような気はします。

ところで、モバイルエージェントと言えば佐藤先生が頻繁に言及している特許問題もありますが、「もちろん先行事例もドキュメントもある話で、『俺が育てた』ようなものだから、特許のことなど気にするな」と言う人が近くにいるので、この問題の素人としてはどういうことなのか迷ってもしまいます。どうなんでしょう。