年,马克·扎克伯格来到了尼日利亚,这趟旅程第一站的一项任务,便是教孩子们如何写代码。当扎克伯格走进房间时,许多年少的学生仍然陶醉在他们的编程项目中,完全没有意识到Facebook的创始人从他们身边经过。
扎克伯格问道,“你编的是什么?”孩子们自豪地说,“一个游戏!”并向他展示游戏的原理。扎克伯格打断他们:“噢,请让我看下代码吧!”这时孩子们就会在菜单上点击几下,从游戏界面切换到类似于乐高积木的Scratch程序上。那些孩子们的年龄从8岁到15岁不等。
类似的场景出现了好多次。当“考察团”走上楼梯离开大楼的时候,扎克伯格兴奋地叫住了同行的Backchannel记者Steven Levy:“你以前听说过Scratch吗?”
显然,当扎克伯格离开哈佛创业时,这款程序还没有面世,但随后Scratch迅速成为风靡全球的计算机语言。去年,有超过1.2亿人次访问了该网站,每月有100万人创建并分享项目——这真是令硅谷工程师都羡慕不已的事情。
Scratch,这是一个图形化的编程语言,使用者可以不认识英文单词,甚至可以不会使用键盘——因为构成程序的命令和参数都被打包在一个个“积木模块”中,编程的过程只需要通过鼠标拖动模块便可实现,就像是在玩乐高积木。这一语言从LOGO语言中吸取了部分灵感。
基于这些特性,Scratch在十年间成为了全世界最流行的儿童编程语言,每天,来自世界各大洲的少年儿童都在用Scratch编写各种脑洞大开的程序和游戏,并不断分享给他人。
▲在名为《让我们教孩子们编程吧》的TED演讲中,创始人明奇·雷斯尼克(Mitch Resnick)分享了这款语言的使用方法。
从LOGO到Scratch
十年前,Scratch诞生在麻省理工学院媒体实验室。说起这款语言诞生的故事,不得不提到麻省理工大学的传奇人物西蒙·派珀特(Seymour Papert)。
早在上个世纪,派珀特便开创性的发明了名为LOGO的计算机语言,与当时其他复杂的计算机语言不同,这款语言简单而易于学习。当雷斯尼克初次来到麻省理工学院并拜访派珀特时便喜欢上了这种语言,但也发现了其局限性。“LOGO语言并没有跟上时代的步伐,”雷斯尼克说。
上世纪90年代,雷斯尼克开始领导麻省理工学院媒体实验室名为“终身幼儿园”的项目,该计划旨在为低收入社区建立一系列的课后“计算机俱乐部”。“我们发现很多孩子都希望创造属于自己的故事、游戏和动画,但是没有很好的工具来实现,”他说。2003年,他和团队向国家科学基金会提交了一份提案,提出要建立一个面向初学者的编程系统,并从以下三个方面改进LOGO语言:
1.更加直观。“LOGO太抽象了,这是大多数基于文本的编程语言的通病,准确无误的语法和标点符号自然是至关重要的,但你可以通过拖放打包好的模块来构建Scratch项目,创建程序的方式与玩乐高(LEGO)积木非常像。”雷斯尼克的团队一直在帮助乐高公司设计Mindstorm产品,他们显然从中受到了启发。
2.更有意义。Scratch的目的是做出实在的产品,这实际上也是派珀特最初的愿望,他希望帮助孩子们用技术表达和了解世界。对于雷斯尼克和他的团队来说,最好的方法就是在Scratch中融入孩子们喜爱的多媒体形式——音乐,照片,语音和视频。
3.更加社交化。只要点击一个突出显示的按钮,Scratch的用户就能够将他们的作品上传到网上,从社区中得到反馈和帮助,甚至与潜在的合作者成为朋友。同时,他们还将得到别人创造的启发。
经过十年的实验,Scratch得到了前所未有的发展。2013年,媒体实验室团队打造了Scratch 2.0,允许Scratch的用户即时在线查看并复制任何项目的代码,从而提升共享的性能,此前,他们不得不下载源代码。这些改进使得程序的使用量有了很大的提升。下一版本也正在开发中,用户量可能还会实现进一步的攀升,因为这将是首次在移动设备上创建Scratch项目,这是世界上许多用户访问互联网的方式。Scratch 3.0还将允许孩子将各种特种数字设备(如3D打印机)融入他们的程序中。
同时,Scratch也终于成为美国“技术素养课程”的正式组成部分,纽约市正计划在两年内让Scratch覆盖每个公立小学。
“像黑客那样思考”
麻省理工学院历史悠久的黑客文化深深影响了Scratch。
“计算机不应该只用来提供信息,而是应该让孩子们展现自己,并与其中最重要的思想碰撞,”雷斯尼克说。
从教育哲学到开源运动,再到人工智能,Scratch涉及到了许多领域。而当那些尼日利亚的孩子们踩上这块计算机科学的入门砖时,他们也在不知不觉中获得了一种具体而古典的价值观——这些价值观涵盖了对逻辑的尊重、对团队合作的信心,以及对创造者的鼓励——10年间,Scratch最酷的部分并不是教会孩子们如何编程,而是教会孩子们自我认同与开放意识:像黑客那样思考。
首先,孩子们被赋予了从零开始构建项目的权利,而不是像“paint-by-numbers”这样传统的按部就班的方式(自我认同)。但另一方面,Scratch又允许孩子通过阅读其他小伙伴写的代码来对别人的作品“重新改造”,同时鼓励他们将喜欢的作品整合到自己的项目中(开放意识)。
雷斯尼克曾经的学生,现在已经是哈佛大学副教授的凯伦·布伦南(Karen Brennan)研究了Scratch对孩子的影响,他说,“Scratch用户会发展出更加强大的自我认同意识,同时,孩子们学会以一种新的方式看待自己的能力。”
Scratch的另一个隐形的功劳是共享和协作的价值,这让我们看到了麻省理工学院早期的计算机精神的影子。在20世纪50年代末、60年代初,第一批“麻省黑客”将他们开发出的程序存储在磁带上,随意的放在抽屉里,任何人都可以自由地拿起磁带,将其放到自己的计算机里,学习代码、更新和改进,然后再将另一盘磁带留给下一个人。
从一开始,Scratch就提供了类似的开放性,将分享变得更有意思。“如果你觉得学习代码是很难的事情,那就先学习如何分享吧!”雷斯尼克说,“我们投入大量精力来帮助孩子们适应这些价值观,让他们学会在虚拟社区里做一个好的公民。”
开源的理念也深植于Scratch中,一直以来,这款软件对所有人都是免费的。而用Scratch做出的任何作品都会自动带上了“创作共享”(Creative Commons)的标签。
从“电脑俱乐部”开始,虽然源源不断的企业试图将他们的付费产品推广到校园,但Scratch的口碑仍牢牢吸引了全球数百万的用户(其中海外用户占到了一半以上,软件被翻译成50多种语言),Scratch一直都有其存在的使命——特别是对于那些生活在贫困国家的孩子来说。
“一方面,孩子们要与数字技术互动,参与到别人的故事中,”雷斯尼克说,“而另一方面,孩子们也有机会创造数字技术,讲述自己的故事。”
越来越多过去不喜欢计算机科学的孩子开始在这款程序里发掘出精彩的职业道路。但更为重要的是,更多的Scratcher会将Scratch的核心价值观——合作、开放——不只作为消费者,更是作为创造者的使命流传下去。这便是最好的方式。
愿这个世界有更多的Scratcher。