Alan Kay 创造 "OOP(面向对象)" 一词时, 包含以下三个含义:
- 一切都是对象
- 对象通过消息进行沟通
- 对象解释它所理解的消息
Smalltalk 展示了如何实施这些想法。
许多编程语言都支持面向对象风格的编程, 它们通常关注第 1 点, 而对 2, 3 点缺少关注。
Dynatalk 致力于对象之间的交流, 尤其关心不同语言/环境之间的互操作。
Dynatalk 提供的通信对象被抽象化为 Agent, 它在行为上类似于 Actor 模型。
早先的 Dynatalk 存在以下问题:
- 核心不够清晰(与 Roblox Agent 项目有很多耦合)
- 基于 Agency 实现。Agency 在关注点分离上做得不理想。新版本的过度设计使项目变得复杂。
新的 Dynatalk 打算兼容 Agency(1.6.1) 的消息结构, 数据结构的兼容使得它们可以进行互操作。根据需要, 可以复用之前的资产。
- 消息管道: MQTT。 如有需要, 可以轻松替换为 RabbitMQ 、 ZeroMQ、进程间的消息机制...
- 在探索性环境(Lively, Squeak, Snap!...)中构建早期原型
- Agency
- lively messenger
- MicroBlocks IDE 与 VM 的通信
- Squeak 的对象/消息机制
- CodeLab Adapter
- 建立在异步消息之上的同步指令
- 在 Roblox 中探索自主 Agent