(西雅图照片由 Daniel Schwen 拍摄, CC BY-SA 4.0)

欢迎来到 MicroBlocks 博客!

在第一篇文章中,我们花点时间解释一下 MicroBlocks 的起源。

故事的主线之一有关于想法。

尽管 MicroBlocks 项目正式开始于 2017 年,但它建立在过去的想法之上。 John Maloney 对儿童编程系统的探索可以追溯到 1995 年,当时他加入了 Alan Kay 的小组。 在 Alan 团队中,John 帮助开发了 Squeak 和 Etoys 积木编程系统。 然后,在 2003 年,John 加入了 MIT Media Lab 的终身幼儿园小组,在 Scratch 的头十一年里,他是 Scratch 的联合设计者和首席开发人员。

MicroBlocks 背后的大想法(big ideas)可以追溯到更远的地方。 MicroBlocks 深受 Logo(由 Seymour Papert、Cynthia Solomon 和 Wally Feurzeig 于 1967 年创建)和 Smalltalk(由 Alan Kay 在施乐实验室的研究小组于 70 年代创建)的影响。 MicroBlocks 还受到 Brian Silverman/Robbie Berg 创建的 LogoChip 和 Citilab 的 White Cat 研究项目的启发。

但 MicroBlocks 的直接灵感(点燃它的火花)是 Sue Sentance 在 2017 年西雅图 SIGCSE(计算机科学教育特别兴趣小组)技术研讨会上关于 BBC micro:bit 的演讲,John Maloney 和 Jens Mönig 都参加了。 从 Sue 演示它的那一刻起,John 就爱上了 micro:bit, 并认识到它在激励年轻人方面的潜力。

Sue 给了 John 一块 micro:bit(原本用于演示)。 第二天,John 与西雅图一位朋友的 14 岁孩子一起尝试。 结果令人失望。 虽然这位孩子最初很感兴趣,但在一个小时繁琐地下载 hex 文件以在 micro:bit 上运行后,这位孩子失去了兴趣。 John 习惯于看到初学者在使用 Scratch 时,变得逐渐投入,而不是兴趣消退。仅仅一个小时后就失去了兴趣令 John 感到惊讶。 他猜想这是由"下载疲劳"引起的,并推测要是能够实时在 micro:bit 上运行代码会更有吸引力。

故事的另一条线索围绕友谊。

John 在 2008 年的第一届 MIT Scratch 会议上认识了 Jens Mönig。之后他们开始了一系列长期而富有成果的合作。 Jens 为 Scratch 做出了很多贡献,同时他也在做自己的实验项目。 他的 Smalltalk Elements 系统允许将整个 Smalltalk 系统作为积木来查看和编辑。 后来,Jens 创建了一个系统,用于将用户定义的积木添加到 Scratch,他称之为构建自己的积木(Build Your Own Blocks, BYOB)。 虽然 Scratch 团队决定不将 BYOB 合并到 Scratch 中,但在 Brian Harvey 的鼓励下,Jens 继续开发它。 最终,它被移植到 Javascript,重新命名为"Snap!", 这是一门美丽而有趣的编程语言, 并用于伯克利计算机科学课程。

Jens 和 John 在 2013 年的第一届欧洲 Scratch 大会上见到了 Bernat Romagosa,立即认出这个同道中人。 Bernat 对 Smalltalk 和其他实时编程系统很感兴趣,并创建了一个基于积木的编程系统,称为用于 Arduino 的 Snap! 。 显然,要是能与 Bernat 一起工作会很棒,但当时我们不知如何才能聚在一起工作。

2014 年,John、Jens 和 Yoshiki Ohshima(现在由 Alan Kay 领导的 SAP CDG 研究实验室)开始研究 GP Blocks,这是一个探索以下问题的研究项目:"如果整个程序系统都用积木语言实现会怎么样? 就像 Smalltalk 开发环境完全在 Smalltalk 中实现"

当 CDG 研究小组于 2016 年年中被 SAP 解散时,John 和 Yoshiki 离开加入了一个新的研究小组,而 Jens 则留在了 SAP。 尽管 John 和 Jens 想继续合作,但 Jens 向 SAP 承诺,当 CDG 解散时,他将停止在 GP Blocks 上的工作。 但是 MicroBlocks 创造了一个新的机会。 由于 MicroBlocks 不是 GP Blocks,Jens 可以在不违背他对 SAP 的承诺的情况下就此展开合作。

当 John 于 2017 年 3 月从西雅图返回时,所有这些都汇集在一起。与 Jens 和 Bernat 合作的机会,再加上 John 对该项目的浓厚兴趣,万事俱备。 三人通过电子邮件勾勒出 MicroBlocks 的轮廓,而 John 则开始构建解释器作为概念验证。 在三人的共同努力下,MicroBlocks 在 2018 年 7 月的 Scratch 会议上首次公开亮相。

当然,2018 年的首次亮相只是 MicroBlocks 故事的开始。 从那以后的四年里,其他人加入其中,成为朋友,做出了重大贡献。 随着 MicroBlocks 故事的继续展开,我期待着探索新想法并结识新朋友。