世界上第一位程序員,竟然是詩人拜倫的女兒?

導讀:女神節來了,終於忍不住要聊一聊這個憋了很久的八卦,世界上第一位程序員,當然也是世界上第一位女程序員——Ada。

這位女神級的神人,全名是洛夫萊斯伯爵夫人奧古斯塔·埃達·金·諾爾(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!"程序結束本文:

<code>with Ada.Text_IO; 

procedure Hello is
begin
    Ada.Text_IO.Put_Line("Hello, world!");
end Hello;/<code>

最後的最後,祝古今中外所有的程序媛小姐姐女神節快樂


分享到:


相關文章: