1 第一臺計算機:「差分機」(1821年)
「差分機」是1821年由英國政府委託科學家巴貝奇設計而成的,這臺機器能提高乘法速度和改進對數表等數字表的精確度。但由於其過高的設計成本,其後續的大型差分機的製作最後以失敗而告終。
2 第一臺通用計算機:「分析機」(1834年)「分析機」也是一個機械計算機,它輸入方式為打孔紙帶,紙帶上包含了程序與數據。這是來自巴貝奇的另外一個想法,可惜最後也是以失敗而告終。
3 第一個電腦程式:計算伯努利數的算法(1841 - 1842年)世界上第一個程式設計師Ada Augusta(另外她還是英國著名詩人拜倫的女兒)在1841年使用巴貝奇的分析機翻譯義大利數學家Luigi Menabrea的筆記。在翻譯過程中,她對這臺機器產生濃厚興趣並留下了她的翻譯筆記。 筆記之一——note G,記載了通過分析機計算伯努利數的算法,這被公認為是第一個電腦程式。
4 第一個能運轉的可編程計算機:Z3(1941年)Konrad Zuse(第一臺電子計算機的發明者)發明了可運轉的機械計算機Z1,但是它一次只能運轉幾分鐘,隨後,他使用不同的技術發明了Z2和Z3。Z3是程序和數據存儲在外部穿孔帶的電磁式計算機,這是德國政府的一個秘密工程,被德國飛機研究所使用,機器原型在1943年柏林的大轟炸中毀壞。
5 第一臺電子計算機:Atanasoff-Berry計算機(ABC)(1942年)這臺機器是由John Vincent Atanasoff和 Clifford Berry製造的,所以被命名為Atanasoff-Berry計算機或者簡稱為ABC,它被用於尋找線性方程組的解。這是第一個使用二進位來表示數據,通過電子開關來代替機械的計算機,但是這臺機器無法編程。
6 第一臺可編程的計算機:巨人(Colossus )(1943年)「巨人」是由Tommy Flowers製造的,它被用於二戰中幫助英國破譯德國的由洛倫茲密碼加密的消息。它是由電子開關和插塞來編程的,使得破譯密碼的時間由過去的幾周縮短到幾個小時。
7 第一臺通用的可編程計算機:ENIAC(1946年)ENIAC是由美國陸軍資助,由賓夕法尼亞大學摩爾電氣工程學院的John Mauchly等4人開發的。ENIAC寬150英尺,可以進行複雜的變成操作,如循環。它的編程是通過電子開關和電纜來完成的,輸入依靠卡片閱讀器而輸出依靠卡片穿孔機。它協助了世界上第一顆氫彈的研製。
8 第一個軌跡球:(1946/1952年)為什麼關於第一個軌跡球的年份會有2個?我來解釋一下。
第一個年份:Ralph Benjamin在1946年研究用於低空飛行飛機的監控系統時創建了第一個軌跡球。他描述的發明是使用一個球來控制屏幕上光標的x - y坐標。這項設計在1947年申請了專利,但從未對外公布。這個發明被認為是軍事機密,被用於代替操作杆。
第二個年份:Tom Cranston和他的公司在1952年開發了用於加拿大海軍DATAR系統的世界第一個 軌跡球。這個軌跡球的設計模擬了在「空氣軸承」中加拿大保齡球的旋轉。(見下圖)
9 第一個可存儲程序的計算機:SSEM(1948年)為了克服延遲線存儲器的缺點,Frederic C. Williams和Tom Kilburn 發明了第一個基於標準CRT的隨機存取數字存儲設備。SSEM被用於完成存儲設備的實際存儲,輸入的程序為使用32個開關的二進位形式,輸出使用CRT。
10 第一個高級程式語言:Plankalkül (1948年)雖然自1943年以來,Konrad Zuse(第一臺電子計算機的發明者)一直在研究Plankalkül ,但他只在1948年發表了一篇關於這門語言的論文。不幸的是這篇論文並沒有得到太多的關注。一直到接近三十年之後才由Joachim Hohmann論文中提到可以在編譯器中使用它進行編譯。
11 第一個彙編程序:EDSAC計算機的「初始訂單」(1949年)彙編程序是一個能夠將低級的助記符轉化為數字表達(機器語言)。EDSAC計算機的「初始訂單」是第一個這樣的系統。它被用於組裝從紙帶輸入到內存的程序並運行輸入。這個程序使用助記符代替機器語言,通過將象徵性的低水平程序代碼轉化為機器語言完成了「初始訂單」這第一個彙編程序。
12 第一臺個人計算機:「Simon」(1950年)Edmund Berkeley的「Simon」是第一個能夠執行四種操作:加法、邏輯非、大於和選擇的數字計算機。它依靠程序寫在紙上的打孔紙來進行輸入,而輸出是通過五盞燈來完成。
13 第一個編譯器: 用於UNIVAC 1的 A-0 (1952年)編譯器是可將高級語言轉換成機器代碼的程序。A-0系統是程式設計師中的傳奇Grace Hopper女士創建的,它能夠將指定程序以子程序序列和參數的形式轉換為機器語言。A-0系統後來演變為向所有人發布的A-2,並公布了其原始碼,這可能是真正意義上的第一個開源軟體。
14 第一個自動編譯器:Glennie的Autocode(1952年)自動編譯器是處理高級程式語言的編譯器。1952年,Alick E. Glennie利用自己在曼徹斯特大學的課餘時間發明了一個名為AUTOCODE的編程系統,一個未能成型的編譯器。
15 第一個實時圖形顯示計算機:IBM 公司的AN/FSQ-7 (1951年)AN/FSQ-7來自於最早的顯示實時輸出的計算機Whirlwind,它成為了美國空軍防禦系統SAGE的生命線——能夠顯示跟蹤的目標,並自動顯示哪些防禦工事在範圍以內。AN / FSQ-7擁有100個系統控制臺,下圖為其中之一:
16 第一個被廣泛使用的高級程式語言:FORTRAN(1957年)你可以在教科書上找到第一門高級程式語言FORTRAN 的介紹。這是由John W. Backus,一個不愛寫程序的年輕人想出來的,他決定創建一個編程系統使得編程的過程更加容易。使用FORTRAN編程可以大大減少運行計算機所需要的編程語句。到1963年,FORTRAN的編譯器已經超過了40個。
17 第一個滑鼠 (1964年)1964年,坐在計算機圖形學會議上思考的Douglas Engelbart萌生了一個關於老鼠的想法。他製造了一個有著兩個滑輪的設備(一個垂直滑,一個水平滑),可以用來移動屏幕上的光標。而這個設備的原型(如下圖)是由他的同事首席工程師Bill English 製造出來的。但是English和Engelbart都沒有收到這項專利的版權,這項發明的版權屬於他們的僱主SRI公司。
18 第一個商用桌上型電腦 Programma 101(1965年)Programma 101又被稱為「Perottina」,世界上第一個商業電腦。它可以執行加、減、乘、除、平方根、絕對值和分數。這個功能強大的電腦,售價為3200美元(1965年的3200美元大家可以想像下能當現在多少錢),賣出了44000臺。Perottina是由Pier Giorgio Perotto發明,義大利製造商Olivetti生產製造的。
19 第一個觸控螢幕(1965年)這看起來沒什麼功能的顯示屏是世界上第一個觸控螢幕。它是一個電容觸摸板,它沒有壓力靈敏度,且只支持單點觸控。這個技術被英國航空運輸控制臺一直用到二十世紀九十年代。
20 第一個面向對象程式語言:Simula(1967年)基於 C. A. R. Hoare的類結構概念,Ole-Johan Dahl和Kristen Nygaard 完善了他們的SIMULA程序語言,包含進了對象、類和子類。這使得1967年的SIMULA 成為了第一個面向對象的程式語言。