當前位置:首頁 > 科技 > 正文

這 11 種編程語言,還“活着”嗎?

摘要:你聽過多少種編程語言?目前主流的 Java 、Python、Java、C、C++ 等自然是耳熟能詳,但更早之前的編程語言你了解嗎?你知道它們還在嗎?

鍊接:

作者 | Tanjim Mohamed Nirjhor

譯者 | 彎月 責編 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

編程語言發展至今,有的語言仍然炙手可熱,而有的語言已經敲響了喪鐘。看看如下這張編程語言的曆史紀年表,你聽說過的有多少種?

本文不是為了哀悼這些編程語言,而是讓我們找到前進的力量,本文提及的這11種語言雖然不再流行,但它們為現代編程語言的發展奠定了基礎,并為科學家、開發人員和工程師鋪平了道路。

這 11 種編程語言,還“活着”嗎?

Ada

這 11 種編程語言,還“活着”嗎?

該語言根據英國數學家 Ada Lovelace(埃達·洛夫萊斯)命名,她是史上最早的程序員之一。1991 年,Ada 受美國國防部的委托,整合了美軍當時使用的 450 多種編程語言。

根據維基百科的說明:

“Ada 是一種結構化的、靜态類型的、命令式的、範圍廣泛的、面向對象的高級計算機編程語言。”

Ada 的設計初衷就在于完成如此多的任務,所以最終結果就是一個大而全且十分複雜的編譯器。

1991 年,美國國防部要求所有軟件都使用 Ada(Ada 強制令),但經常會破例允許一些軟件不使用 Ada。

1997年,随着美國國防部采用商業技術,Ada 強制令也被取締了。

然而,Ada 在商業上的使用并沒有随着 Ada 強制令的取締而結束。如今,Ada 仍廣泛用于醫療以及其他關鍵任務系統編程。

Algol

這 11 種編程語言,還“活着”嗎?

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

這 11 種編程語言,還“活着”嗎?

Forth 是一種無類型、面向堆棧的編程語言,專為計算器、計算機輔助設計 (CAD)、天文和空間應用等嵌入式系統而設計。這門編程語言适用于編寫高效、可靠、執行速度非常快的小型應用的代碼。

雖然 Forth 主要用于嵌入式領域,但很多操作系統的引導加載程序也用到了該語言。除了這些領域之外,大多數程序員也隻是聽說過該語言,但并未真正使用過。

LISP

這 11 種編程語言,還“活着”嗎?

LISP 誕生于 20 世紀 50 年代後期,其最有名的經典數據結構之一便是鍊表。鍊表是一種非常高效的機制,可用于在單個結構中處理多種數據類型。LISP 提出的許多概念在如今數據量很大、規模非常緊湊的系統中都有使用。

LISP 有很多後續的衍生語言,最著名的便是 Common Lisp 和 Scheme。

在經曆了多年的逐步下滑之後,随着研究人員尋找為小型系統添加智能功能的方法,LISP 的發展也出現了複蘇。但在 AI 的世界之外,LISP 并不是很成功。

Logo

這 11 種編程語言,還“活着”嗎?

Logo 最初是于 20 世紀 60 年代後期設計的,是一種被用作教授編程概念的語言。Logo 的形式非常類似于LISP 語言,也被稱為面向邏輯的編程語言。

如今這門編程語言主要應用于人工智能、數理邏輯和發展心理學領域。

Logo 最有名的是海龜繪圖,後來許多其他編程語言也聲稱自己使用了“海龜繪圖”。盡管這些語言并不是真正的 Logo 語言,但依然讓大衆覺得很迷惑,最終這也導緻 Logo 語言開始走下坡路。

Pascal

這 11 種編程語言,還“活着”嗎?

Pascal 是 Niklaus Wirth 于 20 世紀 70 年代設計的編程語言,旨在教授結構化編程的概念,這門語言對個人計算機編程産生了重要影響。

80 年代中期,Borland Turbo Pascal(不同于 Pascal)成為了一種流行的開發語言,用于開發各種軟件,包括從構建 Apple Lisa 的軟件到編寫 Donald Knuth 的 TeX 系統。

随着結構化編程逐漸被面向對象編程所取代,Pascal 的受歡迎程度也随之下降。如今的 Pascal 還有一批忠實粉絲,隻不過該語言的輝煌歲月已然結束。

Modula-2

這 11 種編程語言,還“活着”嗎?

Modula-2 是一種命令式、結構化、模塊化的編程語言,由 Niklaus Wirth 于 20 世紀 70 年代開發。這門語言的設計目的是成為 Pascal 語言的繼任者。

Modula-2 最重要且最顯著的特征是模塊的概念(一個代碼塊,可被程序的其餘部分使用)。Modula-2 以及模塊化編程成為了後來編程範例(例如面向對象編程)的基礎。

雖然從商業的角度來看,Modula-2 的某些特性與 Pascal 相似,甚至比 Pascal 更好,但它最終未能像 Pascal 一樣流行,如今幾乎已被遺忘。

PL/I

這 11 種編程語言,還“活着”嗎?

PL/I 是 IBM 于 20 世紀 60 年代設計的一種通用的、過程式的、命令式的、結構化的編程語言。

PL/I 的目标是改進 FORTRAN 的數值能力,以及加強 COBOL 的字符串和業務流程能力。最終,PL/I 成為了一種強大的結構化語言,可用于各行各業,從控制系統到會計系統,再到科學分析。

作為一種編程語言,PL/I 的流行度從未達到 IBM 的預期,最終也讓位于 IBM 的其他語言,比如 CMS-2、SP/k、B、REXX 和 AS/400 控制語言等。

RPG

這 11 種編程語言,還“活着”嗎?

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

這 11 種編程語言,還“活着”嗎?

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,編程語言的自動化程度越來越高,學習難度越來越低,且對程序員越來越友好。

這 11 種編程語言,還“活着”嗎?

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 發布|極客頭條

你可能想看:

有話要說...

取消
掃碼支持 支付碼