首頁 > 旅遊

世界上第一位程式設計師,竟然是女性

由 非同步社群 發表于 旅遊2021-10-23

簡介艾達也因此被認為是世界上的第一位程式設計師

世界上第一位程式設計師是誰

你可知道,世界上第一位程式設計師,竟然是一位女性?

世界上第一位程式設計師,竟然是女性

世界上第一位程式設計師 艾達·洛夫萊斯

在1842年到1843年間,艾達·洛夫萊斯花費了9個月的時間翻譯了義大利數學家費德里科·路易吉的一篇闡述分析機的論文。

因為是採用作註釋的方式,所以艾達的譯文長度是路易吉原論文的三倍。在這份譯文裡,包含了

生成伯努利數的演算法

。而當時的她並不知道,這段演算法將被後人認為是

世界上第一個正式發表的計算機程式

。艾達也因此被認為是世界上的第一位程式設計師。

在詹姆斯·格雷克所著的《資訊簡史》裡,他是這樣描述艾達的:“事實上,她是在為這臺機器程式設計,並且是在頭腦中程式設計,因為機器還不存在。

而這種她面對的問題,一個世紀以後的程式設計師們還經常遇到

。”

悲慘童年,不被父親承認的名門之後

環顧艾達·洛夫萊斯的一生,她雖是貴為伯爵夫人,卻遭遇了不幸與悲劇。她嗜賭、嗜酒,並且還是一個癮君子,在36歲就因為癌症而去世。但從另一方面來說,她又是幸運且快樂的。因為她是貴族和名門之後,能夠無所顧慮地追求自己所喜愛的事情。

1815年12月,艾達·洛夫萊斯出生在英格蘭倫敦。而艾達的父親,就是大名鼎鼎的詩人拜倫。可惜的是,拜倫卻只想著要一個“光宗耀祖”的好小子。所以當妻子生下艾達時,拜倫非常失望。

世界上第一位程式設計師,竟然是女性

四歲的艾達

不久後,拜倫的妻子安娜貝拉就帶著只有一個多月的艾達回到了孃家。依當年的英國法律,離婚後子女監護權屬於父方。但拜倫不想要監護權,只得委託姐姐在艾達有需要時通知他。

1815年4月,拜倫在不情願的情況下籤下了分居協議,幾天之後便離開了英國。拜倫這樣的行為引發了妻子的不滿,也導致了兩人之間的感情徹底名存實亡。在撕破臉皮分居之後,安娜貝拉幾乎餘生都在指控拜倫不負責任的行為。

至此,艾達和父親再無聯絡,她的至親也僅剩母親了。母親一生都生活在拜倫的陰影之下,拜倫逝世時,艾達年僅8歲,但在艾達20歲以前,母親都未曾給她看過父親的畫像。

艾達小時候和母親關係不好,母親也時常把她丟給溺愛孫女的外婆照顧。為顧及當時深受封建思想影響的社會人士的看法,安娜貝拉只得在表面上扮演一位慈母的角色。

在艾達的少女時期,安娜貝拉拜託幾個好友當眼線,就近監控,避免艾達“變壞”。艾達背地裡叫她們“妖婆”,抱怨她們亂說她壞話。

艾達從小體弱多病。在她八歲時就因為頭痛影響到了視力。1829年6月,艾達因為麻疹而引發了全身癱瘓。在病榻上休養一年之後仍行動不便。直到1831年,她才可以藉助柺杖的支撐勉強走路。即使在這樣的身體條件下,艾達的數理能力仍保持著持續進步。

在12歲的時候,這位未來巴貝奇口中的“妖精小姐”,開始想要在藍天之上翱翔。於是1828年2月,艾達跨了出第一步:製作翅膀。她計算、分析不同的材質、大小,嘗試各種材料:紙、油布、纜線、羽毛等。她同時也去研究鳥類生理解剖學,計算雙翼和身體的正確比例。最後

艾達將她的研究發現和圖表整理成《飛行學》一書

成年時期,優越和愛情的不幸並存

艾達母親始終痛恨拜倫,因此致力栽培艾達的數學邏輯興趣,以免艾達陷入她眼中拜倫的瘋狂下場。艾達也因為數學的影響對當時還沒有的所謂程式設計概念開始感興趣。

世界上第一位程式設計師,竟然是女性

十七歲的艾達

1833年初,艾達和一個家教墜入情網,在戀情被曝光之後他們選擇了私奔。男方的親戚認出艾達後,通報了艾達的母親。為免被社會閒話,安娜貝拉和朋友聯手遮蔽了所有訊息。

艾達後來和她的家教瑪麗·費爾法克斯·薩默維爾成為了好朋友。在1833年,薩默維爾把艾達引薦給查爾斯·巴貝奇。與此同時,冰雪聰明的艾達也和許多社會名流熟識。經過這些名人們的相互引薦,艾達在1834年已經成為了王宮的常客,還經常參加各種社交聚會。

世界上第一位程式設計師,竟然是女性

洛夫萊斯伯爵夫人的水彩肖像, 約1840年

多情的艾達終究逃不過舊時社會對於女性的婚姻束縛。

1835年,艾達嫁給了威廉·金(後來晉封為第一代洛夫萊斯伯爵)。他們總共生下三個孩子。在婚後,艾達的頭銜就變成了奧古斯塔·艾達·洛夫萊斯伯爵夫人閣下。

偉大成就,實現了計算機科學的本質性飛躍

艾達在筆記中以她的“詩意科學”來研究分析機,還有去探索個人和社會,如何透過科技協同工作。這些事件的發生也許在如今世人的眼裡算不了什麼,然而放到一百多年以前看,艾達是一位何其厲害與偉大的數學家!

世界上第一位程式設計師,竟然是女性

艾達和巴貝奇(漫畫)

不過在艾達的譯作出版之後,有傳記作者也因為部分的程式是由巴貝奇所撰寫,而質疑艾達在計算機程式上的原創性。巴貝奇在他所著的《經過哲學家人生》裡這樣說道:

「我認為她為米那比亞的備忘錄增加許多註記,並加入了一些想法。雖然這些想法是由我們一起討論出來的,但是最後被寫進註記裡的想法確確實實是她自己的構想。我將許多代數運算的問題交給她處理,這些工作也與伯努利數的運算相關。在她所送回給我的文件,更修正了我先前在程式裡的重大錯誤。」

1852年11月27日,這天是隆隆寒意覆蓋整個英格蘭的“最冷一天”。或許是上天需要給倫敦渲染一些更為冰涼的氣氛,艾達也在這一天溘然長逝,年僅36歲。她留下了兩個兒子與一個女兒——安妮·布蘭特女爵。

依照艾達的遺言,她被葬於諾丁罕哈克諾的哈克諾聖瑪麗亞·抹大拉教堂,長眠在父親拜倫的身旁。也許,年輕卻飽經世事滄桑的艾達,在生命裡的最後一刻,終究還是選擇原諒了父親。

艾達的研究實現了計算機科學的本質性飛躍,

1953年,在艾達去世後的一百年之時,她之前翻譯《分析機概論》所留下的筆記被重新公佈,再一次震驚了世人。人們也因此認為,艾達對現代計算機與軟體工程造成了重大影響

。一些計算機科學家重新發現了她做的註釋,並重新發表,因為這些註釋在計算機開發的早期就預測到了所有這些事情。

世界上第一位程式設計師,竟然是女性

google doodles紀念Ada誕辰197週年

從現在的觀點來看,艾達首先為了計算製作了“演算法”,然後製作了“程式設計流程圖”,這個珍貴的計劃被認為是“第一件計算機程式”。

艾達是計算機先驅,是計算機時代的開拓者,也是世界的改變者、造福者。

二十世紀七十年代,美國國防部計劃將美軍系統程式中的上百種不同的程式語言整合,並提高除錯能力和效率,希望它能成為軍方數千種電腦的標準。1981年,這種語言被正式發行並且命名為ADA(艾達)語言,以紀念這位“世界上第一位軟體工程師”。

世界上第一位程式設計師,竟然是女性

C Primer Plus(第6版)中文版

作者: [美] Stephen Prata(史蒂芬 普拉達)

譯者: 姜佑

C Primer Plus 第6版 中文版(非同步圖書出品)

作者:[美]史蒂芬·普拉達(Stephen,Prata)

京東

內容簡介:

本書在上一版本的基礎上進行了全面更新,全面講述了C語言程式設計的相關概念和知識,並且涵蓋了C程式語言最近的變動發展、以及C11標準。本書適合希望系統學習C語言的讀者,也適用於精通其他程式語言並希望進一步掌握和鞏固C程式設計技術的程式設計師。

世界上第一位程式設計師,竟然是女性

C++ Primer Plus(第6版)中文版

作者: [美] Stephen Prata(史蒂芬 普拉達)

譯者: 張海龍 ,袁國忠

C++ Primer Plus 第6版 中文版(非同步圖書出品)

作者:[美]史蒂芬·普拉達(Stephen,Prata)

京東

內容簡介:

C++是在 C 語言基礎上開發的一種集面向物件程式設計、泛型程式設計和過程化程式設計於一體的程式語言,是C語言的超集。本書是根據2003年的ISO/ANSI C++標準編寫的,透過大量短小精悍的程式詳細而全面地闡述了 C++的基本概念和技術,並專闢一章介紹了C++11新增的功能。

《C++ Primer Plus(第6版)中文版》分18章,分別介紹了C++程式的執行方式、基本資料型別、複合資料型別、迴圈和關係表示式、分支語句和邏輯運算子、函式過載和函式模板、記憶體模型和名稱空間、類的設計和使用、多型、虛擬函式、動態記憶體分配、繼承、程式碼重用、友元、異常處理技術、string類和標準模板庫、輸入/輸出、C++11新增功能等內容。

《C++ Primer Plus(第6版)中文版》針對C++初學者,從C語言基礎知識開始介紹,然後在此基礎上詳細闡述C++新增的特性,因此不要求讀者有C語言方面的背景知識。《C++ Primer Plus(第6版)中文版》可作為高等院校教授C++課程的教材,也可供初學者自學C++時使用。

世界上第一位程式設計師,竟然是女性

Python程式設計快速上手:讓繁瑣工作自動化

作者: [美] Al Sweigart(斯維加特)

譯者: 王海鵬

Python程式設計快速上手 讓繁瑣工作自動化(非同步圖書出品)

作者:[美]Al Sweigart(斯維加特)

京東

內容簡介:

如今,人們面臨的大多數任務都可以透過編寫計算機軟體來完成。Python是一種解釋型、面向物件、動態資料型別的高階程式設計語言。透過Python程式設計,我們能夠解決現實生活中的很多工。

本書是一本面向實踐的Python程式設計實用指南。本書的目的,不僅是介紹Python語言的基礎知識,而且還透過專案實踐教會讀者如何應用這些知識和技能。本書的首部分介紹了基本Python程式設計概念,第二部分介紹了一些不同的任務,透過編寫Python程式,可以讓計算機自動完成它們。第二部分的每一章都有一些專案程式,供讀者學習。每章的末尾還提供了一些習題和深入的實踐專案,幫助讀者鞏固所學的知識。附錄部分提供了所有習題的解答。

本書適合任何想要透過Python學習程式設計的讀者,尤其適合缺乏程式設計基礎的初學者。透過閱讀本書,讀者將能利用強大的程式語言和工具,並且會體會到Python程式設計的快樂。

Tags:艾達C++程式設計拜倫Python