Etoys¶
介绍¶
Etoys 是:
- 一种教育工具,向孩子们传授强大的思想(powerful ideas)
- 丰富的媒体创作环境和可视化编程系统
- 开放系统,几乎适用于所有个人电脑
Etoys 的开发始于迪斯尼,由艾伦·凯(Alan Kay)主导,受 Seymour Papert 的 Logo 语言影响,支持建构主义学习。
开发团队包括:Scott Wallace、Ted Kaehler、John Maloney 和 Dan Ingalls。
极大影响了 Scratch(John Maloney 是 Scratch 的首席架构师)
截图¶
接入 Adapter¶
Etoys 的最后一次更新是 2012 年(5.0 版本)。
我们试图通过将其接入 Adatper,使其得到 Adapter 连接的整个生态:物联网、AI、开源硬件... 使 Etoys 强大的表达能力与新的技术融合。
思路¶
接入的思路是"hack"。
Etoys与外部通信的方式并不多,在 百宝箱 里,仅发现了Scratch客户端,可以与外部通信。
于是我们通过将 Adapter 伪装成 Scratch 1.3,来与Etoys通信,消息流向是(Etoys->Adatper->Scratch3.0
)
由于百宝箱里的 Scratch客户端是socket client,所以更复杂的通信也是可能的,但Etoys->Adatper->Scratch3.0
是我自己的典型使用场景。 更多细节参考: Etoys 学习笔记: 与 Scratch 互操作.
也欢迎你自己进行hack :)
使用¶
使用方式很简单,在Adapter 中开启 extension_socket_server
插件(如果不存在该插件,到插件市场下载即可),源码在extension_socket_server.py
开启插件后,加载demo程序,并点击绿旗运行它。
之后在 Etoys 里使用 broadcask 积木 即可:
提醒
在使用具体积木时,需要先建立连接,点击 Etoys里Scratch客户端即可,如果连接顺利,猫的眼睛会睁开。
以下是一个简单的例子:
使用Etoys里的按钮打开本地目录和CodeLab主页,背后利用到了 Adapter Python Extension的能力:
一切都是消息!
Etoys 与 Scratch 对比¶
Scratch适合入门,它通过给定清晰的结构,提供更多确定性,让入门变得容易(不必担心搞乱环境)。
随着项目变得更复杂,Etoys是更理想的选择,因其拥有继承自Smalltalk的强大环境和表达能力,惊人的一致性,彻底的面向对象,随着项目逐渐生长,复杂度总是在可控的范围内(因为消息-对象隐喻)。
随着项目变得复杂,Scratch用户需要掌握越来越多的“技巧”,编程成为一件搜罗和记忆许多技巧(特例)的乏味工作(就像传统计算机教育),环境无法提供更多的支持。
Etoys/Squeak 为“Scratch下一步是什么?”提供了理想的答案: Scratch -> Etoys -> Squeak(Smalltalk)
教育者¶
Alan Kay 和 Etoys社区围绕Etoys写了许多精彩的文章,推荐阅读。也许是有史以来关于向孩子传授 powerful ideas 最精彩的文章之一。
诸如:
- Squeak Etoys Authoring & Media
- Kedama: A GUI-based Interactive Massively Parallel Particle Programming System
更多文章可以从Etoy resources 和 Viewpoints Research Institute里找
进阶¶
你可以参考Etoys 学习笔记: 与 Scratch 互操作自行构建功能更丰富的Server,使用 Adapter Node 将其接入Adapter生态。