如今的互聯網行業,可謂是男性程序員的天下,可是百余年前,卻是幾位“程序媛”在攪動著互聯網風云。
世界上首位“程序媛”
看多了現在大大咧咧、不修邊幅的程序員,你一定想不到世界歷史上首位程序員竟然是一位美嬌娥——英國貴族夫人艾達·洛夫萊斯。
艾達·洛夫萊斯是英國著名詩人拜倫的女兒,可惜,拜倫有些重男輕女,他對艾達的出生感到非常失望,艾達剛剛滿月,父母就分居了,母親帶著小艾達回了娘家。至此,艾達的至親唯有母親一人,直到20歲生日,艾達才從畫像中第一次看清父親的容貌。也許為了證明什么,艾達的母親對她要求很嚴格,堅持讓她從小開始學習邏輯、科學和數學,女子學習科學知識,這在當時是非常少見的。
艾達沒有讓母親失望,她從小就展現出了對科學和科技知識的驚人天賦。1828年,為了實現飛翔的夢想,不滿13歲的艾達決定自己造一對翅膀。這個想法初聽起來有些瘋狂,艾達卻有條不紊、深思熟慮地行動起來:她考慮了用各種材料制作翅膀的優劣性,選擇最適宜的材料;她研究了鳥類的解剖結構,以確定翅膀和身體之間的正確比例,從而保證制造出可以支撐她“龐大”身軀的翅膀;她還考慮了飛行的動力問題,比如如何將蒸汽機安裝到她的翅膀上。
不過,艾達最終沒能執行她的飛行計劃,因為疾病,她的腿腳行動不便,家人當然不允許她進行這種高危活動。好在艾達在科學和數學上的天賦沒有被浪費,1833年,在好友的引薦下,艾達與數學家、發明家查爾斯·巴貝奇結識,二人十分投緣,很快成為好友,展開了一段長期亦師亦友的工作關系。在與巴貝奇相識后,艾達很快就迷上了巴貝奇正在研究的分析機項目。分析機相當于現代計算機的雛形,可在當時,人們只用分析機來進行運算,艾達改變了這一切——她預見到分析機廣泛應用的未來,比如可以用來制圖和科研。
1842~1843年間,艾達翻譯了一篇意大利軍事工程師費德里科·路易吉闡述分析機的文章,并加上了詳盡的筆記。在筆記中,艾達介紹了如何為巴貝奇的分析機創建代碼,用來處理字母、符號和數字,創建了循環和子程序的概念。她的想法是,機器可以將符號與規則相匹配,數字可能不僅僅意味著數量,這標志著從計算到計算機的轉變——即將普通的數學符號轉變成計算機語言的規則,這些筆記也因此被視為“第一個計算機程序”。
1852年11月27日,年僅36歲的艾達死于宮頸癌。艾達逝世后近百年,人們才正式進入了為計算機編寫程序、讓其實現更多功能的時代。
為世界“孕育”程序員的女人
為計算機編寫程序之所以滯后了這么多年,其中一個原因是計算機語言實在難以被普通人理解。想象一下,一串數學公式、一個數學圖形該如何轉化成電子電路的“開”和“關”,讓這些電路能按人們的指令運行,執行相應的功能呢?直到1951年,這種情況被另一位女科學家改變——她為計算機量身打造了一臺“翻譯器”。
1906年,格蕾絲·霍珀出生在美國紐約市的一個普通家庭。格蕾斯從小就展露出極為聰明的天賦,對數學、工程技術非常好奇。七歲的時候,她為了弄清楚鬧鐘是如何工作的,一連拆了家里的七個鬧鐘。格蕾絲從小成績優異,1928年畢業于著名的美國瓦薩學院,獲得數學和物理學士學位。此后,格蕾絲又在耶魯大學繼續攻讀數學,并先后獲得碩士和博士學位,畢業后她回到瓦薩學院教授數學。1941年,第二次世界大戰爆發,格蕾絲毅然加入到美國海軍中,因為她的才能,格蕾絲被任命為著名計算機專家霍德·艾肯的助手,參與世界上第一臺計算機Mark I的研制。
當時,計算機用的是普通大眾不可閱讀的機器編碼語言:在一條長長的條帶上,分布著間隔不同的一排排孔洞,沒有經過專門學習的人,根本無從了解這些孔洞代表什么意思。隨著計算需求的擴大,人們對計算機的需求大增,但是“機器語言”成了大多數人不可逾越的門檻,為此,格蕾絲萌發了簡化機器語言的想法:制造一個能雙向翻譯的“翻譯器”,它既能將人們的語言轉化為機器語言,讓編程變得簡單,也能讓計算機“說人話”。
1949年,格蕾絲成為了一家制造電子計算機ENIAC的公司的高級數學家,她參與一臺可以自行編程的計算機的研發工作。為了制造出理想的“翻譯器”,格蕾絲自行著手研究,并四處演講,尋求經費與支持。1952年,格蕾絲開發出了第一套編譯器A-0系統,它可以將英語符號轉換成計算機能夠識別的機器指令。4年后,格蕾絲又開發出了第一個使用類似英文的語句來表達機器指令的編程語言Flow-Matic,為她未來編寫更高級的計算機語言奠定了基礎。
1959年5月,在美國國防部的支持下,格蕾絲領導著一個工作委員會,成功地研制出第一個商用編程語言COBOL。COBOL語言最重要的特征是語法與英文很接近,可以讓不懂電腦的人也能看懂程序;編譯器軟件只需做少許修改,就能運行于任何類型的電腦。從此,程序員不再需要精通數學才能編寫程序,越來越多普通人成為了程序員。
讓計算機躺在手心
即使程序員越來越多,直到20世紀70年代末,計算機仍然不是普通人能夠接觸到的,畢竟第一臺商用計算機ENIAC體積龐大到能占滿一間屋子,更別提天文數字般的售價了。在當時,這個難題直接影響了英國廣播公司(BBC)的計算機科普節目——工作人員沒辦法在節目里演示計算機,沒辦法告訴人們計算機有多好用。
為了解決這個問題,BBC決定向計算機公司訂購一批微型計算機,經過招標,一家剛成立兩年的計算機公司“Acorn”拿到了這個大訂單。為了制造這批廉價且性能優良的微型計算機,Acorn決定自主研發一種新型CPU,這個任務交到了公司資深的研發專家索菲·威爾遜手中。
索菲·威爾遜于1957年出生在英國的一個教師家庭,索菲的父母親有強大的動手能力:家里的東西都是他們自己動手制作的,父親負責制造汽車、船以及家里的大部分家具,媽媽則縫制了所有衣物、鞋帽等穿戴用品。得益于這種優良傳統,索菲也很會制造各類器械:如果想要一臺高保真音響或者一個數字鐘表,索菲想到的不是購買成品,而是購買各種零件,自己造出來。在英國劍橋大學攻讀計算機專業期間,索菲為一家公司研制了一款奶牛自動喂食器,在儀器內置的微處理器的幫助下,喂食器能計算奶牛每天的食量并調節草料數量。
索菲的這一才能被Acorn創始人赫爾曼·豪瑟看中,她剛從劍橋大學畢業就加入了Acorn并很快被委以重任:為BBC制造微型計算機。該如何讓計算機變小呢?索菲選擇的方法是簡化指令集。算術和邏輯是CPU工作的重要組成部分,人類需要一種方法來告訴CPU該做什么,這種方法被稱作指令集。通過指令集列表,CPU可以將數據移進或移出內存、進行數學計算、比較數字,并跳轉到程序的不同部分。索菲的想法是大幅減少指令的數量,這將簡化CPU的內部設計。
通過改變CPU的工作流程,索菲最終設計出了一種新CPU,它被命名為:ARM。1985年4月26日,第一個版本的ARM芯片誕生了,它在BBC的電腦上成功輸出了第一條指令:“你好,世界,我是ARM。”這批BBC電腦大獲成功,不僅向眾多英國人普及了計算機的應用,甚至走進了許多英國家庭。當然,對現在的我們來說,ARM芯片更是鼎鼎大名:它出現在90%以上的掌上電腦和手機中,幫助這些設備變得越來越迷你、越來越廉價,讓千千萬萬的人都用上了這些高科技產品。
計算機行業并不是“男孩俱樂部”,某種程度上說,女性“孕育”了計算機和編程業,這點值得被歷史所銘記。
(劉誼人摘自維普資訊網)