導讀:女神節來了,終於忍不住要聊一聊這個憋了很久的八卦,世界上第一位程序員,當然也是世界上第一位女程序員——Ada。
這位女神級的神人,全名是洛夫萊斯伯爵夫人奧古斯塔·埃達·金·諾爾(Augusta Ada King-Noel, Countess of Lovelace)。在成為伯爵夫人之前,她原生家庭的姓氏更有名一些——拜倫(Byron)。
01 另類的原生家庭
別懷疑,Ada就是19世紀初期英國偉大的浪漫主義詩人喬治·戈登·拜倫(George Gordon Byron)的親女兒。
怪不得如今很多程序員都能寫出詩意的代碼,原來程序員和詩人自古以來就是一家。
著有《恰爾德·哈羅爾德遊記》《唐璜》等佳作的拜倫勳爵,也算是英國文學史上響噹噹的大佬。你或許讀過拜倫的詩,但不知道你有沒有讀過這一句:
Ada,我屋簷下、我心中唯一的女兒。
拜倫一點沒誇張,Ada是拜倫跟他夫人安娜貝拉(Anne Isabella Noel Byron)唯一的孩子。說得更明白一點就是,Ada是拜倫唯一的婚生子女,拜倫的其他孩子都是私生。
Ada這個名字,也是拜倫對女兒暱稱。
Ada出生於1815年12月10日,射手座。她出生前,拜倫夫婦的關係已經緊張。Ada剛滿月不久,安娜貝拉被拜倫趕回了孃家,同時也帶走了Ada。
此後,拜倫已經跟女兒Ada沒有什麼實質上的關係,但距離產生了美,Ada一直想念著父親。
與拜倫分居後,安娜貝拉實際上把女兒交給了自己的母親,也就是Ada的姥姥來帶。安娜貝拉對Ada卻有一種另類的關愛——她怕Ada遺傳了拜倫的基因,在成長中變得像拜倫一樣“道德敗壞”,就派出一個閨蜜團去監視Ada。
Ada很討厭這些監視她的人,認為她們在母親面前說自己壞話,把她們稱為“冤魂”(Furies,原意是復仇女神)。
不過,安娜貝拉的這種另類關愛也為Ada成為世界上第一位程序員埋下了伏筆。安娜貝拉害怕Ada像拜倫那樣成為一個“瘋狂”的詩人,就創造各種機會讓Ada學習數學,培養邏輯和理性思維。
1824年,Ada只有8歲的時候,“瘋狂”的拜倫病逝於希臘獨立戰爭的戰場上。
很有可能的是,Ada直到父親去世,也不知道父親的樣子,父親的形象只存在於她的想象中。因為直到她20歲生日時,安娜貝拉才給她看一幅家庭畫像,那上面有她父親。02 多舛的童年:想飛的數學少女,癱瘓了
Ada的思維方式,似乎是綜合了父親的詩意和數學教育的理性。 她想飛,這很瘋狂;但她不是想想而已,她真的設計了一對翅膀,這很有數學家的風範。
那是在1828年2月,Ada 12歲,她研究鳥類生理解剖學,分析、計算翅膀和身體的正確比例。她找來各種材料做實驗:紙、油布、纜線、羽毛……
她甚至還有後續的步驟和計劃:她列舉出飛行需要的其他器材設備,比如羅盤;在那個蒸汽時代,她還要把蒸汽整合進她發明的“飛行藝術學”。
但在一年多以後,1829年6月,Ada卻因麻疹發作全身癱瘓,在床上休養了將近一年。直到1831年,她才能拄著柺杖走路。Ada從小就常常生病,8歲時就曾因為頭痛影響視力。
身體雖然被疾病禁錮,但Ada的大腦從未停止進步。她與她的家庭教師瑪麗·薩默維爾(Mary Fairfax Somerville)成為朋友。1833年,薩默維爾把Ada引薦給數學家、發明家查爾斯·巴貝奇(Charles Babbage),這位大佬將是本文下一段的主角。
此後,Ada也跟邁克爾·法拉第(Michael Faraday)、查爾斯·惠斯通(Charles Wheatstone)等英國著名科學家以及小說家查爾斯·狄更斯(Charles Dickens)熟識。1834年起,Ada成為英國王宮宴會中的常客以及萬人迷 (a popular belle of the season)。
03 “精靈小姐姐”、世界上第一位程序員、計算機時代的先知
上文提到的查爾斯·巴貝奇,很受Ada的尊重,他們在工作中合作了很多年。巴貝奇也很欣賞Ada,稱她為“精靈小姐姐”(Lady Fairy)。
成年後的Ada興趣廣泛,包括跟大腦如何思考相關的學科,比如顱相學和催眠術。1844年,在與巴貝奇合作之後,她跟朋友沃倫佐夫·格瑞格(Woronzow Greig)談到,她有一個想法,她想創建一個數學模型,讓這個模型說明大腦是如何產生思想和神經感覺的(“神經系統演算”)。
Ada對大腦的興趣,源於她懷疑母親安娜貝拉有一種潛意識裡的瘋狂。但這項研究未能真正實現。她跟巴貝奇的合作,最令人矚目的項目是圍繞巴貝奇發明的分析機的研究。
分析機是巴貝奇設計的一種機械式通用計算機。巴貝奇關於分析機的工作從1833年,也就是認識Ada的那一年就開始了。
分析機由蒸汽機驅動,使用打孔卡輸入,通過一臺打印機、一個彎曲的繪圖儀和一個鈴鐺輸出,也可以在紙上打孔以便日後讀取。分析機的“內存”大約可以存儲1000個40位的十進制數,它有一個算術邏輯單元可以進行四則運算、比較和求平方根操作。
從對分析機的這些描述來看,它跟我們現在使用的計算機已經非常相似。關於分析機,意大利數學家路易吉·梅納佈雷亞(Luigi Federico Menabrea)寫了一篇論文,1842年,在惠斯通的建議下,Ada承擔了這篇論文的翻譯工作。
在譯文後面,Ada增加了許多註記,按英文字母順序從A到G。在G中,她詳細說明了如何用分析機計算伯努利數。上文說了,我們可以認為分析機就是計算機,那麼Ada這個計算伯努利數的方法,也就是一個程序,而且這也是世界上第一個計算機程序。
然後,寫下這段程序的Ada,就成為世界上第一位程序員。
關於Ada在巴貝奇那裡的工作及貢獻,以研究巴貝奇而聞名的計算機歷史專家、巴貝奇分析機復原項目的領導者Doron Swade,總結了以下4點:
- 她是一個數學天才
- 她對分析機做出了有影響力的貢獻
- 她是第一位計算機程序員
- 她是計算機時代的先知
有人質疑這段程序是不是巴貝奇自己寫的,或者是由巴貝奇想出來的。對此,對此,我們可以看看當事人巴貝奇的說法。在他1864年出版的《經過哲學家人生》(Passages from the Life of a Philosopher)一書中,寫道:
雖然這些想法是由我們一起討論出來的,但是最後被寫進註記裡的想法確確實實是她自己的構想。我將許多代數運算的問題交給她處理,這些工作也與伯努利數的運算相關。在她所送回給我的文檔,更修正了我先前在程序裡的重大錯誤。
04 後來人的無限懷念
1835年,Ada與威廉·金(William King)結婚,此後威廉·金成為洛夫萊斯(1st Earl of Lovelace),Ada也就成了洛夫萊斯伯爵夫人,就是本文最開頭提到的Ada那一長串全名的一部分。
關於Ada的婚姻生活,可供八卦的資料實在不多。她跟洛夫萊斯伯爵有2個兒子1個女兒,前兩個孩子的名字分別是“拜倫”和“安娜貝拉”,這顯然是Ada的刻意安排,以紀念她的父母。
1852年11月27日,Ada為了治療宮頸癌,卻因此死於失血過多,年僅36歲。依她的遺言,Ada葬於父親拜倫的身旁。
1953年,Ada去世後101年,她的研究筆記被重新發布。在計算機科學技術改變世界的前夜,人們重新認識了這個世界上第一位計算機程序員。
Ada的形象也陸續出現在小說、動漫、電影及遊戲等大眾文化中。
1980年,美國國防部上線了一種新的計算機編程語言,並把它命名為Ada。Ada由Pascal及其他語言擴展而成,比較接近自然語言和數學表達式。
最後我們用Ada語言編寫的"Hello, World!"程序結束本文:
<code>with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Hello;/<code>
最後的最後,祝古今中外所有的程序媛小姐姐女神節快樂!
閱讀更多 華章科技 的文章