menu-icon
anue logo
澳洲房產鉅亨號鉅亨買幣
search icon

時事

鉅亨看世界─BASIC半世紀

鉅亨網陳律安 2014-05-08 07:43


左為BASIC發明人John Kemeny,中間為Thomas Kurtz,他們正在教導學生BASIC
左為BASIC發明人John Kemeny,中間為Thomas Kurtz,他們正在教導學生BASIC

學會程式編碼對一般人來說,是件好事;事實是,沒有更多人學會程式編碼,其實有點可恥。


幾年下來,美國公眾對於寫程式相當熱愛,也因此衍生出許多教育計畫,比方說由 Code.org 推行的 Hours of Code,以及更具野心的 Code Year。

《TIME》報導,就連美國總統歐巴馬也在搖旗吶喊。去年12月,他在 Youtube 影片上敦促年輕人學習寫程式,並表明「學習這些技術不僅對你的未來重要,更攸關國家未來。」

每個人都該學習編程式碼聽起來令人讚賞,但也激起了一些鄉愁。那令人回想起一個舊時代,一個會用電腦等同於會寫程式的年代。而電腦之所以能夠蓬勃發展,得歸功於程式語言 BASIC。

時光倒流 50 年,BASIC 由達特茅斯學院的 John G. Kemeny 以及 Thomas E. Kurtz 在新罕布夏州的漢諾威催生。精確一點的來說,是 1964 年 5 月 1 日的凌晨 4 點鐘,它首度成功的在學校的奇異電子電腦系統上運行。

這兩位數學教授深信,在未來「電腦知識」將相當重要,因此設計了該程式語言,BASIC 為 Beginner’s All-Purpose Symbolic Instruction Code 的縮寫,翻成中文是「初學者的全方位符式指令代碼」。一開始該程式語言只在達特茅斯學院流傳,後來才是其他學校。

從 1970 年代到 1980 年代初期,隨著家用電腦誕生,BASIC 也被蓬勃運用,尤其是為一間名為微軟的「小公司」採用。

BASIC 的設計從未想要改變世界,根據現在還在人世的 Kurtz 的說法是「我們只想著在達特茅斯學院使用。」Kemeny 已於 1992 年辭世。「我們需要一個程式語言是能夠不用上課,就能『教會』所有的學生乃至教職員。」

他們的心血結晶,很快地為全世界學習電腦語言的人採用,且這情況持續了相當多年。然而,這偉大發明的影響力,對全人類的影響並不僅限於電腦語言歷史。

將時光倒流回 1960 年代中期,使用電腦就像是透過信件往返來下西洋棋:你利用打孔機在紙卡上面打洞,交給電腦操作員,然後等待結果印出來,最遲可能是明天。

[NT:PAGE=$]

相較之下,BASIC 及其平台 (Dartmouth Time Sharing System) 則簡化了整個過程:你打出一些字及數學算式,電腦便會立即運算。

時至今日,人們預期一干 3C 產品能夠立即回覆人們的指令。其實現在電子產品能夠辦到這些,都得歸功 Kemeny 及 Kurtz 的發明。這發明普及的時間點甚至遠比滑鼠在 1960 年代為 Douglas Engelbart 發明還早。

不過這極富教育意義的程式語言,也不是毫無爭議,或廣為眾人所喜愛。BASIC 這程式語言,便遭逢嚴肅的電腦科學家抨擊─他們認為這會帶來會壞習慣。就連其發明人,都 對 70 年代以及 80 年代的許多衍生版本感到不滿。

到最後,BASIC 隨著時間過去仍消失了。沒有人共謀讓 BASIC 消失,也沒有人想解釋它為何就這麼失去了。但有些人對此深深的懷念著。

也許現在是科技發展的最好的時光,然而,世界在每個用電腦的人都多多少少會使用 BASIC 語言時,顯得更為美好。

■初學者適用

遲早會有人催生新的、鎖定初學者的程式語言。不過 BASIC 的影響之所以如此深遠,與其來自人文學院的先進數學教程脫不了關係。而這又與身為數學系主任的 Kemeny 的眼界息息相關。

Kemeny 是猶太裔,於1926 年生於布達佩斯,在 1940 年時為了逃離納粹魔掌而與家人一同逃往美國。他的大學學業在普林斯頓完成,當中一年還離開學校參與了曼哈頓計畫。他也深受之名數學家暨物理學家 John von Neumann  啟發。

Kemeny 在 1953 年成為達特茅斯學院的教授,在那之前他是愛因斯坦的數學助理。在達特茅斯兩年後,他以 29 歲之姿當上了數學系主任,以教導數學相當具開創性聞名。1959 年時,Alfred P. Sloan 基金會捐獻 50 萬美元新建數學系所,《TIME》將這歸功給 Kemeny 的聲譽。

達特茅斯學院現任數學系主任、也參與 BASIC 誕生的 Dan Rockmore 指出,BASIC 源自於 Kemeny 數學不該與人文脫勾的想法。

1960 年代初期,就算是長春藤學校的電腦系學生,也沒有與電腦實際接觸的經驗。電腦「藏在深鎖的大門後面,只有穿著白袍的男性,很偶爾的才有女性能夠進去。」Rockmore 表示。

[NT:PAGE=$]

學生學習BASIC的情形
學生學習BASIC的情形

Kemeny 相信,電腦能在日常生活中扮演更重大的角色,而每位達特茅斯學院的學生都該略知一二。「我們的想望是每個學生都能用電腦,然後每位教職員都能夠在適當的時候於課堂上使用電腦。就這麼簡單而已。」他在 1991 年的影音訪問表示。當然,達特茅斯學院無法給每位學生及教職員一人一台電腦,那時的電腦相當昂貴,且一次只能做一件事。

Tom Kurtz 在 1956 年時加入了達特茅斯學院數學系的行列,推動了彼時相當吸引的新概念─分時作業。它能分割系統的處理能力,使其同時處理不同人的請求。這後來成了著名的達特茅斯分時作業系統,坐在終端機前的使用者能寫好程式便立即運行。

「如果你想讓學生對學電腦有興趣,一些立即性是必須的。」Rockmore 表示。「你不希望程式還沒搞定前,就送個 10 條長的程式進電腦中心,」

但什麼樣的程式,才能夠勝任讓同學感到有趣的角色。過去 Kemeny 與 Kurtz 也有些失敗作品,比方說 Darsimco 及 Dope,但這次他們決定修改現有的程式語言。

他們嘗試利用 Fortran 及 ALGOL 語言,卻鎩羽而歸。達特茅斯大學部學生,也參與了 DTSS 催生的 John McGeachie 表示:「Fortran 及 ALGOL 都太複雜了,任何需要訓練的語言都會影響教育意義,會損及普及性。」他說。

於是 Kemeny 及K urtz 創造了直白的、不需要記憶的程式語言。「我們希望句法涵蓋一些常見字句,然後這些字句都有其意義。比方說哈囉、再見,不是比登入、登出簡單的多嗎?」Kurtz 說。

BASIC 主要是 Kemeny 的主意,他自己寫出了第一個版本。從 1963 年 的 9 月起他開始讓它及 DTSS 啟用。他們帶領了一干男性學生的團隊,而這些學生自身仍在學習使用電腦。達特茅斯當時仍是男校,不過後來當上校長的Kemeny,於 1972 年改制為男女同校。其校長任期由1970 一直當到 1981 年。

該計畫受到來自國科會 30 萬美元的資助,這是必須的畢竟運算需要仰賴兩具強大電腦的奧援,包括奇異的 GE 225主機。它負責數學的浮點運算,以及較小具的 Datanet-30 負責與打字機的連繫。

BASIC 並不是逐句演算,而是一整塊處理,這以 1960 年代運算的水準來說,算相當快速。「如果你寫的是很簡單的程式,大概一兩秒結果就會出來。不過要印出來就得花上較久的時間,畢竟打字機每秒僅能處理 10 個字母。」

[NT:PAGE=$]

那個發生在 1964 年 5 月 1 日的歷史性時刻,其實可以說是兩個歷史性時刻。因為 BASIC 成功,且達特茅斯分時處理系統也能一次對應不止一個用戶。

你可以用它寫很複雜的程式,長度可能長達兩呎長的報表紙。但你也能在第一次遇見它時,透過幾個簡單的指令,就讓它運行些有趣的結果,這就是 BASIC 的魅力。

對 Kemeny 以及 Kurtz 來說,BASIC 以及 DTSS 的 易取得性相當重要。「任何學生走進圖書館,可以借任何書沒人會過問,同樣的,任何學生走進 Kiewit 計算中心,都能選用任何一個主機,然後開始使用分時處理系統,沒有人會問說你是要做研究、作功課,玩美式足球電玩或是寫信給女友。」Kemeny 在簡介冊上說到。

Kemeny 說的,其實就是個人電腦 (PC) 的概念,不過當時這詞根本還沒被發明,概念可說非常前衛。

達特茅斯 BASIC 的發展,已經遠超發明人當初的期望。在 1967 年的一份報告中,他們提到超過 2000 名學生學會如何寫程式及除錯。這占 BASIC 發明以來進來的 3 屆新鮮人的 80% 。也有更多學生持續使用 BASIC,此外,40% 的教職員也用過這套系統,也不僅限於數學以及科學教授。

達特茅斯學院透過電話線將這套系統分享到其他東岸學校,包括哈佛以及普林斯頓,以及其他高中。達特茅斯學院幫助其他機構採行分時系統的同時,奇異電子也將 DTSS 以及達特茅斯 BASIC 商業化並賣給商業客戶。其他電腦業如 Digital Equipment Corporation、惠普都推出了自己的 BASIC。

達特茅斯讓電腦平民化的努力,獲得了空前的成功。「從質來看,效應的確非常好。從量來看,我低估了它的發展。許多課堂都用到它,也因為電腦的取得性作出了修改。同樣的我也低估了教學電腦會如此散播到全世界。」Kemeny 於 1991 年訪談表示。

■反對BASIC的聲浪

然而,不是每個人都對電腦的普及感到開心。最高唱反對聲浪的是 Edsger Dijkstra,他是相當聲譽卓著的電腦科學家。「如果先接觸了 BASIC,便很難教導學生何為好的程式語言。」

[NT:PAGE=$]

很有可能的,是 Dijkstra 這麼說是為了戲劇效果,因位他也形容 FORTRAN 是不成熟的失能、PL/1 是致命的疾病、 COBOL 是犯罪。

儘管 Dijkstra 對 BASIC 如此厭惡,但很多工程師都是從 BASIC 開始,然後有個豐富的職涯。其實,BASIC 的壞名聲,很多正是那些讓它易於學習的特點。

舉例來說,BASIC 有個 GOTO 的功能,一個讓你從 A 跳到任何地方的功能。Dijkstra 認為這會讓整個程式碼雜亂無章。一個好的 BASIC 程式者,會讓雜亂無章。

的確一個良好的工程師能夠寫出不用 GOTO 的程式碼,但過去強調整潔,對初學者來說可謂很不友善。對他們來說,GOTO 是個上天的恩賜。

此外,傳統的 BASIC 也能讓你透過行列號碼整理程式,這對傳統人士來說,可能是無用的。但這項功能強調了電腦程式序列的本質。

從 Djkstra 著作「怎麼說實話才不傷人」中提到的觀點來看,寫程式應該留給專家,因為這是「數學分支裡最難的一環」,且天份不夠的數學家最好不要來碰這一塊。

如果這是它在 1975 年時的觀點,那麼他不可能認可 BASIC 的存在。

時至今日,Kurtz 對於人們批評它的心血結晶對於初學電腦者是「不夠嚴肅、危險」的方法感到非常不屑,他說:「這是狗屎」。「我覺得專家是忌妒吧。畢竟我們花了好多年時間才發展開來,如果是笨蛋的話怎能寫出用幾個小時的技術寫出這樣的程式?」

BASIC 對於如 Dijkstra 的人來說,可能毫無頭緒。但其實這無所謂,畢竟這不是為他們所設計的程式。不過從 BASIC 以降,像 Dijkstra 這樣開砲的人只有更多沒有更少。

■PC興起

BASIC 與 DTSS 的結合,可謂個人電腦運算的濫觴。但這時 PC 尚未成形,真正的 PC 要等到 10 年後─新墨西哥州的火箭公司 MITS 推出的 Altair 8800 微電腦,才是 PC 的濫觴。

這對當時的電腦狂熱者來說,可說是天大的消息─比方說 Paul Allen。這位後來微軟的共同創辦人,當時還在波士頓的 Honeywell 做程式設計師。

[NT:PAGE=$]

當他在哈佛廣場買了一份 1975 年 1 月號的「熱門電子 (Popular Electronics)」雜誌後,看到封面是 Altair 電腦,他與他的老友比爾蓋茲相當興奮。他們立即著手開發可以跑 BASIC 程式的 Altair 電腦。他們在西雅圖的湖濱學校學習了分時處理、打字機型式的 BASIC。

事實上,Allen 在知道 Altair 存在前,就開始嘗試寫自己版本的 BASIC。「尚未出現針對微處理器撰寫的電腦程式,但當 8080 處理器問世後,我知道它夠力,足以運行 BASIC。」

這對好友搭檔相當神奇,靠著模擬器 PDP-10,寫出了 BASIC 的 Altair 版本。「幫助我跟比爾寫程式的 Monte Davidoff 曾說,寫程式就像寫小說,這就是我們對 BASIC 的作法。我們先討論大綱,然後分章節,並且不斷編輯,在符合大綱的情況下修正錯誤。這是我做過最困難,卻也是最有成就的事。」

Allen 與蓋茲在 BASIC 的合作,成了後來的軟體巨擘微軟。他們將軟體授權給 MITS 的費用是不少的 500 美元,但如果與 Altair 硬體一同購買,軟體價格則降到 75 美元。

如果你選擇直接盜版的話,軟體費用降到零元。事實上,許多人的確這麼做了,這讓蓋茲寫了著名的公開信,指責人們盜取微軟的智財權。

MITS 公眾部門的 David Bunnell 表示,將 BASIC 售價拉高,用這當作買硬體的誘因,是個「日後反噬的策略」。他認為當時公司的總裁 Ed Roberts 有些短視,看不清大局。

即便如此,BASIC 能在微電腦上運行仍是件大事。Bunnell 說,新電腦革命,必須有兩個關鍵,就是電腦必須便宜,然後電腦必須讓人理解。當 Altair 8800 電腦以及 Altair BASIC 推出後,這兩項要素便達成了。

這千真萬確,不過這只是故事的開端。1977 年一系列新 PC 問世,鎖定的是更廣的客戶層,包括蘋果的 Apple II、Commodore 的 PET 2001、Radio Shack 的 TSR-80。這些機子之所以能成為消費者的電腦,在於他們搭載了 BASIC。

PET 搭載的是微軟版本的 BASIC,蘋果及 Radio Shack 的版本則有些不同,前者的為蘋果共同創辦人 Steve Wozniak 所寫,不過那是在購得微軟版本之前。接下來幾年,幾乎所有值得一提的微電腦,搭載的都是微軟版本的 BASIC,這當中包括 Altari 以及德儀的電腦。

[NT:PAGE=$]

科技界人士常喜歡提起殺手級應用,意即非常厲害的程式,讓你買部電腦只為運行它。1979 年的試算軟體 VisiCalc 常被稱作殺手級應用的始祖。但在這之前,微軟的 BASIC 可說是 PC 的殺手級應用。許多人買部電腦,只為了學習它。

除了微軟之外,還有許多版本的 BASIC。早年知名的 CBASIC,是由海軍軍官 Gordon Eubanks 所創。他的版本相當在商業應用上相當熱門。「微軟的 BASIC 與 CBASIC 相較基本許多。它出現在每個電腦上,如果你用的是 TRS-80,你可以寫個程式印出 HELLO。我的作法比較狹隘,專注在商業應用。結果是….蓋茲作的比較好一些。」Eubanks 指出。

雖然 Eubanks 後來沒有成為世界首富,但是也過得相當不錯。他在賽門鐵克當了很久的執行長。

Eubanks 提到了微軟 BASIC 之所有如此重要的原因,因為你根本躲不開它。當你開啟 TSR-80 時,直接就是 BASIC 畫面。微軟的 BASIC 與達特茅斯 BASIC 以及 CBASIC 不同的地方在於,它是轉換語言,意指你每次運行該程式,都會飛速的轉換在電腦指令。這讓它看起來有些亂七八糟,尤其是在你搞不清楚狀況的情況下。

但這也意味著,你可以檢驗它。可以從中學習、改正它等等。事實上這就是所謂的開放資源軟體,但那時還沒有這個名稱出現。

如果你需要學習 BASIC,有無止境的資料可供參考,但以電腦科學的標準來說,這些教材可以說是不大正式。比方說 1972 年 Menlo Park 的人人電腦公司 Bob Albrecht 寫的「當我說 BASIC 語言時,我的電腦喜歡我。」你難以想像同樣的書名會出現在教導 FORTRAN 的書上,或是 Object-C 以及 Java。

而在 BASIC 的年代裡,最有名的還是跟電腦遊戲有關。那本書名叫「101 BASIC Computer Games」,後來改版稱作「BASIC Computer Games」,由 David H.Ahl 所著。

David H.Ahl 是 Digital Equipment Corporation (DEC) 企業 PDP-8 系列的微電腦教育行銷經理。1971 年時,他將原先使用 DEC 旗下的 Focal 語言所寫的兩個遊戲,改編成 BASIC 版本,這些遊戲分別是 Hammurabi (漢摩拉比) 以及 Lunar Lander (登月者)。「我寫他們是為了要展現機子的能耐。」他說。

[NT:PAGE=$]

介紹BASIC電腦遊戲的書籍
介紹BASIC電腦遊戲的書籍

這些遊戲廣受歡迎,讓他將 BASIC 遊戲收錄在 EDU-DEC 的新聞信。當中許多內容由高中生提供。1973 年時,DEC 出版了選集,集結了精選內容,就是「101 BASIC Computer Games」。

書很快的賣到第二刷,總共賣出 10000 本。Ahl 回憶:「書比那時的電腦數量還多,所以每部電腦人們至少買個 3-4 本。」

1974 年 Ahl 離開 DEC 時,他創辦了雜誌「Creative Computing」,內容許多與 BASIC 有關。然後他購回了「101 BASIC Computer Games」的版權,以「BASIC Computer Games」重新出版。

「BASIC Computer Games」出現在 PC 大革命之前,但卻幫助了 PC 演進。該書不斷地更新,被翻譯成 6 種語言,啟發了很多續作,最後成了第一本賣出百萬本的電腦書籍。這些程式如同民謠般,成了文化的一部分。

不過 Kemeny 及 Kurtz 不大認同人們對於 BASIC 做出的改變。1985 年他們出版了一本書,稱做「Back to BASIC」(回到BASIC),認為微軟的版本以及其他版本高度不一致。首章就直指 PC 版本的 BASIC「出了什麼差錯?」,而且稱其他 BASIC 是街頭的 BASIC;Kemeny 及 Kurtz 甚至創了一間公司叫「True BASIC」來打擊其他版本。

■ BASIC高峰已過

雖然 BASIC 發明人很不爽,不爽到用設公司來抨擊其他版本,但這時 BASIC 影響力高峰也過了。它不再是學校教寫程式的首選。

突然間,BASIC 也不再是 PC 的基本元素,這與更簡單的語言問世無關,而是與電腦實質關系的深化,與會不會寫程式的關連大大降低。

微軟看到了這個趨勢。「我們很早就開始鞏固在程式語言的霸權。但很快的應用程式的重要性就蓋過了語言,因此我們需要寫出文字處理、資料庫、試算表等程式。」Allen 指出。

從雜誌 Compute 內容的改變,也能看出端倪。其編輯 Gregg Keizer 稱程式語言被套裝軟體攻陷,「最後問題在於雜誌要如何對讀者提供支援?」

當 1990 年微軟推出 Windows 3.0 時,BASIC 已時日無多。就算微軟推了 Visual Basic,也未與 Windows 一同販售過,而是與 DOS 一起,在 DOS 的 BASIC 稱做 QBASIC。2000 年的 Windows Me,是微軟最後搭載 Qbasic 的系統,但也聊勝於無,因為它只讓你寫 DOS 程式,但那時 DOS 也已式微。

[NT:PAGE=$]

■永遠的BASIC

文章一開始提到學會寫程式的重要性。那麼一個無可避免的問題是:如果想要學寫程式,透過 BASIC 可能嗎?

這正反意見紛呈。作家 David Brin 歌頌 BASIC 的教育意義。但也有專家如 Philippe Kahn 指出,在早已不是 DOS 的環境下學早已孤立的 BASIC,是有些過時了。

不過其他專家如 Charkes Forsythe 就說,BASIC 很「簡單且具互動性」,與其教育意義相符。

David Brin 說,其著作「Why Johnny Can’t Code」不是要疾呼回到 BASIC。他說的是在現在的電腦環境下,沒有現代版本的基礎教學語言。他稱讚了 Nikko Ström 所寫的 Quite Basic,一個透過網路瀏覽器就能運行的程式。無獨有偶,微軟也在 2008年 推出了針對孩子的 Small Basic。

連 iPhone、iPad、Android 等裝置都能運行 BASIC,只要你對它有興趣一切都有可能。

儘管 BASIC 在現在電腦世界的重要性漸漸式微,但 50 年前 Kemeny 及 Kurtz 的發明,讓現在的電腦大千世界成為可能,也形塑了全人類的文化。

再沒有比這個更珍貴的人類智慧遺產了。(文:陳律安)

文章標籤

BASIC

Empty