曾经有个抱着电脑却没游戏玩的时代,无聊的小孩甚至去玩一款编程软件
“repeat 4 [fd 100 rt 90]”
在一些拥有早年计算机阅历的朋友眼里,上面这串字符,会让他们条件反射地想到“正方形”——因为在当年的一个“画图软件”中输入上面的字段,就会得到一个边长100像素的正方形。
这个“画图软件”名叫Logo,它其实是一种编程语言。与一般的计算机语言不同的是,Logo语言输出的表现结果是几何图形。由于绘图的光标一开始是一个小海龟,因此它也被亲切地称为 “小海龟画图”。
这是很多朋友接触到的第一种编程语言。
它在国内流行的时候是90年代中期,主流电脑还是DOS机,很多连鼠标都没有。当时的用户使用Logo语言,就能控制小海龟画出各种美丽图案。
在当时一些如“裕兴”之类的学习机上,也内置了“小海龟画图”程序
这些几何和数学感极强的图像,很像那个年代小伙伴们用流行的万花尺玩具画出来的作品。
我也是刚知道这个东西叫万花尺
上世纪90年代中期,“机房”还是一个非常神圣的场所,享受着木质地板、控温空调的高级待遇,连进入机房上课都需要戴上防尘鞋套。因为接触电脑的机会十分有限,计算机课也自然成为了很受孩子们欢迎的课程。
在邓小平同志“计算机普及要从娃娃抓起”的号召下,编程在很长一段时期内都是计算机教育的重中之重。当时计算机教材除了指导学生练习键盘的基本指法之外,还有专门的章节介绍“小海龟绘图。
当然,多数孩子对编程是没有什么概念的,他们更多地是拿小海龟绘图当做一款需要动点脑子的游戏——从乐趣与成就感来看,两者确实有着共通之处。
1984年,13岁的李劲在为邓小平演示编程操作
图形化的编程语言
Logo的入门非常简单,特别是对于那些以英语为母语的西方用户来说,因为它的多数命令都是英文单词。
PC Logo软件界面分为两部分,上面是结果显示,下面是文本输入框。小海龟形象作为画图光标,显示于屏幕中央。
之所以选用“小海龟”的形象作为软件的光标,是因为Logo语言的最初的灵感来源于派普特无意中看到的海龟玩具,在上好发条之后,海龟能在移动的同时画下线条。
不过后来Logo软件出现了大量改版,为避免版权纠纷,很多版本都使用了三角箭头替代原本的海龟形象,这也是如今的Logo新版很少能看到那个经典海龟的原因。
在软件中,通过输入特定的指令,可以让小海龟在屏幕中移动并留下痕迹,实现绘图功能。
比如输入“FD 100”或“Forward 100”,海龟就会向前移动100像素;输入“LT 90”或者“Left 90”就可以让海龟左转90°;而“Repeat”就是字面意思“重复”,可以叠加其他命令。
文章最前的“REPEAT 4 [FD 100 LEFT 90]”翻译过来就是“重复4次(前进100,左转90°)”,自然就形成了一个正方形。
Logo还支持一些软件内的计算。键入命令“Repeat 7[FD 30 RT 360/7]”,得出的结果就是一个边长30的正7边形。
除了通过代码来调整海龟所画出的笔迹粗细、颜色、绘画速度等参数以外,Logo也可以使用条件判断等控制命令。通过它们,用户就能使用简短的命令绘出复杂的图案。
如果语法足够精确,思路足够开阔,最终就可以画出上图那种花样繁多的图案,任意调整其中某个参数,又得出另外一种完全不同的结果。
向计算机发送简单的命令,进而绘制一个自定义图形,这个过程可以让用户掌握程序设计的基本逻辑,同时加深对几何、多边形的理解。
由于软件的命令多数都是英文,很多孩子最先学会的几个单词都是来自这款软件。你当时可能不知道“repeat”的含义,但却可以熟练的念出这串字符。
练习编写程序的同时又能让孩子们认识英语单词,将它作为计算机的入门课程,的确非常合适。
Logo语言诞生后,很多学者都热衷于发掘它的内在潜力,比如通过这种语言学习几何原理甚至微积分。还有研究者专门为Logo写了一本几百页的指南,探讨Logo的高级用法与功能,书名就叫《乌龟几何》(Turtle Geometry)。
这种古老但有趣的编程语言在Windows出现之后的应用就不多了,一方面是因为真正意义上的编程语言越来越多,另一方面是计算机的图形化技术也越来越完善,不需要这种简单的几何图形来表现内容了。
不过根据TIOBE的编程语言排行榜,“Logo”在2018年1月仍占据着第37名的位置,被应用于教育机构:仍有一些少年像儿时的我们一样,在一个什么游戏都没有的机房电脑上,乐此不疲地操作屏幕中的小海龟画下一幅幅精妙的图案。
派普特和他的小海龟
Logo语言最初出现在1966年,比C语言的历史还要久远,是一种基于LISP修改的计算机语言。
它的设计者是西摩尔·派普特(Seymour Papert)博士,一位南非出生的人工智能先驱,就职于美国麻省理工学院。除了Logo编程,他还是乐高“头脑风暴”系列科教机器人的奠基人。
“Logo”一词来源于希腊语“Logos”,意思是支配万物的原理、上帝的旨意。软件的设计初衷是为了让儿童能更容易的理解计算机编程。
派普特曾说过一句话:我们要关心怎么能让孩子对电脑编程,而不是让电脑对孩子进行编程。
Logo语言就是派普特在这个理念基础之上而创造的,这也是世界上第一款针对儿童教学使用的编程语言,因此,派普特博士也被誉为“儿童编程之父”。
因为Logo语言是在60年代末期诞生的,那时候的计算机是绝对的高级货,孩子们很难有机会接触。于是为了推广Logo,派普特博士做出了一款实体版的“可编程小海龟”,可以通过键盘控制器完成Logo语言中的部分简单操作。
1984年,时任乐高公司CEO的克伊尔德·克里斯丁森在电视中看到了一次派普特的采访节目,后者正在电视中演示这只实体Logo海龟。克里斯丁森认为,这个实体化可互动的“玩具”与乐高的产品哲学有着相通的理念,二者如果能够结合起来,一定是个不错的新产品。
但这个设想直到1998年才得以实现。
彼时的计算机已经足够普及,微型电脑的成本也足够低廉。为了向灵感来源派普特教授致敬,乐高的新产品线被命名为“Mindstroms”,头脑风暴——这正是派普特1980年出版的著作的名字。
“头脑风暴”系列能让乐高积木活起来,实现弹琴、掰魔方等功能
2006年12月,78岁的派普特博士在越南河内出席第17届国际数学教学研究会议,不幸在当地被摩托车撞伤,并接受紧急手术。
一个月后,他被转移到了美国一家离家较近的医院,又在此感染了败血症。当时他虽然逻辑思维依旧清晰,但行动能力非常有限,只能进行些许康复训练。
十年之后的2016年7月31日,在人工智能以及儿童教学领域做出杰出贡献的西摩尔·派普特博士最终没能战胜病魔,在自己的家中病逝。
但派普特博士留下的精神遗产对后人仍是一份宝贵的财富,Logo语言也和他最初的构想一样广泛应用于儿童教育领域,至今仍被很多小学选为入门编程语言。
为纪念西摩尔·派普特,乐高专门设计了一只人仔——注意人仔的衣服和手中的书
*如果希望重温LOGO编程,可以试试中文版《海龟学院》,以网页版形式回顾当年的小海龟绘图。