探究|明星编程软件Scratch的前世今生
【编者按】编程教育这个早就成为热门话题的行业,无论是国际还是国外,无论是线上还是线下,你在各大公司官网的课程介绍里面都能够看到的一个词汇——Scratch。
本文将以Scratch的创始人,米切尔·雷斯尼克的独特视角探索这个明星编程软件的前世今生,以及未来的发展走向。
本文转自芥末堆,作者红印儿,经亿欧编辑,供业内人士参考。
关注计算机发展史的人应该不会忘记1983年1月3日刊发的《时代》杂志。个人电脑第一次以1982年“年度机器”的身份登上杂志封面,打破了《时代》杂志以往仅甄选杰出个人作为“年度人物”的惯例。
对于当时还是《商业周刊》科学记者的米切尔·雷斯尼克来说,他人生中最重要的转折点也发生在1982年,并且同样与计算机有关。
1982年春天,米切尔·雷斯尼克前往旧金山报道西海岸计算机展,刚好赶上西蒙·派珀特做主旨演讲。西蒙·派珀特是Logo编程语言的发明者,自20世纪70年代起,他一直致力于用Logo语言帮助儿童更具创造性地表达自己、实现想法。
西蒙·派珀特的演讲让米切尔·雷斯尼克对计算机有了新的理解:“它不只是完成某项任务的工具,还可以是人们表达自我的新方式。”他很快申请入读麻省理工学院,并成为西蒙·派珀特的学生,探究如何借助技术让儿童成长为具有创造性思维的人。
可视化编程平台Scratch是米切尔·雷斯尼克团队在2007年交出的一份阶段性成果。在Scratch编程环境里,用户只需像拼搭积木那样拖动程序语句模块,就可以创作自己的编程作品。目前,Scratch平台上的注册用户约3000万,用户遍布全球超过150个国家,平台被翻译成超过50种语言。
Scratch官网上的介绍似乎可以概括这个编程学习平台的初心和野心: “ Scratch将帮助年轻人进行创造性的思考、系统性的推理以及合作性的工作——这些都是生活在21世纪的重要技能。”
来自一只海龟的启发
研发Scratch的灵感可以追溯到1968年。这一年,西蒙·派珀特开发出名为Logo的编程语言,这也是全球第一款针对儿童教学使用的编程语言。
与当时其他的计算机语言不同,Logo最主要的功能是绘图。进入Logo界面,光标将被一只闪烁的小海龟取代。输入“向前25”、“向左11”这样易于儿童理解的语言和指令后,小海龟将在画面上走动,画出特定的几何图形。
Logo编程语言的指令示意图
整个20世纪80年代,全球成千上万的学生都在学习Logo语言。不过,学习热情消散得也很快。 一方面,编写Logo程序的过程充满了不够直观的语法和标点,使用门槛依然不低;另一方面,学生对使用Logo完成的任务并不感兴趣,学习Logo变成一门技术活,而无关乎创造。
这样的结果自然背离了西蒙·派珀特推出Logo语言的本意,即让儿童有机会利用科技去构建知识、解决问题、创造性地表达自己。于是,在继承Logo初衷的基础上,米切尔·雷斯尼克从可操作性、意义性和社交性三个方面进行改良,设计出Scratch编程平台。
“Scratch”的名字来源于DJ打碟时摆弄碟片的情景:来回调试唱片,用充满创意的方式把不同的音乐片段混合到一起。在Scratch编程环境中,用户也会像DJ那样把图片、动画、照片、音乐、声音等媒体形态拼搭在程序里。
“我们用图形化语言替代了编辑文本语言,从而让Scratch更容易上手;我们在Scratch里引入音乐、图片、声音等多种媒体形式,让编程过程更贴近儿童的兴趣;Scratch平台还拥有分享和交流机制,儿童可以在社交中向同辈学习。” 米切尔·雷斯尼克解释。
数字版乐高积木
在Scratch编程界面,程序语句都以拼图模块的形式呈现,模块按功能划分为不同颜色。编写程序时,用户只需像拼插积木那样把拼图模块垒在一起。只有当程序在语法上合规合理时,模块的接口才能对接上。
用模块接口的形状作为拼插指引的设计借鉴自乐高积木。实际上,在导师西蒙·派珀特之外,给米切尔·雷斯尼克的职业生涯带来最重要影响的就是乐高了。
Scratch平台上一个音乐生日贺卡项目的程序脚本界面
“能够引人思考的玩具才是我的兴趣所在。”米切尔·雷斯尼克在新作《终身幼儿园》里写道。 在他看来,乐高积木恰好给儿童提供了想象、创造与分享的空间。
1983年,米切尔·雷斯尼克刚来到麻省理工学院不久,就与西蒙·派珀特尝试基于乐高积木研发项目。他们将乐高积木与Logo语言结合,当乐高模型与电脑连接后,儿童就能够通过Logo程序控制乐高积木。这款硬件与软件的组合后来被称为“乐高/Logo”,在1988年由乐高公司作为产品推出。
1989年12月,米切尔·雷斯尼克接到了时任波士顿计算机博物馆教育主管娜塔莉·腊斯克的电话,她希望借用一些乐高/Logo作为博物馆假期活动的材料。为期一周的活动效果出奇地好,活动结束后,还不断有孩子返回博物馆询问乐高/Logo组件到哪里去了。
孩子们试用乐高/Logo的过程让米切尔·雷斯尼克意识到,专门供儿童使用的编程软件几乎没有。“专业性软件如Java、C++超出了儿童的驾驭能力,一些可以编程的APP又只能输出特定的游戏程序。 ” 米切尔·雷斯尼克回忆。
开发一款适合儿童的认知水平、能够融入儿童喜欢的媒体形态、具有开放性创造空间的编程软件看起来是一个刚需 ,有关Scratch雏形的设想也就此开始酝酿。
如今看来,Scratch的确像是数字版的乐高积木。Scratch的研发过程也像搭建乐高积木那样经历了自下而上、渐进迭代的阶段,仅Scratch 1.0的开发过程就持续了4年。
三角原则与4“P”
在可视化编程功能之外,Scratch最与众不同的地方或许在于它背后的设计理念。
说起设计编程语言,西蒙·派珀特总会强调“低地板”和“高天花板”的原则。“ 低地板”是指技术手段能给新手提供简单易上手的起点,“高天花板”是说学习体验能够包含由易到难的循序渐进过程。 例如,Logo语言就让儿童可以从绘制极简的三角形开始,最终画出复杂的几何图像。
师承西蒙·派珀特的米切尔·雷斯尼克给Scratch新增了一个设计维度,即“宽墙壁”。 这意味着编程语言要能支持不同类型的项目和学习路径,学习的入口和跑道都应该是宽广的。
“低地板+高天花板+宽墙壁”的三角设计理念反映在Scratch平台上目前超过3700万个编程作品里。打开Scratch网页,可以看到音乐生日贺卡、捡苹果小游戏、螃蟹跳舞动画等难度和主题都各异的编程项目。
另外还有4个以字母“P”开头的关键词像基石一样支撑着Scratch的开发设计。米切尔·雷斯尼克用一句话来解释:“在具体的项目(Project)中,孩子做着自己充满热情(Passion)的事,并与同伴(Peer)交流共进,整个过程都伴随着游戏(Play)精神。”
在Scratch平台,每个程序都是一个项目,儿童依照自己的兴趣确定项目的主题、语境、目的和实现方式。项目完成后,设计者只需点击“共享”按钮,作品就会进入到Scratch在线学习社区中。之后,任何人都可以看到开源的程序脚本,并进行借用和改编。
Scratch上有各式各样基于兴趣形成的工作室
共享共创的文化让交流和协作变得容易,基于专业性或兴趣爱好的互补配对协作很常见。 例如,Scratch平台上可以创建包含多个项目的工作室,其中有一类工作室叫“反馈工作室”。在这里,希望获得项目反馈的成员与喜欢点评项目的成员被联结起来,彼此为对方提供价值。
Scratch家族
2018年8月1日,Scratch 3.0测试版发布,这是自2013年Scratch 2.0问世以来的又一次升级。 Scratch 3.0将能够在平板电脑上兼容,并加入了更丰富的图像编辑、声音编辑、谷歌翻译等功能。另外,Scratch3.0还可以与乐高教育头脑风暴EV3机器人和WeDo 2.0机器人兼容。
作为Scratch的缔造者,米切尔·雷斯尼克和团队认为Scratch不仅是一种编程语言,更是一个在线学习社区。“我们的首要任务是为世界各地的年轻人提供创造性的学习体验,帮助老师、家长、设计师、研究者及其他人了解在线技术和在线社区是如何支持创造性学习的。”他在《终身幼儿园》中写道。
考虑到Scratch线上社区里不同受众的特点,围绕Scratch的衍生内容日渐增多。
ScratchEd是为教育者专门开发的独立页面,支持故事分享、互通教育资源、线上讨论等功能。目前,ScratchEd上的教育者资源覆盖幼儿园到大学全学段,内容类型包括教案、课程、评测、教材等多种,涉及的学科领域有数学、音乐、社会科学、视觉艺术等。
由于Scratch主要面向8-16岁儿童,针对5-7岁低龄儿童的ScratchJr便相应推出。相比Scratch,ScratchJr以平板电脑为载体,编程模块的体积更大、素材库中的图片更多、拼插方式也更直接。
ScratchJr的界面示意图
除了线上学习社区,Scratch还有遍布全年的名为“Scratch日”的线下交流活动。2017年,全球举办了超过1000场Scratch日活动。在推特的“#ScratchDay”话题下,人们用各种语言记录着Scratch日的编程、分享和游戏体验。
另外,米切尔·雷斯尼克还与Two Sigma投资管理公司的联合创始人大卫·西格尔创立了Scratch基金会,为Scratch、ScratchJr、ScratchEd的研发和运营提供支持。
“ 建造的快乐和创造的骄傲(Joy of Building and Pride of Creation)”是乐高的品牌意涵之一,也是米切尔·雷斯尼克很喜欢的一个口号。他希望Scratch能将这个愿景继续带到线上世界,让不论来自何种背景的儿童都能通过编程表达自我、成为创造性的思考者。
在那本以个人电脑作为封面的《时代》杂志里,一位资深作者写道:“计算机曾被认为是遥远的、不详的抽象物品,但在1982年,它变得更个性化、更小巧,人们可以拿住并把玩它。”如今,计算机以及计算机所能撬动的人类创造力似乎都离我们更近了。
推荐阅读:
【盘点】理性看待风口,少儿编程仍有四大问题亟待解决
李开复预言的第四次工业革命里,编程教育会起哪些作用?
编程机器人入局9000亿元教育产业蓝海,六大玩家持续发力