她是世界第一臺個人計算機的創造者,84 歲生日快樂!
2021年 9 月 25 日是 Mary Allen Wilkes 的84 生日,她以LINC 項目聞名,被認為是世界上第一臺個人計算機的發明者。
Mary Allen Wilkes是LINC開發團隊的成員,實驗室儀器計算機(Laboratory Instrucment Computer, LINC)于20世紀60年代初在麻省理工學院誕生,從使用大型、離線、遠程、集中控制的計算機進行計算,轉變為小型、交互式、由個人用戶直接控制的計算機,也是今天個人計算機的雛形。
不過她并非天生注定是一個程序員,從十多歲起,她的夢想就是做一個訴訟律師。
20世紀50年代的馬里蘭州,Wilkes 的中學老師跟她說她應該去做一個程序員,但當時大部分美國人都沒聽說過計算機是什么東西,更沒見過,所以這一席話讓她有些不明就里。十幾年前,首批巨型計算機剛剛開始在大學和政府的實驗室里運轉。
1959年,當Wilkes 從韋爾斯利學院畢業后,導師們都勸她不要申請法學院,理由是,申請了也未必能考上,考上還不一定能畢業,畢業了也不一定能找到工作。
在當時,即使Wilkes 能找到工作,也不是去法庭上,更有可能是去到法律圖書館做圖書管理員,或者做法律秘書。
正猶豫時,她聽到「計算機就是通向未來的鑰匙」,于是他就去了MIT 應聘程序員,面試過程只有一句話,“你們需要程序員嗎”,就被錄用了。
盡管在今天看起來,沒有任何經驗的人是完全無法勝任程序員的工作的,但在當時,不光是Wilkes, 幾乎沒有任何人具備編程經驗,計算機學科甚至都還不存在。就算是斯坦福大學,也是直到1965年才開設計算機科學系。
那些需要程序員的機構,只不過用幾道測試題來評估申請人,主要是考查邏輯思維能力。她在大學主修哲學專業,研究過符號邏輯,能夠通過類似于編碼的方式,把and/or語句串在一起。
很快,Wilkes就成了編程高手。
她剛開始在 IBM 704 上工作,主要用深奧的「匯編語言」進行編寫。即使將程序放入 IBM 704 也是 一件費力的事,它沒有鍵盤或屏幕,Wilkes 必須在紙上寫一個程序,然后交給打字員,打字員將每個命令翻譯成打孔卡上的孔。她會攜帶一盒盒指令給操作員(operator),然后操作員將一疊這樣的卡片送入讀卡器。計算機執行程序并產生結果,然后在打印機上打印出來。
當Wilkes 的代碼沒有產生預期的結果, 她檢查bug的方式就只能靠想象,在腦海中推演一遍代碼,想象機器將如何執行它。然后根據反饋結果改寫程序。當時大多數計算機的容量非常有限; IBM 704只能在其內存中處理大約4,000個單詞的代碼。
一個優秀的程序員寫的程序簡潔而優雅,從不浪費一句話。
而女性天生就是敏感、挑剔而精確,毋庸置疑,在計算機科學史前,女性扮演著奠基人的角色,到1960年,美國超過四分之一的程序員是女性。在麻省理工學院林肯實驗室,政府歸類為「職業程序員」的大多數人都是女性。
1961年,威爾克斯被分配到一個著名的新項目,LINC。作為世界上第一臺交互式個人電腦,LINC 在辦公室或實驗室中安裝,它甚至有自己的鍵盤和屏幕,因此可以更快地進行編程,而無需使用笨拙的打孔卡或打印件。設計師們知道他們可以制作硬件,但是他們需要Wilkes 幫助編寫軟件,讓用戶實時控制計算機。
在之后的兩年半里,Wilkes 和團隊在流程圖上埋頭苦干,思考電路是如何工作的,如何讓人們與之交流。
當他們做出一個直線加速器工作原型,為一名生物學家解決了一個棘手的數據問題時,Wilkes 興奮得像個小孩,繞著機器轉圈。
1964年末,Wilkes 環球旅行回來,她被要求完成LINC 操作系統的編寫工作。但實驗室已搬遷到圣路易斯,她不想搬到那里。所以,LINC被運到她在巴爾的摩的父母家中。在樓梯腳附近的前廳大廳里,一個裝滿電路的冰箱大小的盒子里面掛著一盒高高的磁帶,這就像早期科幻電影的場景。
不久,世界各地的LINC用戶就用上了Wilkes 的代碼,醫生用它進行醫學分析,甚至創建了一個聊天機器人,讓患者了解他們的癥狀。
即使Wilkes 已經認同自己是一名程序員的身份,并取得了巨大成就,但她仍然渴望成為律師,甚至認為做律師才算是「為自己而活」。
計算機在智力活動上是更令人心動的,但在社會活動上卻是孤立的。1972年,她申請并進入哈佛大學法學院,畢業后,Wilkes 做了四十年的律師,心滿意足。
Wilkes 是一位優秀的女程序員,如今她已退休住在馬薩諸塞州,還會經常和年輕的學生們一起學習計算機科學,讓她感慨的是,與Wilkes 那個年代相比,在計算機領域取得重大成就的女性人數和認可度都大不如前。
1960年,她開始進入麻省理工學院工作,女性在計算機和數學專業中的比例是27%。1990年達到35%,達到歷史最高峰。在這此后,占比不斷下降下降,到2013年,女性比例降至26%。
但你可能不知道的是,過去計算機科學的快速發展,女性是主導力量。
大約200年前,世界上第一個能夠稱之為程序員的人就是女人,Lady Ada Lovelace。作為1833年英格蘭的一位年輕數學家,她遇到了發明家Charles Babbage,他正在努力設計他所謂的分析引擎。引擎將由金屬齒輪制成,能夠執行if / then命令并將信息存儲在內存中。
但遺憾的是,Babbage一直也沒有實現他的引擎夢。所以,直到Lovelace 36歲死于癌癥時,也沒能讓她的代碼跑起來。
在上世紀40年代,由軍方資助,美國開發出第一臺可編程數字計算機,電子數字積分和計算機Eniac。那是一個巨大的、重達30多噸,由17,468個真空管組成的龐然大物。如果誰能讓這臺怪獸運行起來,必然是十分風光霸氣了。而相比之下,編程似乎是可有可無的,程序員更像是這個怪獸的秘書。
在Eniac剛推出的幾年里,許多企業都從IBM等公司那里購買了巨大的電子制表機,這對于計算工資非常有用。這些機器的打卡機操作員的工作,通常由女性來擔任。當需要聘請技術人員為Eniac編寫代碼時,組成了由女性們構成的團隊:Jean Jennings,Betty Snyder,Marlyn Wescoff,Frances Bilas和Ruth Lichterman。
男人們負責思考讓Eniac做什么,而編程、執行代碼的活則由女人來擔當。
Eniac的女性團隊是第一批發現軟件無法正常工作的程序員,程序員的主要工作就包括找到并修復錯誤(Debug)。她們創造了有關軟件的核心概念。Snyder意識到調試一個不能正確運行的程序,如果有一個斷點breakpoint就會有很大幫助,可以讓程序在執行過程中暫停,然后觀察運行的中間結果。
直到現代,斷點也是程序調試的重要手段。
Grace Hopper 被公認為是第一個創建編譯器的程序員,它能讓用戶創建更接近常規書面文字的編程語言,可以編寫類似英語句子的代碼,然后翻譯成由0和1組成的計算機語言。
可是,女性是什么開始被迫退出計算機科學的舞臺呢?
當史蒂夫·喬布斯和比爾·蓋茨開始開始出現在公眾視線中,計算機領域男性主導的時代逼近。
在這十年之前的研究顯示,對編程職業感興趣的男女人數幾乎一半一半。而女性選擇計算機科學課程的人數在70年代末穩步上升,十年時間里幾乎翻了一倍多。到1983學年,所有計算機和信息科學專業的畢業生中有37.1%是女性。
但情況在1984年發生了逆轉。從這一年開始女性計算機專業畢業生比例下降了;到2010年左右,幾乎腰砍。計算機和信息科學專業的畢業生中,只有17.6%是女性。
這種急速下降的原因之一,是孩子們學會編程的方式和時間發生了變化。70年代末至80年代初,個人電腦的出現,重塑了計算機科學學位的學生群體。在那之前,幾乎每一個上大學的學生都從未接觸過電腦,甚至在教室里也沒有接觸過電腦。計算機是稀有而昂貴的設備,大部分只能在研究實驗室或公司環境中使用。換言之,幾乎所有的學生都處于平等的基礎上,而且對編程還很陌生。
但是在這之后,第一代個人計算機Commodore 64和TRS-80開始進入到個人家庭,青少年當中很快流行開來,他們慢慢接觸到編程的相關知識。到了80年代中期,一些大學新生在他們開始第一堂電腦課時早已對計算機了如指掌了,他們對于二進制科學將可能帶來的改變已經做好充分的心理準備。正如兩位學者在調查女性入學率如此低的原因時發現的那樣,事實證明,這些學生大多是男性。
當計算機科學發展至90年代中期,編程文化大量普及。大多數新生都是男性,女性的數量從未恢復到70年代末和80年代初的水平,而那些少數出現的女性往往是孤立的。在一個有20個學生的房間里,可能有5個甚至更少的學生是女性。
現如今,女性在腦力勞動更多的計算機科研行業可能還更多一些,但在勞動密集型的公司程序員,女性的身影也越來越少。
不知道20年后,當我們環顧四周,在計算機科學領域,會看到更多女性的身影嗎?