曾經有個抱著電腦卻沒遊戲玩的時代,無聊的小孩甚至去玩一款編程軟體

小海龜畫圖——年輕人的第一次編程。

文 / 九月

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的編程語言排行榜,「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語言也和他最初的構想一樣廣泛應用於兒童教育領域,至今仍被很多小學選為入門編程語言。

為紀念西摩爾·派普特,樂高專門設計了一隻人仔——注意人仔的衣服和手中的書

*點擊此處,可以跳轉至中文版《海龜學院》,以網頁版形式回顧當年的小海龜繪圖。


推薦閱讀:

說說你做過的噩夢?
219.朝花夕拾44~15年前的911
我就想問問,難道只有我的腦袋被卡住過?
70後的童年是什麼樣的回憶

TAG:童年 | 計算機 | 編程 |