Ruby 語言問世 | 歷史上的今天

整理 | 王啟隆

透過「歷史上的今天」,從過去看未來,從現在亦可以改變未來。

今天是 2022 年 12 月 21 日,在 55 年前的今天,世界第一例心臟移植者逝世;世界上第一個心臟移植病人路易·華什坎斯基,用一顆在車禍中喪生的 25 歲的婦女的心臟活了 18 天之後在南非的開普敦去世,華什坎斯基術後身體恢復良好,只因肺部出了問題,才奪去了他的生命。回顧科技歷史上的 12 月 21 日,這一天還發生過哪些令人印象深刻的關鍵事件呢?

1849 年 12 月 21 日:機械計算器先驅 George Grant 出生

喬治·格蘭特(George Barnard Grant)出生於 1849 年 12 月 21 日,他是一名美國機械工程師、發明家、企業家和植物學家。他以對 19 世紀機械計算器做出重要貢獻、開創齒輪製造新技術以及創辦幾家成功公司而著稱,被稱為「美國齒輪切削工業之父」。

圖源:維基百科

圖源:維基百科

格蘭特出生於緬因州加德納的一個農民家庭,他的父母都是 1630 年代最初來到新英格蘭的家庭後裔。他在布里奇頓學院為大學做準備,然後從達特茅斯學院的錢德勒科學學院開始,預備學習了三個學期;1869 年,格蘭特轉學到哈佛大學的勞倫斯科學學院,1873 年獲得學士學位。

在哈佛讀書期間,格蘭特致力於解決發明機械計算器的問題。在他教授的鼓勵下,他著手改進「電腦之父」巴貝奇留下的工作;他在《美國科學與藝術雜誌》上發表工作成果,並在學生時期獲得了兩項專利。

大學畢業後不久,格蘭特設計並製造了兩臺計算機,並於 1876 年在費城舉行的百年博覽會上展出其中一臺,被稱為差分引擎,長 8 英尺,高 5 英尺,重 2,000 磅,可能是有史以來最大的計算器。格蘭特發明的機器贏得了許多獎項:百年獎章、富蘭克林研究所的斯科特獎章和馬薩諸塞州力學協會的金獎。

作為計算機工作的產物,格蘭特逐漸對齒輪的構造產生了興趣。齒輪製造這個領域在 19 世紀後期經歷了很大的發展和變化,格蘭特在這一發展中發揮了主導作用:例如,關於齒輪最佳化設計的爭議已持續多年;在格蘭特的時代,最常見的是擺線齒輪,而格蘭特認為,漸開線齒輪實際上對大多數應用來說都是優越的。

格蘭特在改變行業慣例方面發揮了重要作用,從他之後,世界上生產的大多數齒輪都變成了漸開線的。格蘭特一生未婚,他於 1917 年 8 月 16 日逝世,享年 68 歲;在他去世多年後,他創辦的幾家企業仍在繼續經營。

資料來源:維基百科

1918 年 12 月 21 日:程式語言翻譯領域先驅 Klaus Samelson 出生

1918 年 12 月 21 日,克勞斯·薩梅爾森(Klaus Samelson)出生於阿爾薩斯-洛林的斯特拉斯堡,他的哥哥是數學家漢斯·薩梅爾森;薩梅爾森是德國數學家、物理學家和計算機先驅,主要從事程式語言翻譯工作和研究計算機上順序公式翻譯的 push-pop 堆疊演算法。

圖源:維基百科

圖源:維基百科

克勞斯·薩梅爾森的童年時期一直住在波蘭西南部的一座城市,佈雷斯勞;由於二戰的影響,他一直到 1946 年才開始上大學,在慕尼黑的路德維希馬克西米利安大學學習數學和物理學。畢業後,他曾短暫擔任過高中教師。1951 年,他在弗里德里希·波普的指導下完成了物理學哲學博士學位,論文是阿諾德·索末菲(Arnold Sommerfeld)提出的與單極感應相關的量子力學問題。

在上學期間,薩梅爾森對數值分析產生了興趣,當電氣工程師 Hans Piloty 和數學教授 Robert Sauer 開始合作項目時,他加入項目並參與了早期計算機的研究,擔任慕尼黑大學數學研究所的助理研究員。這份經歷改變了他的科學生涯,他後來的第一篇出版文章便源自 Robert Sauer 的興趣:處理超音速流動和特徵值數值計算的數字計算精度問題。

不久之後,薩梅爾森的影響力開始推動電腦科學和資訊學作為一門新的科學學科的發展。他和弗里德里希·鮑爾(Friedrich Bauer)一起研究了程式語言的結構,為它們的翻譯和實現開發了高效的演算法;這項研究導致了程式語言括號結構的誕生,薩梅爾森也清楚地認識到,這會是計算機系統構建和設計方式的根本性突破。

薩梅爾森還參與了程式設計和資訊學的國際標準,並在 ALGOL 58 和 ALGOL 60 的設計中發揮了關鍵作用。1958 年,他被美因茨大學聘為數學教授;1963年起,他在慕尼黑工業大學擔任教授,在那裡,他再次與弗里德里希·鮑爾(Friedrich Bauer)合作,一同開發資訊學和電腦科學的大學課程。1971 年創辦《資訊學報》時,他成為該雜誌的編輯。

資料來源:維基百科

1929 年 12 月 21 日:自動程式設計工具之父 Douglas Ross 出生

道格拉斯·羅斯(Douglas Taylor Ross)出生於 1929 年 12 月 21 日,他是美國的電腦科學家先驅, SofTech 公司的董事長,該公司是一家軟體公司,也是 Pascal 編譯器的早期供應商;道格拉斯·羅斯因發明術語 CAD(計算機輔助設計)而聞名,被公認為 APT(自動程式設計工具)之父,而 APT 則是一種推動數控制造的語言。此外,道格拉斯還是 SADT、結構化分析和設計技術的發明者,結構化分析方法的早期開發者。

圖源:維基百科

圖源:維基百科

1951 年,羅斯以優異成績獲得歐柏林學院(Oberlin College)數學學士學位,1954 年獲得麻省理工學院(MIT)電氣工程碩士學位。後來,他開始在麻省理工學院攻讀博士學位,但沒有完成,因為他是當時的麻省理工學院計算機應用小組負責人,工作壓力很大。

在 20 世紀 50 年代,他參加了麻省理工學院的旋風計算機項目。1969 年,羅斯創立了 SofTech 公司,作為給美國國防部 Ada 和 Pascal 語言定製編譯器的早期供應商。羅斯曾在麻省理工學院電氣工程和電腦科學系講課,並擔任榮譽主席。他從 1969 年到 1975 年擔任 SofTech 公司總裁,並最後退休成為董事會主席。

羅斯對麻省理工學院的旋風計算機項目做出了重大貢獻,這是世界上第一個研究計算機實時文字和圖形的項目。許多人認為道格拉斯·羅斯是自動程式設計工具之父,而他還發明瞭計算機輔助設計的術語 CAD。

1954 年左右,羅斯為計算機編寫了第一個手繪圖形輸入程序,他說這是「我寫過的為數不多的一次就能成功運行的程序之一」;1960 年代初,市場上首次出現了商用的計算機輔助設計(CAD)系統。其中第一批被大型航空,工程和資訊技術公司使用,例如洛克希德,通用汽車和 IBM。

到了 90 年代,實體建模的概念開始普及,3D CAD 應運而生;3D 建模是一種完全不同的思維和工作方式,因此每個人都需要花費更長的時間來適應它;隨著現在虛擬現實(VR)和增強現實(AR)市場的顯著增長,CAD 軟體行業也進入了一個全新的領域,蘊含著無限的未來。

資料來源:維基百科

1995 年 12 月 21 日:松本行弘發佈 Ruby 0.95

Ruby 是一種物件導向、命令式、函數式、動態的通用程式語言,在 20 世紀 90 年代中期由日本電腦科學家松本行弘(Matz)設計並開發。它借鑑和吸收了 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 等語言的特色;松本行弘以簡潔性、擴展性和穩定性為原則設計了 Ruby,他期待使用 Ruby 的程式設計師都能由衷地感到快樂和高效。

松本行弘於 1993 年 2 月 24 日開始編寫 Ruby,直至 1995 年 12 月 21 日才正式公開發佈於新聞組。Ruby 這一名字靈感來源於 Perl,因為 Perl 的發音與 6 月的誕生石 Pearl(珍珠)相同,Ruby 選擇以 7 月的誕生石 Ruby(紅寶石)命名。

圖源:維基百科

圖源:維基百科

Ruby 相較之下比其他類似的程式語言(如 Perl 或 Python)年輕,又因為 Ruby 是日本人發明的,所以早期的非日文資料和程序都比較貧乏,如今在網上仍然可以找到早期對 Ruby 的資料太少之類的批評。大約在 2000 年,Ruby 開始進入美國,英文的資料才開始發展。

2004 年,Rails 框架誕生,使 Ruby 更加廣為人知,隨後,Ruby 於 2006 年成為 TIOBE 獲選為年度程式語言。有趣的是,Ruby 事實上在中國早期的遊戲製作者社區廣為所知,因為知名的遊戲製作軟體 RPG Maker 便是以 Ruby 為基礎進行遊戲程式設計的。

程式語言是在不斷試錯的過程中發展起來的。有很多程式語言已經消亡,僅僅在歷史中留下了它們的名字,但其中所包含的思想,卻被後來的語言以不同的形式吸取和借鑑。

——松本行弘

Ruby 的設計理念是減少程式設計時候的不必要的瑣碎時間。令編寫程序的人高興,是設計 Ruby 語言的松本行弘的一個首要的考慮;其次是良好的界面設計。

他強調系統設計必須強調人性化,而不是一味從機器的角度設想;遵循著最小驚訝原則,Ruby 語言通常非常直觀,按照程式設計師認為它應該的方式運行。松本行弘還認為 Ruby > (Smalltalk + Perl) / 2,表示 Ruby 是一個語法像 Smalltalk 一樣完全物件導向、腳本執行、又有 Perl 強大的文書處理功能的程式語言。

關於 Ruby 和 Perl 之間的討論從未停止過。

CPAN 上排名第一名,同時也是 Perl 6 的開發者的唐鳳(Autrijus / Audrey)便曾經說過:「Ruby 就是‘沒有到處打廣告的 Perl 6’。」

而松本行弘在接受訪問時,提到「Ruby 借用了很多Perl 的東西……,Python 遠比 Perl 要少……」、「我認為 Ruby 這個名字作為 Perl 之後的一門語言的名字真是再恰當不過了。」

甚至 Perl 之父拉里·沃爾(Larry Wall)都說:「很多方面上我還是很喜歡 Ruby 的,這是因為那些部分是從 Perl 借過去的。:-)」、「我還喜歡 Ruby 的 C<*>一元星號運運算元,所以我把它加到了 Perl 6 裡面。」

隨著 Ruby 語言的發展,由 Ruby 語言本身還發展出了 JRuby(Java 平臺)、IronRuby(.NET 平臺)等其他平臺的 Ruby 語言替代品。你如何看待 Ruby 語言?歡迎在評論區分享你的真知灼見。

資料來源:維基百科

2012 年 12 月 21 日:瑪雅日曆預言「世界末日」

2012 年現象是指一系列認為 2012 年 12 月 21 日左右世界出現災難性或變革性事件的末世論觀點。這一天在中美洲長紀曆中被認為是 5126 年紀年週期的最後一天,受瑪雅文明影響的國家(墨西哥、瓜地馬拉、宏都拉斯和厄瓜多)在這一天舉行活動。

瑪雅文明本身屬於是南美洲古代印第安人文明,美洲古代印第安文明的傑出代表,以印第安瑪雅人而得名;瑪雅文明約形成於公元前 2500 年,公元前 400 年左右建立早期奴隸制國家,公元 3~9 世紀為繁盛期,15 世紀衰落,最後為西班牙殖民者摧毀,此後長期湮沒在熱帶叢林中。

流傳的末日說認為,在 2012 年 12 月 21 日,太陽將到達所謂的銀河系「銀道(Galactic equator)」,這一特殊的事件據說每隔 25800 年才會發生一次。然而實際情況是,銀河系並沒有確切的銀道,它不是一條線,並且過去幾年的冬至日太陽就在銀道上,今後幾年仍將如此。

圖源:維基百科

圖源:維基百科

2012 現象被眾多媒體探討或提及,幾部提到 2012 年的電視紀錄片及當紅虛構作品都認為 12 月 21 日在災難性事件發生的日子;受 2012 世界末日啟發的 2009 年災難片《2012》在預熱宣傳活動中採用秘密行銷策略,藉助虛構組織「人類永續研究所」(Institue for Human Continuity)的電視臺和網站號召大家準備應對世界末日。

相關宣傳內容沒有提及電影,導致許多觀眾信以為真,驚慌之下聯絡天文學家;即便宣傳活動遭到猛烈批評,電影仍是當年最成功的電影,全球票房近 7.7 億美元。

在 2012 過去之後,但許多作家仍繼續發掘相關題材,其中葛瑞姆·漢卡克在 2015 年著作《諸神魔法師》寫道:「就這樣看來,瑪雅人從來沒說過什麼世界末日,而是說這是一個時代——大改革和世界重生的時代結束,之後新的大循環或時代會開啟。」

隨著近幾年人工智慧技術的崛起,關於世界末日的討論再次興起,物理學家斯蒂芬·霍金、微軟創始人比爾·蓋茲和 SpaceX 創始人伊隆·馬斯克都回應過這些擔憂,霍金將這種人工智慧叛變理論推向了現實,認為其可能「預示著人類的滅亡」。

當然,相信在大多數情況下,無論人類文明以何種方式結束,都不會對這顆已經存在了幾億年的地球產生太多影響;劍橋大學的「劍橋計劃」曾經指出,對人類的「最大威脅」是人為的:它們是人工智慧、全球暖化、核子戰爭和有害生物技術。倘若世界末日來得如此之快,你會在那一天做些什麼呢?歡迎參與本期投票,在評論區分享你的真知灼見。

【歡迎投稿】以史為鏡,可以知興替。電腦科學發展至今,有許多至關重要的事件、人物,歡迎所有朋友一起共建「歷史上的今天」,投稿郵箱:tangxy@csdn.net 。

相關文章

CNNVD通報Oracle多個安全漏洞

CNNVD通報Oracle多個安全漏洞

近日,CNNVD通報Oracle多個安全漏洞,其中Oracle產品本身漏洞60個,影響到Oracle產品的其他廠商漏洞247個。包括Orac...