2016-08-20 18:30:57
1970年代早期,在喬伊正學習編程的時代,計算機有幾個房間那麼大。一臺計算機的價錢就要一百萬美元——那還是1970年代的一百萬美元。計算機非常罕見。即使你能找到一臺,你也很難接近它;即使你接近瞭它,租用使用時間也會花上一大筆錢。
此外,編程本身是件冗長乏味的工作。這時期編程得用紙板和卡片。每一行代碼都用鍵盤打孔機打在卡片上。一個復雜程序可能需要幾百張至上千張卡片,光 摞起來就有老高。程序編完後,你走到主機前,把你的那摞卡片交給一名操作員。因為計算機一次隻能處理一項任務,操作員需要為你的程序預約。你要等上幾個小 時甚至一天才能取回你的卡片,這取決於你前面有多少人在排隊。隻要你犯瞭一個小錯誤,哪怕是個拼寫錯誤,你就得取回那些卡片,改正錯誤,然後重新開始整個 流程。
在這種情況下,成為一個編程專傢難上加難。二十出頭就成為編程專傢幾乎更不可能。你在計算機室內花上的一個小時中隻有幾分鐘是在真正編程,什麼時候你才能湊夠一萬小時?“用卡片編程不會教會你編程。它教給你的是耐心和校對。”一名從那個時期走過來的計算機科學傢回憶說。
1960年代中期,才浮現出一個解決方案。計算機的計算能力終於大到足以同時運行幾項任務。計算機科學傢們意識到,如果重寫操作程序,計算機的時間 就可以被共享;計算機就可以同時運行成百上千項任務。這意味著程序員不再需要手把手把卡片交給操作員。可以設置數十個終端,全都用電話線同一臺主機連接, 這樣大傢就可以同時在線工作瞭。
這裡有一段話描述分時共享的歷史意義:
“它不隻是一項革命。它簡直是天啟。忘掉操作員、堆放卡片的桌子和漫長的等待吧。有瞭分時共享,你可以坐在自己的電傳打字機前,輸入指令,然後得到答復。分時共享是人機對話的:程序要求你答復,等待你輸入答復,然後你等著它運行,然後給你結果。都是‘有效時間’。”
密歇根大學已經做到瞭這一點。它是全世界第一批完成向分時共享操作系統轉換的大學之一。1967年,這套系統的一個樣本已經建立並運作。到 1970年代早期,密歇根大學已經有足夠的計算機運行能力,可以讓一百人同時在計算機中心編寫程序。“在1960年代末和1970年代初,我想再沒有像密 歇根大學這樣的地方瞭。可能MIT、卡奈基.梅隆學院、達特茅斯學院(Dartmouth,常春藤八校之一)也有這樣的條件。但也僅止於此瞭。 ”MikeAlecander,密歇根大學計算機系統的先驅之一說道。
這就是當比爾·喬伊1971年秋天抵達安阿伯校區時,命運伸來的橄欖枝。他在高中時期從未碰過計算機。他隻是對數學和機械感興趣。但是當計算機程序吸引瞭他時,他發現他身處世界上非常有限的幾個能讓17歲大學生任意編程的地方之一。
“你知道用卡片操作和分時共享系統操作的區別是什麼嗎?”喬伊說,“那就像是通過寫信下圍棋和面對面下圍棋的區別。”編程不再是一個枯燥乏味的活動。它充滿樂趣。
“我住在北校區,計算機中心也在北校區。”喬伊繼續說,“我在那兒花瞭多少時間?非常多。它24小時都開著,我整夜呆在裡面,凌晨才走出去。”
“問題是他們會給每個學生一個裡面有一些錢的賬戶,這樣你的時間很快就會用完。當你登陸時,你要輸入你想使用多長時間計算機。比如他們給你一個小 時,這就是你所能使用的時間。但是有個傢夥發現,如果你輸入 ‘時間就是’,然後輸入一個字母,比如‘時間就是K’,他們就不會收你的錢。”他邊說邊因記憶而笑。“這就是那個軟件的漏洞。你輸入‘時間就是K’,然後 你可以永遠坐在那兒使用電腦。”
看一看那些垂青於比爾·喬伊的機遇吧。因為他碰巧進入一所有遠見的大學,他可以通過分時操作系統編程而不是卡片;因為密歇根的系統剛好有個漏洞,他 可以任意使用電腦;學校願意花錢讓計算機中心24小時開著,他可以整夜泡在那裡;他能夠投入這麼多時間,重寫UNIX的機遇還剛好出現在他面前,簡直就是 量身定做。比爾·喬伊很聰明,他好學若饑。這很重要。但是在他成為專傢之前,有人提供瞭機會讓他學習成為專傢。
“在密歇根,我每天編程8到10個小時,”他說,“到瞭伯克利之後更是沒日沒夜。我傢裡也有個終端。我一直在計算機上待到凌晨兩三點,看老電影、編 寫程序。有時我會趴在鍵盤上睡著。”他假裝自己的頭落到鍵盤上,“你知道鍵盤最後會做何反應?它開始嘟嘟嘟地響。如是三次之後,你就知道自己該上床瞭。我 去伯克利時相對來說還不是個高手。第二年我開始精通編程,那時我寫的一些程序三十年後的今天還在被應用。”他停瞭下,開始在腦子裡計算——對比爾· 喬伊這樣的人這不用太久——1971年進密歇根大學,二年級時編程時間得到保證,加上暑假和接下來一年在伯克利的沒日沒夜,“可能,一共有,1萬個小 時?”他最後說,“基本如此。”