文/吴俊杰
Scratch是这样的一种软件:我们可以找到它的源代码,而且任何人能够对其进行修改,并发布自己的改进版本。要做到这一点,只需满足两个要求:一是改进版本的初始画面不能是一只小猫,比如S4A软件打开的默认图案是一个Arduino板:二是改进版本保存的文档不能再被Scratch原始文档打开,比如S4A软件当中,保存的扩展名为.sa的文件是不能被Scratchl.4编辑的,只能使用S4A打开。这样做的目的,是要让Scratch作为一个开源软件项目,保持其外部的活力和内部的一致性。
好的想法永远不会消亡
在Scratch开发者——美国麻省理工学院媒体实验室终身幼儿园团队内部,只有四五个人为Scratch软件做技术维护。因此,很多用户所需要的新功能,是不能够马上放进Scratch当中的。但是开放性创新的生态有助于改进这一点。比如在Scratch14当中,用户不能自建带参数的函数,而其改写的版本,由美国加州大学伯克利分校开发的BYOB则率先更新了这个功能,之后Scratch2.0当中就增加了这个功能。
乐高,是终身幼儿园团队的硬件赞助商。出于维护赞助商利益的考虑,官方的Scratch版本是不方便连接其他品牌硬件的。因此,Scratch1.4 -开始只支持两个版本的硬件:开源的PicoBoard( Scratch传感器板)和乐高的Wedo积木。为了平衡这一点,他们设定了一种开源规则。于是,有了S4A,一个由来自西班牙巴塞罗那的Cltilab实验室改进的,支持开源硬件Arduino的Scratch改写版本。这个版本还创造性地做了一件后来所有Scratch改进版本都做不到的事情:它居然可以同时连接20块Arduino,并且让它们之间彼此通讯。
这种做法也是Scratch团队所欢迎的。2013年,在首次启动的Scratch@Europe活动中,终身幼儿园团队负责人米切尔·瑞斯尼克亲自来到西班牙参与各项主题活动。虽然后来由于团队方面的一些问题,S4A软件并没有跟随Scratch2.0一起更新,但是好的想法永远不会消亡,原来团队当中的一个成员最终完成了让Scratch20支持Arduino的插件的编写。而最近,S4A团队终于将其软件版本更新到16,并加入了大量基于物联网的功能。
分享,培养竞争者以促进自己改变
Scratch团队的精神代表着一种开放式的创新精神,其最重要的特点是分享。就像中国乒乓球要想不断提高竞技水平,就要学会分享技术,培养竞争者以促进自己改变。最不济的结果是,创始人无力接盘,但是开源的结果使得好想法的生命周期能够永远地延续下去。很多人认为,Scratch是Logo语言的改进。事实上,在Scratch之前,终身幼儿园团队还开发了另一款图形化语言PicoCricket。遗憾的是,这款软件并没有走开放式创新的道路,其硬件被乐高收购之后,就不再销售了。我想,这也是Scratch的官方硬件PicoBoard选择开源的一个重要原因。
在中国,大量的Scratch用户使得Scratch有各种各样改版的需要。最早广泛使用的改写版本是Scratch测控版,它相当于乐高Wedo和PicoBoard的一个结合版本,使得Scratch能够控制一个马达输出。
你可能会好奇,为什么麻省理工不把Wedo和PicoBoard合并成一个硬件呢?这是一个很容易想到的主意,但这就是商业利益和教学需求上的冲突。软件的开源则有利于平衡这一点。接下来,全球范围内Scratch改版的主战场将随着中国用户的增多而迅速地转移到中国。其中,有四个版本非常有特色。
一是由杭州小智机器人团队开发的Scratch2.0物联网版本。该版本在联网状态下支持网络变量Yeelink的访问,比如你用手机访问一个网页,将一个按钮按下,Scratch会接收到这一点,并在万里之外的电脑上启动一个程序。
二是由MakeBlock开发的mBot版本。这个版本最大的优势是可以给Arduino编程,并且可以将程序下载到下位机上,与S4A教学有一个完美的衔接。
三是由盛思开发的Labplus版本,它可以支持真实物理量的测量,改写后的Scratch软件可以测定压强、速度、加速度、PH值等专业的物理量。Scratch变成了一个数字化实验系统的开发平台,成为一个物理、化学、生物的专业研究工具。
四是最近横空出世的、由向金老师主持的指尖新空间开发的Fmrobot。他们的口号是“联通一切”——用Scratch的编程方式兼容市面上几乎所有可编程机器人硬件的编程,既可以联机作为传感器板使用,又可以下载到下位机作为机器人使用,包括乐高、中鸣、Arduino、Bioloid。他们从教师的角度做了一个所有的硬件厂商主导的Scratch改写的版本都不大可能做的事情——一个教育机器人的通用平台。这之前是中小学必修机器人教材编写的一个死结,现在,由创客教师们解决了。
美好的故事还在继续。在终身幼儿园内部,“联通一切”也是他们的想法。从更简单、针对5—7岁儿童的Scratchjr,到Scratch在线版本增加的云变量功能(能够引用Google地图的数据),都说明了终身幼儿园团队的期望。人们学习完简单的Scratch功能之后,进一步学习的还是Scratch的高级功能。毕竟,编程是一种思维,人人都能掌握不是挺好的吗?联通一切,开放式的创新冲破了旧有利益的樊篱,以培养对手(也可以说是合作伙伴)的这种“作茧自缚”的方式,让自己进步,让好的想法永存。目前,FMrobot已经全部开源,作为一种全球教育公共品,它带来的美好才刚刚开始。