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