世界上第一位程式設計師,竟然是詩人拜倫的女兒?
- 2020 年 3 月 10 日
- 筆記
導讀:女神節來了,數據叔終於忍不住要聊一聊這個憋了很久的八卦,世界上第一位程式設計師,當然也是世界上第一位女程式設計師——Ada。
作者:數據叔
來源:大數據DT(ID:hzdashuju)
這位女神級的神人,全名是洛夫萊斯伯爵夫人奧古斯塔·埃達·金·諾爾(Augusta Ada King-Noel, Countess of Lovelace)。在成為伯爵夫人之前,她原生家庭的姓氏更有名一些——拜倫(Byron)。

▲Ada的畫像,大約完成於1840年,這也是當今網路中Ada最常見的形象,作者:Alfred Edward Chalon
01 另類的原生家庭
別懷疑,Ada就是19世紀初期英國偉大的浪漫主義詩人喬治·戈登·拜倫(George Gordon Byron)的親女兒。
怪不得如今很多程式設計師都能寫出詩意的程式碼,原來程式設計師和詩人自古以來就是一家。
著有《恰爾德·哈羅爾德遊記》《唐璜》等佳作的拜倫勛爵,也算是英國文學史上響噹噹的大佬。你或許讀過拜倫的詩,但不知道你有沒有讀過這一句:
Ada,我屋檐下、我心中唯一的女兒。
拜倫一點沒誇張,Ada是拜倫跟他夫人安娜貝拉(Anne Isabella Noel Byron)唯一的孩子。說得更明白一點就是,Ada是拜倫唯一的婚生子女,拜倫的其他孩子都是私生。
Ada這個名字,也是拜倫對女兒昵稱。

▲4歲的Ada
Ada出生於1815年12月10日,射手座。她出生前,拜倫夫婦的關係已經緊張。Ada剛滿月不久,安娜貝拉被拜倫趕回了娘家,同時也帶走了Ada。
此後,拜倫已經跟女兒Ada沒有什麼實質上的關係,但距離產生了美,Ada一直想念著父親。
與拜倫分居後,安娜貝拉實際上把女兒交給了自己的母親,也就是Ada的姥姥來帶。安娜貝拉對Ada卻有一種另類的關愛——她怕Ada遺傳了拜倫的基因,在成長中變得像拜倫一樣「道德敗壞」,就派出一個閨蜜團去監視Ada。
Ada很討厭這些監視她的人,認為她們在母親面前說自己壞話,把她們稱為「冤魂」(Furies,原意是復仇女神)。
不過,安娜貝拉的這種另類關愛也為Ada成為世界上第一位程式設計師埋下了伏筆。安娜貝拉害怕Ada像拜倫那樣成為一個「瘋狂」的詩人,就創造各種機會讓Ada學習數學,培養邏輯和理性思維。
1824年,Ada只有8歲的時候,「瘋狂」的拜倫病逝於希臘獨立戰爭的戰場上。很有可能的是,Ada直到父親去世,也不知道父親的樣子,父親的形象只存在於她的想像中。因為直到她20歲生日時,安娜貝拉才給她看一幅家庭畫像,那上面有她父親。

▲7歲的Ada,作者:Alfred d'Orsay
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)。

▲1835年,17歲的萬人迷Ada
03 「精靈小姐姐」、世界上第一位程式設計師、電腦時代的先知
上文提到的查爾斯·巴貝奇,很受Ada的尊重,他們在工作中合作了很多年。巴貝奇也很欣賞Ada,稱她為「精靈小姐姐」(Lady Fairy)。

▲1836年,21歲的Ada畫像,作者:Margaret Sarah Carpenter
成年後的Ada興趣廣泛,包括跟大腦如何思考相關的學科,比如顱相學和催眠術。1844年,在與巴貝奇合作之後,她跟朋友沃倫佐夫·格瑞格(Woronzow Greig)談到,她有一個想法,她想創建一個數學模型,讓這個模型說明大腦是如何產生思想和神經感覺的(「神經系統演算」)。
Ada對大腦的興趣,源於她懷疑母親安娜貝拉有一種潛意識裡的瘋狂。但這項研究未能真正實現。她跟巴貝奇的合作,最令人矚目的項目是圍繞巴貝奇發明的分析機的研究。

▲分析機的複製品,復原項目由Doron Swade領導,圖片作者:Carsten Ullrich
分析機是巴貝奇設計的一種機械式通用電腦。巴貝奇關於分析機的工作從1833年,也就是認識Ada的那一年就開始了。
分析機由蒸汽機驅動,使用打孔卡輸入,通過一台印表機、一個彎曲的繪圖儀和一個鈴鐺輸出,也可以在紙上打孔以便日後讀取。分析機的「記憶體」大約可以存儲1000個40位的十進位數,它有一個算術邏輯單元可以進行四則運算、比較和求平方根操作。
從對分析機的這些描述來看,它跟我們現在使用的電腦已經非常相似。關於分析機,義大利數學家路易吉·梅納布雷亞(Luigi Federico Menabrea)寫了一篇論文,1842年,在惠斯通的建議下,Ada承擔了這篇論文的翻譯工作。
在譯文後面,Ada增加了許多註記,按英文字母順序從A到G。在G中,她詳細說明了如何用分析機計算伯努利數。上文說了,我們可以認為分析機就是電腦,那麼Ada這個計算伯努利數的方法,也就是一個程式,而且這也是世界上第一個電腦程式。
然後,寫下這段程式的Ada,就成為世界上第一位程式設計師。

▲Ada創作的伯努利數計算圖,這就是世界上第一個電腦程式/演算法
關於Ada在巴貝奇那裡的工作及貢獻,以研究巴貝奇而聞名的電腦歷史專家、巴貝奇分析機復原項目的領導者Doron Swade,總結了以下4點:
- 她是一個數學天才
- 她對分析機做出了有影響力的貢獻
- 她是第一位電腦程式設計師
- 她是電腦時代的先知
有人質疑這段程式是不是巴貝奇自己寫的,或者是由巴貝奇想出來的。對此,對此,我們可以看看當事人巴貝奇的說法。在他1864年出版的《經過哲學家人生》(Passages from the Life of a Philosopher)一書中,寫道:
雖然這些想法是由我們一起討論出來的,但是最後被寫進註記里的想法確確實實是她自己的構想。我將許多代數運算的問題交給她處理,這些工作也與伯努利數的運算相關。在她所送回給我的文檔,更修正了我先前在程式里的重大錯誤。

▲約1840年時的Ada,作者不詳
04 後來人的無限懷念
1835年,Ada與威廉·金(William King)結婚,此後威廉·金成為洛夫萊斯(1st Earl of Lovelace),Ada也就成了洛夫萊斯伯爵夫人,就是本文最開頭提到的Ada那一長串全名的一部分。
關於Ada的婚姻生活,可供八卦的資料實在不多。她跟洛夫萊斯伯爵有2個兒子1個女兒,前兩個孩子的名字分別是「拜倫」和「安娜貝拉」,這顯然是Ada的刻意安排,以紀念她的父母。
1852年11月27日,Ada為了治療宮頸癌,卻因此死於失血過多,年僅36歲。依她的遺言,Ada葬於父親拜倫的身旁。

▲1852年,去世前不久彈鋼琴的Ada,作者:Henry Phillips
1953年,Ada去世後101年,她的研究筆記被重新發布。在電腦科學技術改變世界的前夜,人們重新認識了這個世界上第一位電腦程式設計師。
Ada的形象也陸續出現在小說、動漫、電影及遊戲等大眾文化中。

▲英國倫敦紀念Ada的藍色牌匾,作者:Egghead06
1980年,美國國防部上線了一種新的電腦程式語言,並把它命名為Ada。Ada由Pascal及其他語言擴展而成,比較接近自然語言和數學表達式。
最後我們用Ada語言編寫的"Hello, World!"程式結束本文:
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line("Hello, world!"); end Hello;
最後的最後,祝古今中外所有的程式媛小姐姐女神節快樂,小禮物走起來?

參考資料
[1]Ada Lovelace – Wikipedia
https://en.wikipedia.org/wiki/Ada_Lovelace
[2]Charles Babbage – Wikipedia
https://en.wikipedia.org/wiki/Charles_Babbage
[3]Analytical Engine – Wikipedia
https://en.wikipedia.org/wiki/Analytical_Engine
[4]阿達·洛芙萊斯 – 百度百科
https://baike.baidu.com/item/阿達·洛芙萊斯/
[5]Ada語言的維基百科
https://zh.wikipedia.org/wiki/Ada

有話要說?
Q: 你還知道哪些很傳奇的程式媛?
歡迎留言與大家分享