Squeak/Smalltalk

介绍

Squeak 是 Smalltalk 的现代实现.

有几位 Smalltalk-80 的实现者(他们之前在施乐实验室创造了 Smalltalk)都参与到了 Squeak 中,包括 Alan Kay 和 Daniel Ingall,这个项目依然在持续演进,他们抱有跟今天计算机整个领域不同的愿景。

MIT媒体实验室推动的OLPC计划,采用Squeak作为开发环境。

Etoys、Croquet、第一代的Scratch都是用 Squeak 实现的。

关于 Squeak 入门,可参考Smalltalk 入门导览

接入 Adapter

有很多种方式将 Squeak 和 Adapter连在一起,诸如HTTP、Websocket、ZeroMQ,系统调用(Adapter python client提供系统命令),你也可以自己写一个Adapter插件来连接两者。

目前我最喜欢的一种方式是使用 OSC, 由于最新的Adapter内置了 OSC server,所以我们可以轻松将Squeak用作 osc cleint, 消息流向是 Squeak->Adapter

demo

在Squeak中, 下载 OSC : OSC-SimonHolland, 之后拖到 Squeak 桌面,加载使用即可。

(OSCMessage for: {'/eim/osc' . 1}) sendTo: #[127 0 0 1] port: 12361.  "turn right"

(OSCMessage for: {'/eim/osc' . 0}) sendTo: #[127 0 0 1] port: 12361. "forward"

(OSCMessage for: {'/eim/osc' . -1}) sendTo: #[127 0 0 1] port: 12361.  "turn right"

以上的代码将控制Scratch里的飞行器:

squeak-scratch-demo

进阶

你也可以在Squeak中运行 OSC server,此时消息流向是 Adapter -> Squeak

以上代码也可以运行在其他smalltalk方言中,诸如 Pharo。

参考