前言

原文 “A COMBINATION OF CURIOSITY AND CONFIDENCE”: A CONVERSATION WITH JOHN MALONEY

译文

作为我们 “社区中的人工智能” 系列的一部分,我与 MIT Media Lab 终身幼儿园小组的 Scratch 项目首席软件开发人员 John Maloney 对面而坐,讨论了 John 与 Alan Kay 的合作,以及早期从他父亲和家庭科学项目中获得的灵感,并辨别有趣问题。

TC(Tara Chklovski): 介绍一下你自己和你正在研究的问题吧。

JM(John Maloney): 从哪里开始呢…自 1995 年我开始在苹果公司与 Alan Kay 一起工作以来,我一直在研究计算机和为儿童创造编程机会。我和 Alan 的第一个合作项目是创建 Squeak,这是 Smalltalk-80(Alan 的小组早在 70 年代就在 Xerox PARC 开发出 Smalltalk-80)的一个实现。我们使 Squeak 具有可移植性,并将其作为开放源代码共享。在 Squeak 基础上,我们建立了一个名为 Etoys 的儿童编程语言。这就是我们的真正目标: 为儿童创造一个编程环境,使他们能够学习 Alan(跟随 Seymour Papert)所说的 “强大的想法(powerful ideas)"。在我们研究 Squeak 和 Etoys 的时候,Alan 把整个团队从苹果调到了迪斯尼。每年夏天,Alan 的小组都会和 Mitch Resnick 的 MIT Media Lab 聚在一起,在新罕布什尔州的一个旧农场里进行他们称之为苹果山学习实验室的活动。我们会讨论一般的学习问题,并分享我们正在研究的想法。2002 年,Mitch Resnick 描述了他刚刚开始的一个名为 Scratch 的项目。

在我听来,它很像 Etoys。Mitch 计划将 Scratch 推广给大量的孩子,最初是通过"计算机俱乐部网络(the Computer Clubhouse network)",然后通过在线网站推广给尽可能多的人。在他谈论的时候,我想。“哦!我可以创建它!” Alan 的团队当时刚从迪斯尼解散,所以我自愿在 Media Lab 的 Scratch 项目上工作了一段时间。我想象着在 Scratch 上花六个月左右的时间,但 Scratch 变成了一个比我预期的大得多的项目,我最终在上面工作了 11 年,做了两个完整版本的 Scratch。所有这些努力工作都得到了回报。现在全世界有超过 2000 万的儿童在使用 Scratch(译者注: 截止目前(2022.09.04)是 9471 万)。

TC: 是的。 它正在改变教育世界。

JM:Scratch 帮助我分享了我在 2000 年夏天欧洲之行中形成的一个梦想。 我的梦想是以某种方式分享我和父亲一起亲身体验科学和工程的一些美好童年经历。我父亲教我如何给电池、开关和灯泡接线以制作简单的电子电路。他是一名化学工程师,但他也在自学电子学。因此,我们一起建造了一个矿石收音机(crystal radio)。我仍然有幼儿园前的记忆,那就是把天线导线从窗户拉出去,穿过院子拉到一棵树上,然后把接地线拉到大厅附近的冷水管上。那台矿石收音机好像有魔力一样。 你实际上可以通过一个甚至没有任何电池的东西听到广播电台!这就是当时的魔力。那是那个时代的魔法。现在我们的魔法更像是微控制器和机器学习。

在欧洲的那个夏天,我意识到大多数孩子在成长过程中都没有一个像我父亲那样,和他们一起做科学实验的父亲,我意识到我作为一个工程师和计算机科学家的很多生活方向,都来自于那些非常早期的科学实践经验。那是非常有趣的东西,而我的父亲自己在学习这些东西。我认为这些经历给我灌输了对学习的终生热爱。在不知不觉中,我内化了这样一个想法:学习是有趣的,你所学到的东西对世界来说是实用和有用的–那么为什么不在你的一生中不断学习新的东西呢?

当然,我知道我无法与几个孩子分享电子技术,部分原因是它需要硬件和工具,而这并非人人都有。但软件是更容易分享的东西。我决定,我要创造某种软件,让大量的儿童使用,让他们至少有机会获得我和我父亲的那种改变生活的经历。我的希望是为世界带来积极的改变。通过 Scratch 项目,因为我有幸在正确的时间与 Mitch Resnick 建立联系,我能够实现这个愿景的很大部分。然而,我有兴趣做更多的事情,我对家庭学习特别兴奋,这反映了我童年时与父亲一起探索电子的很多经验。

TC:当孩子们在寻找有趣的问题来使用技术解决时,你会给他们什么建议?

JM: 我想说: 做你感兴趣的事情。找到有趣的东西,尽可能多地了解它。如果一开始,它看起来是一个困难的问题,也不要气馁。只要找到你可以思考和研究的小部分就可以了。另外,试着找到其他有类似兴趣的人和你一起工作,这样你们就可以把你们的头脑放在一起,互相鼓励。

我对孩子们最大的建议是对事物充满好奇,并学会享受弄清事物的运作方式和了解它们。这种学习态度不仅会对你的生活有帮助,而且会带来无尽的乐趣。如果你对事物有好奇心,并且喜欢学习,你永远不缺可以学习的东西。

培养好奇心和对自己的信心。你真的可以学到任何你真正想学的东西。

TC:你认为一个好问题和一个好产品的要素是什么?

JM:我思考问题的方式是自下而上的。我倾向于学习可能有用的工具/技术,然后试图找到我可以使用这些工具的问题。我也为别人创造工具:编程语言,如 Scratch 和 GP Blocks。我的工作方式是,我学习工具/技术,然后尝试将这些东西纳入编程语言,让其他人可以用来创建自己的解决方案和产品。

很多人可能会走另一条路。他们会审视世界上的问题,并试图找到一个大问题,然后再往下看有什么样的技术可以用来解决它。世界需要这两类人。如果你能组建团队,如果你是一个自下而上的人,而你能找到一个有大局观的人,那就太好了!他们帮助你看到大局,你帮助他们找到方法和手段。我与 Mitch Resnick 的合作就很像这样。Mitch 知道他想要一种编程语言,让孩子们超级容易学习,而且他有一个更大的目标,那就是让孩子们有创造力,并构建对个人有意义的东西。

这就是 Mitch 的大计划,他一开始并不关心什么方法和手段。Scratch 只是要有表现力,而且要容易使用。Mitch 很高兴让我主导实施细节,他也不介意我想使用我在 Alan 的小组工作时建立的 Squeak/Etoys 基础。

Scratch 是一个很好的合作,因为我在思考什么事情是可能的,以及如何实现它们,而 Mitch 和 Natalie Rusk(Scratch 团队的另一个关键成员)则牢记最终目标,即什么是真正值得做的,以及我们在为谁做东西。Mitch 和 Natalie 滤掉了我很多古怪的想法。他们会说:“好主意,但我们不想把它放进去,因为它会增加复杂性,而且会破坏易用这个更大的目标”。虽然有时我对砍掉一个我引以为豪的功能感到失望,但我同意总体目标,而且我(大部分!)相信他们的经验。尤其是 Natalie,她对儿童发展有一种难以置信的判断力,她真正了解如何激励儿童学习,以及如何使事情容易理解。因此,我们三个人一起组成了一个了不起的团队。

JM:这也是我们在 Scratch 上经常谈论的事情。你看过关于意大利面条挑战的 Ted 演讲吗?

TC:没有。

JM:给人们意大利面条和某种粘合剂,要求他们建立一个尽可能高的塔。但它还必须支持一个棉花糖的重量。事实证明,在这个挑战中做得最好的小组往往是幼儿园的学生,因为他们只是潜心研究。他们开始把东西粘在一起。他们发现 单根意大利面条容易断裂,但如果你把几根面条放在一起,就会更牢固。在开始建塔之前,他们学习了他们所使用的材料的特性。

事实证明,在这项挑战中做得最差的人(起初)是 MBA 小组。他们花了一半的时间讨论谁是负责人,而没有接触材料。然后他们会想出一些自上而下的计划,这些计划在纸上听起来很好,但并不可行。MBA 小组往往会在第一次挑战中完全失败。然而,他们能够学习。在讨论了他们的过程中不成功的地方后,6 个月后回来的 MBA 团队在类似的挑战中表现得更好。当然,因为他们是成年人,一旦他们理解了材料,他们的表现往往能超过幼儿园的孩子。但这里有一些重要的东西:要解决困难的问题,你需要自上而下和自下而上的思维,和人。

TC: 是的,我认为对我们来说,这确实是一种平衡。我们让人们通过一个固定的课程进行学习,但同时也给他们足够的空间,让他们真正发挥自己的兴趣和创造力。

你能告诉我们一些关于 GP 和你现在正在做的事情吗?

JM:GP 是一种积木编程语言,旨在成为 Scratch 之后的下一步。 GP 既可以在浏览器中运行,也可以在 Mac、Linux 和 Windows 中运行,并允许你进行通用编程。你可以使用类似 Scratch 的积木语言进行数据处理、构建模拟、处理声音、音乐、像素、图像。 GP 是在 Scratch 之后使用的一种很棒的语言。它比 Scratch 有更多的功能和更多的积木块,所以你可以用它做更多的事情,但它很像 Scratch 并且有类似的工作流程。我认为 GP 可能在初中、高中或大学中发挥作用,作为一种编程语言,适用于刚开始第一次学习编程的人,或者那些了解了 Scratch 并想迈向下一个阶段的人,他们不愿意使用 Python/Java 等面向专业程序员的文本语言。

为初学者设计的语言并不多。 Scratch 的流行(目前在 TIOBE 指数中排名第 17,仅次于 Objective-C)表明这种语言存在需求。我相信在更高的层次上也需要易于使用的语言。除非有人打算成为一个全职的专业计算机程序员,否则不一定需要学习专业语言。我有时会说, GP 是一种面向 “休闲程序员” 的语言。

TC:我这边就这样了。能够听到你的想法和你的故事,真的很荣幸,谢谢你做了这些。