這 11 種程式語言,還「活著」嗎?

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

連結:https://medium.com/@SiliconJelly/are-these-11-programming-languages-still-alive-a51a2f280591

作者 | Tanjim Mohamed Nirjhor

譯者 | 彎月 責編 | 鄭麗媛

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

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

Ada

Ada

Ada

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

根據維基百科的說明:

「Ada 是一種結構化的、靜態類型的、命令式的、範圍廣泛的、物件導向的高級計算機程式語言。」

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

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

1997年,隨著美國國防部採用商業技術,Ada 強制令也被取締了。

然而,Ada 在商業上的使用並沒有隨著 Ada 強制令的取締而結束。如今,Ada 仍廣泛用於醫療以及其他關鍵任務系統程式設計。

Algol

Algol

Algol

Algol 最初是由一群電腦科學界的重量級人物於 19 世紀 50 年代設計的,作為計算機協會(Association for Computing Machinery,簡稱ACM)描述演算法的標準。

Algol 的設計旨在避免 FORTRAN 的一些常見的問題,它極大地影響了後來許多其他命令式語言,包括 PL/I、Simula、BCPL、B、Pascal 和 C。

60 年代之後,Algol 不再有任何發展,同時這門程式語言的發展也走到了盡頭,逐步讓位於其他程式語言。

APL

APL

APL 創建於 20 世紀 60 年代,是一種動態類型的程式語言,其核心技術是多維陣列。APL 極大地影響了概念建模、電子表格、函數語言程式設計以及計算機數學包的發展,並啟發了其他若干程式語言。

由於 APL 鼓勵程式設計師使用多維陣列和符號,因此用 APL 編寫的程式碼相對比較複雜,而且對於不熟悉該語言的人來說理解難度很大。

如今仍有一些頑強的 APL 程式設計師堅守在物理或數學實驗室中,與非常複雜的演算法奮戰。

Forth

Forth

Forth

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

雖然 Forth 主要用於嵌入式領域,但很多作業系統的引導載入程序也用到了該語言。除了這些領域之外,大多數程式設計師也只是聽說過該語言,但並未真正使用過。

LISP

LISP

LISP

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

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

在經歷了多年的逐步下滑之後,隨著研究人員尋找為小型系統添加智慧功能的方法,LISP 的發展也出現了復甦。但在 AI 的世界之外,LISP 並不是很成功。

Logo

Logo

Logo

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

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

Logo 最有名的是海龜繪圖,後來許多其他程式語言也聲稱自己使用了「海龜繪圖」。儘管這些語言並不是真正的 Logo 語言,但依然讓大眾覺得很迷惑,最終這也導致 Logo 語言開始走下坡路。

Pascal

Pascal

Pascal

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

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

隨著結構化程式設計逐漸被物件導向程式設計所取代,Pascal 的受歡迎程度也隨之下降。如今的 Pascal 還有一批忠實粉絲,只不過該語言的輝煌歲月已然結束。

Modula-2

Modula-2

Modula-2

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

Modula-2 最重要且最顯著的特徵是模組的概念(一個程式碼塊,可被程序的其餘部分使用)。Modula-2 以及模組化程式設計成為了後來程式設計範例(例如物件導向程式設計)的基礎。

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

PL/I

PL/I

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

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

Smalltalk 就像程式語言中的「俳句」。Smalltalk 是 Xerox PARC 的一群電腦科學巨星於 20 世紀 70 年代末 80 年代初設計的,它影響了許多物件導向的程式語言,特別是 AppleScript、Common Lisp 對象系統、Dart、Dylan、Erlang、Etoys、Falcon、Go 、Groovy、Io、Ioke、Java、Lasso、Lisaac、Logtalk、Newspeak、NewtonScript、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、JavaScript、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 種古老的語言

感謝這 11 種古老的語言

作為現代程式設計師,如今我們的工作效率更高,隨著時間的推移,學習程式語言的難度也越來越低。從 Ada 到 Smalltalk,每一種程式語言都曾有過自己的黃金時期,而且它們也為下一代語言的誕生做出了貢獻。

「最好的程序指的是,計算機能夠快速執行,而且人類也能夠清楚理解的程序。

程式設計師就像散文作家,他們利用傳統的美學和文學形式以及數學概念來傳達演算法,並讓讀者相信結果是正確的。」

—— Donald E. Knuth,《電腦科學論文選集》

這些語言可能已經死了,但它們的落幕標誌著新時代的來臨:任何人,不需要擁有數學或電腦科學學位,也不需要坐在麻省理工學院實驗室裡,擺弄 IBM 大型機,就可以編寫計算機程序。因此才有瞭如今眾多自學成才的程式設計師。

那麼,問題來了,隨著程式語言如此快速的發展,未來我們將何去何從?

☞亞馬遜雲科技十年領跑,為雲而生的硬體創新進入加速期,普惠百萬使用者

☞Hinton、DALL-E 2 皆上榜,盤點 AI 圖像 10 年合成史!

☞馬斯克:和蘋果的誤解得到了解決;小米 13 系列新品發佈會將延期舉行;IntelliJ IDEA 2022.3 發佈|極客頭條

相關文章

Python 與 JavaScript 做比較公平嗎?

Python 與 JavaScript 做比較公平嗎?

在討論應該使用 Python 還是 JavaScript 構建項目時,一般我們都不會說只使用一種程式語言來構建所有的元件。 在現代軟體開發中...

微軟全力擁抱 Java !

微軟全力擁抱 Java !

作者 | 蘇宓 雖然一直以來,微軟的不少產品在很多層面都有使用 Java 語言,但近日其官網上的一則「Microsoft is commit...

Python 真的很糟糕嗎?

Python 真的很糟糕嗎?

隨著 AI 的發展,憑藉易學易用的語法、豐富的庫和框架,Python 在機器學習、深度學習、自然語言處理和資料科學等領域有著廣泛的應用。然而...

CNNVD通報Oracle多個安全漏洞

CNNVD通報Oracle多個安全漏洞

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

Java 21:有什麼新變化?

Java 21:有什麼新變化?

【CSDN 編者按】這篇文章詳細介紹了Java 21 的新特性和改進。Java 21是新的長期支持(LTS)版本,其中包括了15個Java增...

載入速度慢?Android Cocos 最佳化實戰

載入速度慢?Android Cocos 最佳化實戰

針對 Cocos 遊戲存在載入速度慢的問題,技術團隊進行了最佳化。不僅僅提升了使用者體驗的提升,而且最佳化了項目結構,還為未來遊戲-原生跨環...

捲土重來?不,Java 一直是王道!

捲土重來?不,Java 一直是王道!

摘要:幾年前,「Java 已死」的話題在程式設計圈內引起廣泛討論,自此之後有關唱衰 Java 的聲音層出不窮。反觀如今各類程式語言排行榜,J...

Python 雖已登峰,但尚未造極!

Python 雖已登峰,但尚未造極!

本文來自 CSDN 策劃的《2022 年技術年度盤點》欄目。本欄目將圍繞程式語言、開源、雲端運算、人工智慧、架構服務、資料庫、晶片、開發工具...