曆史上第一個計算機程序是誰寫的?比爾-蓋茨?喬布斯?圖靈?愛因斯坦?諸葛亮?
都不是。
寫出第一個計算機程序的人是這位:
說明一下。她這不是在參加化妝舞會,也不是個性出格打扮古怪。她穿的這身,是當時的標準服飾,因為她寫那個程序段子是1842年的事。
她的名字叫艾達-拉弗雷斯。如果這個名字您聽著不熟,她爸爸的名字您可能聽說過。她爸爸叫拜倫。就是那個大名鼎鼎的英國詩人拜倫。
不過艾達成為計算機編程先驅跟拜倫可以說沒啥關係。拜倫對艾達的唯一貢獻就是給予了她生命。對艾達的教育,拜倫沒有給過任何幫助。艾達才一個月大的時候,拜倫的太太安娜貝拉就帶著艾達離開了拜倫。分手的原因,一是因為拜倫跟以前一樣,每個女人追到手了就失去興趣變得冷漠。二是因為她受不了拜倫跟他同父異母姐姐的亂倫傳聞。
有意思的是,咱天朝的官方出版物裏,有些文章是把拜倫作為偉大的革命英雄來描寫的。這個可能是因為拜倫有強烈的叛逆傾向。而貴族出身的他,要叛逆,當然就是跟自己的陣營,也就是貴族陣營過不去。這個很讓咱的禦用曆史學家喜歡。他們根據這一點把拜倫的階級成分劃定為“代表勞動人民跟統治階級做鬥爭的英雄”,於是拜倫成為紅色天朝時期最早獲得禦用文人讚美的少數西方文人之一。而且根據我朝傳統,一個人如果定位為好人,就必須好得很完美,於是在禦用文人筆下,拜倫不僅寫詩一流,更有高尚的革命情操,連個人感情生活都是無懈可擊的。他太太跟他分手,那當然就是他太太自絕於革命英雄的惡劣行為。
不過,別的曆史學家有不同的看法。從關於拜倫個人生活的曆史文獻看,拜倫之所以這麽起勁的跟社會對著幹,其實跟革命或是馬克思沒啥關係。他的反社會性格,更可能跟他才高八鬥可是先天有殘疾(右腳畸形)有關。身體殘疾產生的“天何待我如此不公”的憤懣,坐落在他極度敏感的詩人心靈上,就很容易生長出叛逆性格。加上他祖上,從爺爺到父親,都是性生活淩亂加上欠了賭債就遁走他鄉逃避債主的角兒。看著這種榜樣長大,他多半就沒覺得社會道德規範有什麽需要尊重的。所以他從24歲開始,到他36歲病死他鄉,基本上每兩年他就要換一個女人。每次都是他頂著冷臉奮力追求,一旦追到之後就興趣轉移再尋找下一個“真愛”。
安娜貝拉自己經曆了拜倫這種浪漫詩人的狂亂,因此立下決心,決不能讓獨生女艾達沾染任何文人惡習。為了做到這一點,安娜貝拉認為應該讓艾達遠離文科學習理科。碰巧,安娜貝拉自己有很高的數學天賦,而她的這份基因似乎成功的傳給了艾達。因為艾達的數學老師對她的評價頗高。安娜貝拉給艾達請來的數學老師都是有國際知名度的數學界名人,其中包括奧古斯都-德-摩根(您如果是學電腦的,想必知道摩根定律。對。就是這個摩根)。摩根教導艾達一段時間之後,在給安娜貝拉的信裏說道:“艾達的數學才華足可成為自成一家的數學分析家,而且有可能成為一流水平的分析家。”
艾達跟電腦發生瓜葛是因為英國數學家巴比奇的分析機。
分析機實際上就是雛形階段的電腦。電腦本來叫做計算機。後來因為這東西能幹的事太多,遠遠不止是計算了,所以中國人就給它起了個形象的名字叫電腦(英語裏仍然是叫計算機)。巴比奇的分析機,還沒有今天的電腦這種打字繪圖上網炒股的功能。它老老實實就是用來算數字公式的,所以這是個不打折的“計算機”。
而且它不能叫做電子計算機。因為那時還沒有電子技術。這個分析機,按設計是要用蒸汽機提供動力。
艾達對這分析機產生了極大興趣。為了研究這個分析機,她多次造訪巴比奇,兩人成為好友。由於分析機在當時是尖端科技,所以有個意大利數學家叫米那比亞的專門寫了一篇文章來介紹這個分析機。這篇文章寫得很好,於是艾達決定反向引進,把這篇文章翻譯成英文,就是分析機的祖國的文字。艾達因為自己就對分析機極有興趣,所以翻譯的時候做了大量注解,結果她的注解內容比原文還多。
不過讓她成為電腦曆史佳話的不是文字多少,而是內容。因為她在注解裏寫了一段講述怎麽實際運用這個分析機來解題的做法。這個做法,後來被認為是第一個可以叫做電腦程序的東西。
電腦畢竟跟人腦不一樣。電腦隻能理解幾個簡單機械的指令。現在的電腦能做這麽多事,是因為它執行指令是以光速運行,所以一秒鍾能執行上千萬個指令。但首先它要知道要執行的是什麽指令。
這些指令就叫做電腦程序。
比如你如果想用電腦軟件畫一個邊長是 2 格的正方形,你就要指揮電腦做這幾個動作:向右走兩格(畫出上邊),向下走兩格(畫出右邊),向左走兩格(畫出下邊),向上走兩格(畫出左邊)。
這個就是一段電腦程序。
當時巴比奇的分析機隻是個書麵設計,根本沒有實物,因為這個設計太超前了,當時的技術水平做不出實物。正因為這樣,這個抽象設計才很難理解,所以米那比亞才需要專門寫文章來幫助大家理解。
也因為沒有實物,沒有真正運行過,所以誰都沒有試圖給這個分析機設計實際運行的步驟,也就是誰都沒給它寫過運行程序。那時候就沒有人知道什麽叫編程序。艾達也不知道。她其實就是在給這個文章做注解的時候,弄明白了機器的運行原理,於是就寫了一段具體使用方式(就是後來大家叫做程序的那段指令),本意就是用這個來幫助說明機器的運行原理。現在大家說艾達是第一個編寫計算機程序的人,實際上是一種事後的追認。艾達當時並沒有意識到自己做的這件事後來會被叫做編程,也沒有意識到150年之後,編程這行當養活了地球上一千多萬人,還讓上百萬印度人和中國人靠這門手藝移民到美國去忍受資本家的剝削。
因為這分析機太超前,所以艾達的這段程序當時沒有能實際運行。實際上艾達有生之年裏這分析機一直沒能造出來。巴比奇盡當時條件允許,造出了下麵的樣機,但這個機器沒能真正運行:
看著很笨拙。不過別忘了那時是1842年的設計。那時候很多國家還不知道什麽叫做“機器”。所以咱沒必要笑話這個機器。
順便說一下,艾達不僅是給這個分析機寫了個程序。在注解裏她還預言這種分析機以後功能會更完善,不僅能做數字計算,還有可能做更複雜的操作,比如能給一些指導(也就是我們現在說的編程)之後讓分析機自己作曲。
您別小看了這個預言。今天我們知道電腦能做的事比這多得多。但是在那個年代能預見到這一點,幾乎就像古埃及人發現用銅片和鋅片插進檸檬裏會產生讓舌頭發麻的電流之後,有人說以後說不定可以把這東西接在一根什麽寶物上,於是讓這寶物發光。
如果古埃及人說這種話,可以說是預言了電燈。而艾達的預言,跟咱這個虛構的電燈預言,跳躍程度可以說是一樣的大。
1852年艾達患了宮頸癌。癌症本來就沒有什麽治療辦法。偏偏那時候現代醫學還沒出現,歐洲人治病仍然在依賴傳統醫學技術,也就是放血療法。放血沒有救活艾達,倒可能讓她提早幾個月死亡。
艾達死的時候36歲,跟她爸爸拜倫死的時候年齡相同。
命運?
安娜貝拉畢生努力讓艾達憎恨拜倫,但先天的血緣關係還是戰勝了安娜貝拉的後天灌輸。雖然艾達從來沒有見過父親(一個月大就離開父親,8歲的時候拜倫去世),她臨死前幾年對父親的敬意卻與日俱增。彌留之際,艾達留下遺囑,要求葬在英國諾丁漢的聖瑪麗-南丁格爾教堂,跟她父親的墓地相鄰。
看著很簡陋是吧?這個是有原因的。本來拜倫的詩才是國家級甚至是世界級的。這樣的人物,在英國,死後足可安葬在威斯敏斯特大教堂。可是因為他那些醜聞,威斯敏斯特教堂以“成問題的道德生活”為由拒絕了拜倫。結果拜倫就被安葬在這個瑟縮的角落裏了。
但是艾達不介意。她隻希望死後能跟父親靠近一點。