小海龟画图Logo语言:年轻人的第一次编程体验与90年代的DOS机时代
小海龟画图——年轻人的第一次编程。

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”或者“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 的编程语言排行榜可知,在 2018 年 1 月,“Logo”占据着第 37 名的位置。它被应用于教育机构。一些少年如同儿时的我们,在没有任何游戏的机房电脑上,兴致勃勃地操作着屏幕中的小海龟,画出一幅幅精妙的图案。
派普特和他的小海龟
Logo 语言在 1966 年首次出现。它比 C 语言的历史更为久远。它是一种基于 LISP 进行修改的计算机语言。
西摩尔·派普特(Seymour Papert)博士是它的设计者,他是一位人工智能先驱,出生于南非,在 美国麻省理工学院任职。除了Logo编程外,他还是乐高“头脑风暴”系列科教机器人的奠基人。
“Logo”这个词源自希腊语“Logos”。“Logos”的意思是支配万物的原理以及上帝的旨意。软件设计的初衷,是要让儿童能够更轻易地理解计算机编程。
派普特曾说:我们需关心如何让孩子进行电脑编程,而非让电脑对孩子进行编程。
Logo 语言是派普特基于这个理念创造出来的。它是世界上第一款专门针对儿童教学使用的编程语言。所以,派普特博士被赞誉为“儿童编程之父”。
Logo 语言诞生于 60 年代末期,当时的计算机是极为高级的物品,孩子们很难有机会接触到。为了推广 Logo,派普特博士制作了一款实体版的“可编程小海龟”,能够通过键盘控制器完成 Logo 语言中的部分简单操作。
1984 年,当时担任乐高公司 CEO 的克伊尔德·克里斯丁森在电视上看到了一次派普特的采访节目。在这个节目中,派普特正在演示这只实体 Logo 海龟。克里斯丁森觉得,这个能够实体化且可互动的“玩具”与乐高的产品哲学有着相同的理念。他认为,如果将二者结合起来,一定会成为一个不错的新产品。
但这个设想直到1998年才得以实现。
当时的计算机已经相当普及了,微型电脑的成本也变得足够低。乐高为了向灵感来源派普特教授表达敬意,将新的产品线命名为“Mindstroms”,而“头脑风暴”正是派普特 1980 年出版的著作的名字。
“头脑风暴”系列能让乐高积木活起来,实现弹琴、掰魔方等功能
2006 年 12 月,78 岁的派普特博士参加了在越南河内举行的第 17 届国际数学教学研究会议。然而,他在当地遭遇了不幸,被摩托车撞伤了。之后,他接受了紧急手术。
一个月后,他被转到了美国的一家医院,这家医院离家比较近。之后他在这家医院感染了败血症。那时,他的逻辑思维依然是清晰的,但行动能力却非常有限,只能进行一些康复训练。
2016 年 7 月 31 日,那是十年之后。西摩尔·派普特博士在人工智能以及儿童教学领域有着杰出贡献。然而,最终他没能战胜病魔,在自己家中病逝。
派普特博士留下的精神遗产对后人来说仍是很宝贵的。Logo 语言像他最初的构想那样,在儿童教育领域得到广泛应用。到现在,很多小学仍将其选为入门编程语言。
为纪念西摩尔·派普特,乐高专门设计了一只人仔。这只人仔的衣服很有特色,并且手中还拿着一本书。
点击“阅读原文”,能够跳转至中文版的《海龟学院》,通过网页版来回顾当年的小海龟绘图。
史丹利/ STN快报:在三重现实冲突之间游走