前言
BASIC為教學而生,因其開放、簡單和易用,迅速攻佔各大機器,開啟了探索的魔盒。BASIC以其優秀的底層能力,曾兼職個人PC系統的半邊天。BASIC的廣泛與基礎,促進個人計算機的崛起。BASIC的穿針引線,促使微軟成立,背靠IBM。因星際旅行,成就彼此,走向輝煌的未來。
一、親歷曼哈頓計劃,決心推廣程式設計美國達特茅斯(Darmouth)學院的院長John Kemeny參與了曼哈頓計劃,擔任程式設計師。他師從馮·諾依曼,也是愛因斯坦的助手。這不僅讓他精通計算機,更明白計算機在該計劃中的作用和影響力。
達特茅斯學院的數學教授Tom Kurtz則是計算機先驅約翰·圖克(John Tukey)的學生。當他在普林斯頓大學的數學專業讀研究生時,參加了加州大學洛杉磯分校的暑期課。在那裡,他第一次計算機結緣,便產生了濃厚的興趣。後來很快學會程式設計,也深知計算機對人類的影響。
1944年,第一臺電子計算機MARK I問世。緊接著,第二臺電子計算機ENIAC在1946年亮相。這讓Kemeny和Kurtz意識到,電子計算機不會止步,計算機在推動教學和科研的發展中,具有巨大的潛力,於是決心教授學生程式設計。
二、Fortran教不會,徒手DIY新語言大規模積體電路前的計算機,幾乎都是大型機,造價昂貴,主要服務於科學研究。上世紀60年初,達特茅斯學院數學系就添置了一臺LGP-30計算機,以便實施科研任務。這是一種相對便宜且功能一般的機器,僅有30K的RAM。但這足以讓Kemeny實施他的計算機教學實驗。
1956年,專為科學計算研發的Fortran(Formula Translation)語言,一經發布便獲得科學界好評。到1960年,Fortran的應用已很成熟,身為數學教授的Kemeny和Kurtz自然想到了,用該語言進行教學。但是他們忽略了自己懂計算機程式設計的背景,以為教和學都很Easy。臨陣時,學生們一臉臉的懵讓他們傻眼了。這才意識到,雖然Fortran簡單,但畢竟不是所有人都是科學家,也並非所有人都能掌握。Fortran能否再簡單呢?讓學心理學的,學哲學的,學文學的都可瞭解計算機呢?
說幹就幹,到1962年,DOPE(達特茅斯超簡化程式設計實驗)誕生了,這是一項專為教學而準備的語言試驗。在DOPE中,每一行程式碼由行號、操作和引數組成。受限於硬體條件(30K的RAM), Kemeny將運算子都簡化為1個字母,無分隔符,每行只執行1個簡單的運算,引數列表具有固定長度。沒有字串,剝奪了資料型別(所有變數都為浮點數,列印時有小數點就是浮點數,沒有就不是),使用「T」跳轉到特定行號,行號是一個隱式數字(1到99),按程式碼塊處理迴圈等。
DOPE在今天的程式設計師看來顯得不可思議,很多做法不夠專業,幾乎沒什麼價值。但它向學生解釋什麼是計算機,如何運作的已經足夠了。更重要的是,它驗證了Kemeny的想法,為後來Kurtz繼續開發BASIC提供了基礎。
三、BASIC誕生,開啟探索魔盒1964年5月,在達特茅斯學院學院報告大廳的地下室裡,由Kemeny、Kurtz和其學生一起研發的新語言誕生了。它就是BASIC,全稱為初學者通用符號指令程式碼(Beginner's All-purpose Symbolic Instruction Code)。它借鑑了Fortran 66和Algol60語言特點,設計為讓普通人也能掌握的程式語言。這在科學家和工程師當道的大型機年代,引起了巨大的反響。
透過達特茅斯學院的大型機,利用分時系統在校園裡建起了互動的計算機環境,教師、學生,甚至附近的中學都可以訪問。BASIC開啟了計算機領域的全方位探索,足球、星際旅行等遊戲,社會、人文科學,計算機約會等,顯示出了個人市場的強大生命力。
BASIC真正偉大之處,在於Kemeny和Kurtz明知他們開啟了什麼樣的魔盒,卻仍然不取分文地將之公之於眾,其胸懷遠勝於Unix的持權方。藉著BASIC注入的熱情,在全球範圍內很快就掀起了計算機世界的工業革命。1970年左右,Apple、IBM等各大廠商,紛紛在自家計算機上推出BASIC。
四、BASIC既當爹又當媽隨著數字裝置公司(DEC)的PDP(Power Distribution Plan)計算機生產線風靡世界,連Fortran都學不會的人都開始加入購買隊伍,計算機的個人市場開始嶄露頭角。為了吸引更多賣家,DEC取消了BASIC的編譯執行機制,轉而採用解釋執行,開啟了BASIC編譯和解釋執行的雙重格局。
當時大型機和小型機上已有Unix作業系統,微機上卻沒有。一方面沒有需求,另一方也沒有裝載能力。微機僅需能從ROM中讀取的監視程式(Monitor),用於BIOS初始化螢幕、鍵盤、軟碟機和印表機。恰巧BASIC可以直接操作BIOS,還可以跨過BIOS直接操作硬體,這在遊戲領域裡大受歡迎,成為絕對的主宰。用BASIC編寫的星際旅行長期佔據著DEC主機的記憶體和CPU。
因此在早期的個人計算機上,BASIC既充當著簡易作業系統,又是遊戲編制的不二之選,這為BASIC的廣泛應用奠定了堅實的基礎。為各大廠商的計算機編寫BASIC直譯器,便成了很迫切的任務,微軟早期就幹這活起家。
五、CP/M開創微機系統標準1971年,日本人認為計算機市場會像電晶體收音機那樣,但是發明電晶體的美國人還沒發明出微處理器。於是給Intel投資,用來製造4位處理器。很快世上首塊微處理器晶片4004誕生了,但是在大型機和小型機當道的當時,並沒有驚起波瀾。因為4位處理器,不足以使用者編寫他們熱愛的星際旅行。
無奈之下,Intel開始大甩賣,甚至打出了25美元賣一臺微機的廣告。正是這條廣告在加里·基爾代爾眼裡,發生了化學反應。基爾代爾曾是IBM的程式設計師,操弄著價值300萬美元的IBM360.但當他看到微處理器時,毅然選擇離開, 轉而研究Intel4004。
基爾代爾決定用4004為父親研發一款導航計算器,但很快就發現4004的指令集不夠用,於是與Intel公司取得聯絡。Intel公司對其開發的應用很感興趣,便在1973年邀請基爾代爾參觀,並將最新研發的8位晶片8008交給他研發。幾個月後,PL/M語言誕生了,並在DEC公司的TOP-10主機上,成功開發出了微機控制程式CP/M,從此Intel晶片上有了自己的通用控制除錯程式。
CP/M將作業系統分為上中下三層結構。上層為控制檯命令處理程式,處理類似於複製、貼上和新建這樣的命令。中層為磁碟作業系統,實現對磁碟檔案的自動存取。下層為BIOS,處理基本輸入輸出。CP/M的創新,讓其迅速成為Intel晶片的標準作業系統,在該系統上奔跑的應用軟體有數千種之多。不僅讓Intel站穩微處理器龍頭地位,更讓CP/M的結構體系成為PC作業系統的事實標準。
六、BASIC牽線,比爾.蓋茨掘首金1974年Intel推出8位晶片8080,真正的微型計算機才成為可能。1975年,MITS電腦公司推出了該晶片的首臺個人電腦Altair8800,其搭載的正是CP/M。比爾.蓋茨和保羅.艾倫,洞察到了個人PC市場的巨大潛力,決定為Altair8800開發BASIC直譯器。最終賣給MITS公司,創立了微軟。
1978年,Intel推出第1塊16位晶片8086,SCP公司決定開發該晶片的個人電腦,但CP/M遲遲未升級到16位,於是決定自己開發16位的作業系統。Tim Paterson閃亮登場,他不僅充分借鑑CP/M的結構體系,甚至連使用者介面和程式設計介面都一樣,還引入了微軟BASIC直譯器的FAT檔案系統。1980年8月,僅僅4個月,QDOS就誕生了。意為簡易的作業系統(Quick and Dirty Operating System),可完美執行CP/M上的程式。
1980年10月,IBM決定推出基於Intel8086晶片的PC,於是找到基爾代爾創立的Digital Research公司,想要CP/M系統。但基爾代爾忙於銷售火爆的8位CP/M,完全未顧及到這單生意,就這樣拱手將機會讓給了微軟。
當時IBM還不知道QDOS,但比爾蓋茨卻因為BASIC,知道SCP公司正在研發的QDOS。當IBM尋求系統無果之後,想起了做BASIC直譯器的微軟,於是讓微軟提供作業系統。比爾.蓋茨迅速以2.5萬美元的代價,從SCP獲得了QDOS的使用許可,做成了這單生意。就這樣,在BASIC的穿針引線下,微軟終於靠上了IBM這棵大樹。
七、背靠IBM,緊握遊戲生態,微軟終成巨頭到1981年7月,微軟對IBM PC的設計已經非常瞭解,決定不再使用QDOS的許可模式,而是又花了5萬左右將QDOS買了下來,同時也挖走了Tim Paterson。微軟將其更名為MS DOS,意為磁碟作業系統(Disk Operating System)。
1981年8月,IBM正式推出個人PC品牌IBM PC,在其ROM中固化了微軟的BASIC直譯器,系統使用MS DOS1.14版。
1983年,BIM又推出配備了磁碟的IBM PC/XT,使用MS DOS2.0。微軟針對PC開發出了首個BASIC編譯器版本,也即IBM BASIC1.0。雖然只支援64K程式,但足夠開發星際旅行遊戲。至此,在小型機上的星際旅行,終於可搬到個人PC上了。這為IBMPC吸引了大量購買者。這促使IBM在1984年裡就推出了下一代個人電腦IBM PC/AT,使用MS DOS3.0。
1985年,借鑑Turbo Pascal的思想,微軟為BASIC建立了滑鼠驅動環境。但遭到IBM的拒絕,微軟不得不將其更名為QuickBASIC2.0,暗示為IBM BASIC1.0的後繼。在1987年重新包裝後,更名為ProfessionalBASIC。該版本已具有64K程式空間和64K資料空間,星際旅行的最新版也可搬家了。
1989年,MS DOS4.0開始支援滑鼠和圖形介面。微軟開始與IBM合作研發OS/2,為放棄DOS做準備。到1991年,MS DOS5.0內建QBASIC程式設計環境,成為最後1版獨立的DOS產品。
八、BASIC給人的啟示與BASIC一脈相承的VB,吸收了計算機發展史上,數種優秀開發語言的優點,最終落腳於服務普通大眾。因為心胸開闊的Kemeny和Kurtz深知,人才是計算機的靈魂和歸宿,普通大眾才能賦予計算機無限可能。BASIC的歷史脈絡,也告訴後繼的使用者,簡單裡有深厚的哲學,抓住得住時機,才有自己的時代。
不必苛責VB什麼,找到合適的位置,這是BASIC立足於教育,帶給我們的啟示。誠如Kemeny所說,關鍵要看使用者能否意識到哪些是計算機可以做的,哪些是計算機不能做的。但很肯定,它能給企業和大部分私人生活帶來影響。