世界上最早的图形化编程软件是Scratch,从2007年诞生至今,已经被翻译成多种语言,在150多个国家使用。让人好奇的是,这样一款富有创造力的、被全世界青少年欢迎的软件是如何发明的呢?任何一个伟大的发明创造都不是偶然产生的,都有一个发展的过程。
想要了解Scratch的诞生,就要从西蒙·派珀特(Seymour Papert)博士说起。他1928年出生于南非,是美国麻省理工学院(MIT)终身教授,教育信息化奠基人,数学家、计算机科学家、心理学家、教育家,近代人工智能领域的先驱者之一。
1958年,30岁的西蒙·派珀特在剑桥大学拿到第二个数学博士学位后,孤身来到瑞士日内瓦大学。这位天才24岁就拿到了第一个数学博士学位,之后在剑桥大学研究了5年的数学,一直思考要做些不同的事情。
日内瓦大学究竟有什么吸引着他呢?派珀特在日内瓦大学的老师是著名的哲学家、儿童心理学家让·皮亚杰。此时的皮亚杰62岁,已是儿童教育领域享誉全球的大师,他一生致力于研究儿童如何形成对世界的认知。皮亚杰发现,人们会基于过往的经验和对世界的理解来构建知识(constructing knowledge),而不是获得知识(acquiring knowledge),即从简单结构到复杂结构的转变是一个不断建构的过程,任何认识都是不断建构的产物。
派珀特大受启发,开始深入思考如何利用计算机、数学去理解和解释学习者的学习与思维。7年之后,派珀特结束了在日内瓦大学的学习,来到MIT,并与马文·明斯基创办了MIT的人工智能实验室。1968年,西蒙·派珀特发明了LOGO语言,这也是全球第一款针对儿童教学使用的编程语言。
LOGO语言最主要的功能是绘图。进入LOGO界面,光标被一只可爱的小海龟取代,所以也叫作“小海龟画图”。LOGO语言虽然看起来非常简单,但背后却是人工智能、数学逻辑以及发展心理学等学科的结合。简单的指令经过组合之后,可以创造出非常多的东西。
派珀特推出LOGO语言的本意是让儿童有机会利用科技去构建知识、解决问题、创造性地表达自己。但是这种输入命令的编程方式不够直观,对儿童来说仍有一定的难度。
1982年春天,年轻的记者米切尔·雷斯尼克前往旧金山报道西海岸计算机展,刚好赶上派珀特做主旨演讲。派珀特的演讲使米切尔·雷斯尼克对计算机有了新的理解:“它不只是完成某项任务的工具,还可以是儿童表达自我的新方式。”
这一幕就像是20多年前,派珀特在日内瓦大学遇到了皮亚杰:享誉业界的大师点燃了青年才俊的梦想,并在日后完成衣钵传承。
于是,米切尔·雷斯尼克很快申请入读MIT,并成为西蒙·派珀特的学生,研究如何借助技术让儿童成长为具有创造性思维的人。
乐高公司和派珀特的实验室一直保持着密切的联系和合作。1983年,米切尔·雷斯尼克与西蒙·派珀特一起尝试基于乐高积木来研发项目。
他们将乐高积木与LOGO语言结合,当乐高模型与计算机连接后,孩子就能够通过LOGO程序控制乐高积木。这款硬件与软件的组合后来被称为“乐高/LOGO”,在1988年由乐高公司作为产品推出。
孩子们试用乐高/LOGO的过程使米切尔·雷斯尼克意识到,要开发一款适合儿童认知水平、具有开放性创造空间的编程软件。LOGO语言的语法虽然很简单,但是如果能够进一步将其可视化就好了。基于这个构想,雷斯尼克领导的“终身幼儿园团队”(Lifelong Kindergarten Group)开发出了新的图形化编程软件——Scratch。
在Scratch的编程界面中,程序语句都以积木拼接的形式呈现,积木根据功能划分为不同颜色。编写程序时,只需要像拼插积木一样把程序语句垒在一起就行了。只有当程序在语法上合规合理时,积木的接口才能对接上。Scratch这种使用积木接口的形状作为拼插指引的设计,借鉴于乐高积木。而Scratch所有的语法,几乎都借鉴了LOGO语言的语法。
从皮亚杰到派珀特,再到雷斯尼克,经历师徒三代人近百年的传承和创新,才有了Scratch的面世。Scratch的成功,与皮亚杰终其一生研究的儿童成长理论密不可分:对活动和交互的重视,让孩子在玩耍中不断创建和调整心智模式。