查爾斯.巴貝奇(Charles Babbage),1792 至 1871 年。
1843 年,一位英國數學家提出了分析機原理,這個構思將在一百零三年後由後人付諸實踐,並有了一個為大家熟知的名字——計算機(今日俗稱電腦)。很遺憾,查理斯.巴貝奇終其一生也沒能實現造出分析機的願望,但他依舊是當之無愧的計算機先驅。
直到今天,許多計算機書籍扉頁裡仍然刊載著他的照片,以表紀念。
巴貝奇發明小型差分計算機
一七九二年,巴貝奇出生於倫敦一個富有的銀行家家庭,十八歲進入著名的劍橋大學三一學院,成為牛頓的校友。後來他擔任了牛頓擔任過的「盧卡斯數學教授」職務。在進入大學之前,他就展現出極高的數學天分。
進入大學後,巴貝奇發現,當時英國人普遍接受的牛頓建立在運動基礎之上的微積分,不如萊布尼茨基於符號處理的微積分那樣便於理解和傳播。為了推廣已被歐洲大陸普遍接受的萊布尼茨的微積分,他和其他人一同創辦了英國的(數學)分析學會。
不過巴貝奇並不是一個安分的學生,他一方面顯現出超凡的智力,另一方面又不按照要求完成學業,為此他不得不轉了一個學院,才能繼續學業。在學校裡,他還對很多超自然的現象感興趣。
延伸閱讀:巴貝奇誕辰|科學史上的今天:12/26
如果不是趕上工業革命,巴貝奇或許會尋找某個傳統的數學領域或者自然哲學領域做一輩子研究,並且留下一個巴貝奇定律或者巴貝奇定理。但是,工業革命的大背景,讓他把畢生精力和金錢都投入研究一種能夠處理資訊的機械中。
這也不奇怪,因為工業革命為資訊處理提供了思想上的依據、技術上的條件和廣闊的市場。工業革命是人類歷史上最偉大的事件。它不僅第一次讓人類從此進入可持續發展的時代,也改變了人們的思想。人類從相信神,到今天開始變得自信起來,相信這個世界是確定的、有規律的,而自己能夠發現世界上所有的規律。
早在牛頓時代,著名物理學家玻意耳(Robert Boyle)在總結牛頓等人的科學成就之後,就提出了「機械論」,也被稱為「機械思維」。
玻意耳等人(包括牛頓、哈雷等)認為,世間萬物的規律都可以用機械運動的規律來描述,包括蒸汽機和火車在內的工業革命中那些最重要的發明,都受益於機械思維。人們熱衷於用機械的方法解決問題,從精密的航海導航,到能夠奏樂的音樂盒,再到能織出各種圖案的紡織機。
既然能想到的所有規律都可以用運動規律來描述,那麼就很容易想到讓具有特殊結構的齒輪組運動來完成計算,這便是設計機械計算機的思想基礎。
其實,這種想法早在十七世紀就有人嘗試過。法國數學家帕斯卡(Blaise Pascal)發明了一種手搖計算器——雖然有時人們將它稱為最早的機械計算機,但實際上它和我們今天理解的電腦概念沒有太多相似之處,稱之為「計算器」更為恰當。
帕斯卡計算器從外觀上看有上下兩排旋鈕,每個旋鈕上都刻著○至九這十個數字。在做加減法時,只要將參加運算的兩個數字分別撥到相應的位置,然後轉動手柄,計算器裡的一組組齒輪就會轉動,完成計算。
帕斯卡計算器最初只能做加法,後來經過改良, 可以做減法和乘法, 但做不了除法。在帕斯卡之後,萊布尼茨改良了計算器。他發明了一種以他名字命名的轉輪「萊布尼茨輪」,方便實現四則運算中的進位和借位。
到了十九世紀初,經過近兩個世紀的改進,機械計算器已經能夠完成四則運算,但是計算速度很慢,精度也不夠高,而且設備造價昂貴。不過,這種計算器更大的缺陷在於,對於複雜的運算(比如對數運算和三角函數運算)都做不到。
十九世紀機械工業的發展需要進行大量的複雜計算,比如三角函數的計算、指數和對數的計算等。在微積分出現之前,完成這些函數的計算是幾乎不可能的事。
十八世紀之後,歐洲數學家用微積分找到了很多計算上述函數的近似方法,不過這些方法的計算量極大,需要很長的時間,而且當時除了數學家,一般人是完成不了那些計算的。為了便於工程師在工程中和設計時完成各種計算,數學家設計了數學用表,如此一來工程師就可以從表中直接查出計算的結果。
不過,那個時代的數學用表錯誤百出,為生產和科學研究帶來了很多麻煩。而這個問題很難避免,因為手算很難保證完全不出錯。如果很多數學家分別獨立計算,還可以比對結果發現錯誤。但是巴貝奇發現,那些不同版本的數學用表都是抄來抄去,而犯的錯也都一樣。
因此,巴貝奇想設計一種機械來完成微積分的計算,然後用它來計算各種函數值,得到一份可靠的數學用表。當時他只有二十二歲。
在隨後的十年裡,巴貝奇造出來一台有六位精度(巴貝奇最初的目標是達到八位精度)的小型差分計算機。隨後巴貝奇用它算出了好幾種函數表,用於解決航海、機械和天文方面的計算問題。
值得指出的是,巴貝奇的這次成功受益於工業革命的成就——當時機械加工的精度比瓦特時代已經高出了很多,這讓巴貝奇能夠加工出各種尺寸獨特的齒輪。
但是,當時並沒有二十世紀的精密加工技術,製造小批量特製齒輪和機械部件的成本高、難度大,這給巴貝奇後來的工作帶來了諸多不便。
不過,首次成功還是讓巴貝奇獲得了英國政府的資助,用以打造一台精度高達二十位的計算機。
幾年後,他又獲得了劍橋大學盧卡斯數學教授的職位,讓他有了穩定的收入。在此之前,他一直在花自己繼承的十萬英鎊遺產。勝利女神似乎正向他招手,但接下來的時日,他在計算機研究方面一籌莫展。
從表面上看,巴貝奇遇到的困難是因為那台差分機太複雜了,裡面有包括上萬個齒輪的二點五萬個零件,當時的加工水準根本無法製造。但更本質的原因是,巴貝奇並不真正理解計算的原理。他不懂得對於複雜的計算來說,不是要把機器做得更複雜,而是要用簡單的計算單元來實現複雜的計算。
當然,在那個年代沒有人瞭解這些。作為現代計算機基礎理論的布林代數要再等十幾年才會被提出來,而且要再過近一個世紀,才會被應用到計算技術中。
——本文摘自《資訊大歷史:人類如何消除對未知的不確定》,2022 年 6 月,漫遊者文化,未經同意請勿轉載。