摘要:你聽過多少種編程語言?目前主流的 Java 、Python、Java、C、C++ 等自然是耳熟能詳,但更早之前的編程語言你了解嗎?你知道它們還在嗎?
鍊接:
作者 | Tanjim Mohamed Nirjhor
譯者 | 彎月 責編 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
編程語言發展至今,有的語言仍然炙手可熱,而有的語言已經敲響了喪鐘。看看如下這張編程語言的曆史紀年表,你聽說過的有多少種?
本文不是為了哀悼這些編程語言,而是讓我們找到前進的力量,本文提及的這11種語言雖然不再流行,但它們為現代編程語言的發展奠定了基礎,并為科學家、開發人員和工程師鋪平了道路。
Ada
該語言根據英國數學家 Ada Lovelace(埃達·洛夫萊斯)命名,她是史上最早的程序員之一。1991 年,Ada 受美國國防部的委托,整合了美軍當時使用的 450 多種編程語言。
根據維基百科的說明:
“Ada 是一種結構化的、靜态類型的、命令式的、範圍廣泛的、面向對象的高級計算機編程語言。”
Ada 的設計初衷就在于完成如此多的任務,所以最終結果就是一個大而全且十分複雜的編譯器。
1991 年,美國國防部要求所有軟件都使用 Ada(Ada 強制令),但經常會破例允許一些軟件不使用 Ada。
1997年,随着美國國防部采用商業技術,Ada 強制令也被取締了。
然而,Ada 在商業上的使用并沒有随着 Ada 強制令的取締而結束。如今,Ada 仍廣泛用于醫療以及其他關鍵任務系統編程。
Algol
Algol 最初是由一群計算機科學界的重量級人物于 19 世紀 50 年代設計的,作為計算機協會(Association for Computing Machinery,簡稱ACM)描述算法的标準。
Algol 的設計旨在避免 FORTRAN 的一些常見的問題,它極大地影響了後來許多其他命令式語言,包括 PL/I、Simula、BCPL、B、Pascal 和 C。
60 年代之後,Algol 不再有任何發展,同時這門編程語言的發展也走到了盡頭,逐步讓位于其他編程語言。
APL
APL 創建于 20 世紀 60 年代,是一種動态類型的編程語言,其核心技術是多維數組。APL 極大地影響了概念建模、電子表格、函數式編程以及計算機數學包的發展,并啟發了其他若幹編程語言。
由于 APL 鼓勵程序員使用多維數組和符号,因此用 APL 編寫的代碼相對比較複雜,而且對于不熟悉該語言的人來說理解難度很大。
如今仍有一些頑強的 APL 程序員堅守在物理或數學實驗室中,與非常複雜的算法奮戰。
Forth
Forth 是一種無類型、面向堆棧的編程語言,專為計算器、計算機輔助設計 (CAD)、天文和空間應用等嵌入式系統而設計。這門編程語言适用于編寫高效、可靠、執行速度非常快的小型應用的代碼。
雖然 Forth 主要用于嵌入式領域,但很多操作系統的引導加載程序也用到了該語言。除了這些領域之外,大多數程序員也隻是聽說過該語言,但并未真正使用過。
LISP
LISP 誕生于 20 世紀 50 年代後期,其最有名的經典數據結構之一便是鍊表。鍊表是一種非常高效的機制,可用于在單個結構中處理多種數據類型。LISP 提出的許多概念在如今數據量很大、規模非常緊湊的系統中都有使用。
LISP 有很多後續的衍生語言,最著名的便是 Common Lisp 和 Scheme。
在經曆了多年的逐步下滑之後,随着研究人員尋找為小型系統添加智能功能的方法,LISP 的發展也出現了複蘇。但在 AI 的世界之外,LISP 并不是很成功。
Logo
Logo 最初是于 20 世紀 60 年代後期設計的,是一種被用作教授編程概念的語言。Logo 的形式非常類似于LISP 語言,也被稱為面向邏輯的編程語言。
如今這門編程語言主要應用于人工智能、數理邏輯和發展心理學領域。
Logo 最有名的是海龜繪圖,後來許多其他編程語言也聲稱自己使用了“海龜繪圖”。盡管這些語言并不是真正的 Logo 語言,但依然讓大衆覺得很迷惑,最終這也導緻 Logo 語言開始走下坡路。
Pascal
Pascal 是 Niklaus Wirth 于 20 世紀 70 年代設計的編程語言,旨在教授結構化編程的概念,這門語言對個人計算機編程産生了重要影響。
80 年代中期,Borland Turbo Pascal(不同于 Pascal)成為了一種流行的開發語言,用于開發各種軟件,包括從構建 Apple Lisa 的軟件到編寫 Donald Knuth 的 TeX 系統。
随着結構化編程逐漸被面向對象編程所取代,Pascal 的受歡迎程度也随之下降。如今的 Pascal 還有一批忠實粉絲,隻不過該語言的輝煌歲月已然結束。
Modula-2
Modula-2 是一種命令式、結構化、模塊化的編程語言,由 Niklaus Wirth 于 20 世紀 70 年代開發。這門語言的設計目的是成為 Pascal 語言的繼任者。
Modula-2 最重要且最顯著的特征是模塊的概念(一個代碼塊,可被程序的其餘部分使用)。Modula-2 以及模塊化編程成為了後來編程範例(例如面向對象編程)的基礎。
雖然從商業的角度來看,Modula-2 的某些特性與 Pascal 相似,甚至比 Pascal 更好,但它最終未能像 Pascal 一樣流行,如今幾乎已被遺忘。
PL/I
PL/I 是 IBM 于 20 世紀 60 年代設計的一種通用的、過程式的、命令式的、結構化的編程語言。
PL/I 的目标是改進 FORTRAN 的數值能力,以及加強 COBOL 的字符串和業務流程能力。最終,PL/I 成為了一種強大的結構化語言,可用于各行各業,從控制系統到會計系統,再到科學分析。
作為一種編程語言,PL/I 的流行度從未達到 IBM 的預期,最終也讓位于 IBM 的其他語言,比如 CMS-2、SP/k、B、REXX 和 AS/400 控制語言等。
RPG
RPG(Report Program Generator,報告程序生成器)是為 IBM 計算機(從穿孔卡和 IBM 1401 到 IBM Power i 大型機,再到 AS/400 等 IBM 中端計算機)編寫傳統應用程序而設計的編程語言。
盡管 RPG 的市場定位與 FORTRAN 和 COBOL 相同,但 IBM 依然決定放棄這門語言,最終導緻它在 IBM 内部衰落。不過,當前RPG IV 仍被一衆 RPG 程序員廣泛使用,他們别無選擇,尤其是在大量部署 IBM 計算機的地方。
RPG 曾是衆多報紙和雜志出版物的熱門話題,如今逐漸被現代開發平台和硬件架構所取代,如高端 LINUX/UNIX 和 JEE。
Smalltalk
Smalltalk 就像編程語言中的“俳句”。Smalltalk 是 Xerox PARC 的一群計算機科學巨星于 20 世紀 70 年代末 80 年代初設計的,它影響了許多面向對象的編程語言,特别是 Apple、Common Lisp 對象系統、Dart、Dylan、Erlang、Etoys、Falcon、Go 、Groovy、Io、Ioke、Java、Lasso、Lisaac、Logtalk、Newspeak、Newton、Object REXX、Objective-C、PHP 5、Perl 6、Python、Ruby、Scala、Scratch 和 Self。
Smalltalk 的消息傳遞模型僅使用了六個保留關鍵字,Smalltalk 也因此成為了熱門話題。
現如今,Smalltalk 仍廣泛用作大學裡面向對象編程的教學工具,但在商業領域沒有太大的應用,因為這門語言有幾個主要問題,包括:
内存消耗過大;
無法編寫非常快的應用程序;
錯過了進軍 Web 的時機;
語法上與 C++、PHP、Perl、Python、Pascal 和 Ruby 等“傳統”語言差别太大,因此學習難度較高;
Smalltalk IDE 與語言的結合太過緊密。
上述部分原因無疑是敲響了 Smalltalk 的喪鐘。
總結
如今,編程語言不限于滿足開發人員的需求,不限于抽象語法樹,不限于工具,它們進化了!從十六進制(編号系統)到彙編程序,再到 C 語言,以及更高級的 Python、Java、Perl、PHP、Ruby、JAVA,編程語言的自動化程度越來越高,學習難度越來越低,且對程序員越來越友好。
20 世紀大量使用 Fortran 以及 MATLAB 等語言,是為了能夠在更短時間内完成計算,同時提高準确性,以鞏固數學研究的目的。Fortran 首次提出了 do while 循環結構(Algol 稱為 for 循環),并促使遞歸算法得到理論化。MATLAB 最初并不是一種傳統的編程語言,然而該語言在發展的過程中,為了滿足工程和科學上的需求而不斷改進。
C 語言之所以成為經典,是因為它的誕生結合了天時地利人和。如今大多數編譯器和内核都是用 C 語言編寫的。而 C++ 則緻力于縮短運行時間、節省内存,并優化軟件和遊戲開發行業中的這些資源。C++ 和 JAVA 是編程競賽中的兩種首選語言。Ruby 因其簡單性而廣泛流行,多用于 Web 開發,至今仍是最好的開源項目之一,其流行的 Web 應用程序框架 Ruby on Rails 擁有廣泛的社區支持。
感謝這 11 種古老的語言
作為現代程序員,如今我們的工作效率更高,随着時間的推移,學習編程語言的難度也越來越低。從 Ada 到Smalltalk,每一種編程語言都曾有過自己的黃金時期,而且它們也為下一代語言的誕生做出了貢獻。
“最好的程序指的是,計算機能夠快速執行,而且人類也能夠清楚理解的程序。
程序員就像散文作家,他們利用傳統的美學和文學形式以及數學概念來傳達算法,并讓讀者相信結果是正确的。”
—— Donald E. Knuth,《計算機科學論文選集》
這些語言可能已經死了,但它們的落幕标志着新時代的來臨:任何人,不需要擁有數學或計算機科學學位,也不需要坐在麻省理工學院實驗室裡,擺弄 IBM 大型機,就可以編寫計算機程序。因此才有了如今衆多自學成才的程序員。
那麼,問題來了,随着編程語言如此快速的發展,未來我們将何去何從?
☞ 亞馬遜雲科技十年領跑,為雲而生的硬件創新進入加速期,普惠百萬用戶
☞ Hinton、DALL-E 2 皆上榜,盤點 AI 圖像 10 年合成史!
☞馬斯克:和蘋果的誤解得到了解決;小米 13 系列新品發布會将延期舉行;IntelliJ IDEA 2022.3 發布|極客頭條
下一篇
青島理工大學簡介
有話要說...