現在,無論是成年人還是孩子,學習編程都是非常HOT的,畢竟身處信息化爆炸的年代,這已然成為必備的社會技能,且將持續發展。
程式語言(programming language),是一種能夠控制計算機(或計算設備)的行為的人工語言。程式語言通過一套詞彙和語法規則,定義出結構和語義,用來向計算機(或計算設備)發出指令從而執行特定的任務。
很難去比較哪種程式語言的使用量最大,或者說哪種程式語言更受歡迎,因為某種程式語言可能是另外一種程式語言的編譯基礎,而且不同的場景下需要使用不同的程式語言。現在就讓我們來了解50 種不同的程式語言,看看計算機程式語言多年的歷史演進。
彙編語言本文中,為曾 Intel 8080 平臺的 8 位處理器編寫,這款處理器於 1974 年 4 月下旬發布。
Fortran 程式語言是 Formula Translation 的衍生版本。它是一種可編譯的通用命令式程式語言,特別適用於數值和科學計算。
Lisp 是最古老的程式語言家族,它既是命令式語言,又是函數式語言。Lisp 最初創建於 1958 年,當時是作為展示程序的實用模型發布的。在 20 世紀 70 年代和 80 年代,Lisp 家族成為人工智慧領域非常受歡迎的語言。
Cobol 是 COmmon Business Oriented Language 的縮寫,人們發明它是希望將其作為業務編程應用的通用語言。2019 年,Cobol 在銀行業和保險業中仍然應用廣泛。
BASIC是Beginner’s All-purpose Symbolic Instruction 的縮寫,是一種高級程式語言。這種語言的主要目標是容易使用。
Logo 語言很像 Lisp 語言,但更容易使用,這正是 Logo 被發明出來的原因,正如人們通常所認為的那樣,Logo 是「沒有圓括號的 Lisp 語言」。
B 語言現在已經被廢棄,但它曾扮演了一個重要角色,極大地促進了 C 語言的誕生,而現在 C 語言正被廣泛使用著。
Pascal 是一種命令式程式語言,它是為教學而設計的,其特點是語法清晰、嚴謹,有助於生成良好的程序結構。
Turbo Pascal 創建於 1983 年,是為 Pascal 程式語言打造的集成開發環境。Turbo Pascal 在 20 世紀 80 年代和 90 年代取得巨大成功。
Forth 是一種基於命令式堆棧的計算機程式語言,由 Charles H. Moore 在 20 世紀 60 年代創建,但它的第一個主要版本是在 1970 年發布的。這門語言在 1994 年被 ANSI 標準化,並且在 1997 年被 ISO 採用,2014 年它甚至迎來了一個新版本,也就是 Forth 2012。
貝爾實驗室的 Dennis Ritchie 和 Ken Thompson 在 1972 年開發 UNIX 時發明了 C 程式語言。Ken Thompson 之前已經發明了 B 語言。Dennis Ritchie 受到了 B 語言的啟發,決定發明一種新的語言,即 C 語言,在其中引入了類型概念。
Smalltalk 是一種面向對象的,具有反身性和動態類型的程式語言。當時主要是受到 Lisp 語言的啟發。Smalltalk 是最早一批具有集成開發環境的程式語言之一。
Prolog 是一種與人工智慧和計算語言學相關的邏輯程式語言。
ML 是 Meta Language 的縮寫,它是基於 Lisp 的函數式程式語言。ML 通常被認為是帶有類型的 Lisp 語言。
Scheme 創建於 1975 年,它是一種支持函數式和命令式的多範式程式語言。它是 Lisp 語言的 3 大變種之一,另外兩個變種 Common Lisp 和 Clojure 的誕生要晚得多。
SQL 是 Structured Query Language 的縮寫,它是操作關係型資料庫的標準化計算機語言。
C++ 和 C 語言同名,但是包含了 class(類)這個概念。C++ 語言正式命名為 C++ 是在 1983 年。
Ada 是一種面向對象的程式語言,從 20 世紀 80 年代早期開始開發,並於 1983 年發布正式版本,即 Ada 1983。「Ada」這個名字用來紀念 Ada Lovelace,她被認為很大可能是歷史上第一位女性計算機科學家。
Ada 通常用於實時系統和嵌入式系統,這些系統要求高度的可靠性和安全性。
Common Lisp 通常簡寫為 CL,是由 ANSI 標準化了的 Lisp 語言規範。
MATLAB 是「Matrix Laboratory」的縮寫,它是一種腳本語言,用於數值計算。MATLAB 在同名的開發環境中編寫。
Eiffel 是一種圍繞一種設計方法而設計的面向對象程式語言。Eiffel 基於當今非常流行的概念,如契約編程或重用等。
Objective-C 是一種反身式的面向對象程式語言。它是 C 程式語言的擴展,就像 C++ 一樣,但是和 C++ 又不一樣,特別是在動態消息分發或者動態加載方面與 C++ 很不一樣。
目前,它主要用於蘋果作業系統macOS 及其衍生的 iOS 系統中。
Erlang 這種程式語言支持多種範式:並發、實時和分布式。它獨具特色的層是基於參與者(actor)模型的,具有容錯和熱代碼更新功能,允許開發具有極高可用性的應用程式。
Perl 程式語言,是為更容易地處理基於文本的信息而創建的。Perl 是一種解釋性語言,它受到了 C 語言的控制結構和列印結構的啟發,同時也受到了 shell 腳本語言的啟發。
Caml 是 Categorical Abstract Machine Language 的縮寫,它是一種面向程序安全性和可靠性的通用程式語言。Caml 支持函數式、命令式和面向對象的編程風格。
Tcl 是 Tool Command Language 的縮寫,它是一種腳本語言。這種動態類型語言是跨平臺的、可擴展的、易於學習的,並且基於 12 條語法規則。Tcl 很容易與 C 程式語言交互。
Haskell 是一種函數式的程式語言,它基於 lambda 計算和組合邏輯。
Python 是一種解釋性程式語言,具有多範式、多平臺的特點。Python 支持結構化、函數式和面向對象的命令式編程。
近年, Python 非常流行,甚至在 2019 年成為最受歡迎的語言之一。
Visual Basic,簡稱為 VB,它是第三代事件程式語言,也是微軟創建的集成開發環境,用於其 COM 編程模型。
Lua 是一種反身式、命令式腳本語言,用於嵌入在其他應用程式中來擴展這些應用程式的功能。
由於對 Smalltalk 和 Lisp 的開發經歷感到失望,Yukihiro Matsumoto 於 1993 年開始用 Emacs 設計 Ruby 語言。
他在 1995 年發布了該語言的第一個版本。Ruby 是一種解釋性的、面向對象的多範式語言。
Java 是 一種面向對象的程式語言,它至今仍然是工業界最受歡迎和使用最多的語言。
你能夠使用 Java 做任何事情,從客戶端到 Web 應用無所不包;而且 Google 選擇 Java,用在 Android 作業系統上作為開發應用程式的語言,這又進一步擴展了 Java 能力。
JavaScript 是一種腳本語言,主要用於 Web 開發,但現在可以用於服務端,比如 Node.js。JavaScript 是面向原型的程式語言,這種語言裡的函數是第一類對象。
PHP 主要用於 Web,它是一種面向對象的命令式語言,能夠像其他任何解釋性語言一樣在本地運行。
Rebol 是一種高級腳本程式語言,建立在指代語義的基礎上,自稱為「消息傳遞語言」。
ActionScript 這種程式語言,可用於客戶端應用程式(例如 Adobe Flash 和 Adobe Flex)和伺服器(Flash 媒體伺服器,JRun 和 Macromedia Generator)。ActionScript 現在作為一種腳本語言,用於 Unity 圖形引擎之中。
D 是一種命令式、面向對象的多範式程式語言,用於系統編程。D 的發明受到許多語言的啟發,包括 C++、Java 和 Eiffel。儘管 D 語言有很多優點,但是它從未獲得其發明者所期望的成功。
C# 是微軟於 2000 年與 Sun 就 Java 語言發生爭執後創建的。C# 是一種面向對象的程式語言,用於 Microsoft.Net 平臺上的開發工作,該語言派生自 C++ 和 Java。
Groovy 是一種面向對象的程式語言,運行在 Java 平臺上。Groovy 是這個平臺的 Java 語言的替代品,受到了 Python 、 Ruby 或者是 Smalltalk 語言的啟發。
Scala 是一種多範式程式語言,被設計用於簡潔優雅地表示通用編程模型。Scala 採用靜態類型,集成了面向對象和函數式編程範式。
F# 是一種函數式、命令式和面向對象的程式語言,由微軟為其.NET 平臺而開發。F# 從 OCaml 程式語言衍生而來,而且與 OCaml 具有高度兼容性。這兩種程式語言與 ML 語言屬於同一種語系。
Windows PowerShell - 2006 年
Windows PowersShell 是由微軟開發的一套軟體,它包含了命令行接口、一種稱作 PowerShell 的腳本語言和一個開發包。從 Window 7 開始,PowerShell 就作為微軟作業系統的標配。
Clojure 是一種可編譯的、跨平臺的函數式程式語言,用於創建安全的和易分布式運行的程序。Clojure 是 Lisp 語言的 3 大變種之一。Clojure 可通過轉換,在 JVM、CLR、瀏覽器和 Node.js 上使用。
Go 是一種可編譯的、並髮式程式語言,受到了 C 和 Pascal 語言的啟發而發明的。這種語言是由谷歌開發的,它是從 Robert Griesemer、Rob Pike 和 Ken Thompson 最初提出的概念發展而來的。
Rust 是由 Mozilla 開發的一種多範式、可編譯的程式語言。Rust 被設計成為「安全的、並發的、實用的語言」,同時在某些方面支持純函數式編程風格、參與者模型、過程式編程以及面向對象編程。Rust 通常被描述為 C++ 的潛在繼承者之一。
art 是谷歌開發的一種 Web 程式語言。它最初的目的是要替換 JavaScript。目前,Dart 還沒有達到它的目標,開發人員更喜歡將 Dart 轉換成與現代所有瀏覽器兼容的 JavaScript 代碼,Dart 還可以用於服務端編程。
Kotlin 是一種面向對象的、函數式程式語言,它具有靜態類型,允許針對 Java 虛擬機、JavaScript 和本地的多種平臺進行編譯(多虧了 LLVM)。2017 年,谷歌繼 Java 之後,把 Kotlin 作為 Android 官方支持的第二種程式語言。
Ceylon 是由Red Hat創建出來的,它是一種高級開源程式語言,具有強類型和靜態類型。它的語法和 Java 的很像。它能編譯為 Java 字節碼或者 JavaScript。
TypeScript 是由微軟開發的免費開源的程式語言,旨在提升 JavaScript 代碼的開發效率,保證 JavaScript 代碼的安全性。TypeScript 語言是 JavaScript 的一個超集,被轉換成 JavaScript,這樣任何 Web 瀏覽器或 JavaScript 引擎都可以解釋它。
Julia 是一種高級的、強大的和動態的程式語言,用於科學計算,熟悉其他開發環境(如 MATLAB、R 或者 Python)的用戶應該很了解 Julia 的語法。
Swift 是一種可編譯的、多範式的對象程式語言,其設計目標是簡單、高性能和安全。它是由蘋果公司開發的開源項目,這使得它與 Objective-C 一起成為了開發移動 iOS 應用程式的解決方案。