計算機編程的歷史演進:用 50 種編程語言寫“Hello,World!”程序

五嘎子 4年前發布 | 4K 次閱讀 計算機 編程語言 編程

 

  這是一個計算機世界的編程時光之旅

  對很多人來說,每當學習一門新的編程語言,寫下的第一行代碼可能都是“Hello,World!“。因此,”Hello,World!" 已經成為一段經典程序。

  在職業生涯中,所有程序員都至少完成過一段“Hello,World!" 程序。在成長中,程序員通常會使用多種編程語言,大部分程序員甚至實現過十幾種”Hello,World!”版本。

  甚至還出現了一種衡量標準,叫做 TTHW,用于評估程序員用新的編程語言實現一段“Hello, World!”程序并成功運行所花費的時間 。

  但現在,如果我問你,你可以用多少種不同的編程語言編寫“Hello,World!”,你會給出怎樣的回答?為幫你回憶起來,我會向你展示怎樣用 50 種不同的編程語言編寫“Hello,World!”程序。這樣,也能讓你看到計算機編程語言多年的歷史演進。

  1. 匯編語言 - 1949 年

  匯編語言創建于 1949 年,本文中,我會向你展示一段經典的匯編程序,這是為 Intel 8080 平臺的 8 位處理器編寫的,這款處理器于 1974 年 4 月下旬發布。

  2. Fortran - 1957 年

  Fortran 編程語言是 Formula Translation 的衍生版本。它是一種可編譯的通用命令式編程語言,特別適用于數值和科學計算。Fortran 語言創建于 1957 年,以下是使用該語言第一個版本編寫的“Hello, World!”程序:

  在 Fortran 90 或者 95 版本中,“Hello, World!”程序可以寫為如下這樣:

  3. Lisp - 1958 年

  Lisp 是最古老的編程語言家族,它既是命令式語言,又是函數式語言。Lisp 最初創建于 1958 年,當時是作為展示程序的實用模型發布的。在 20 世紀 70 年代和 80 年代,Lisp 家族成為人工智能領域非常受歡迎的語言。

  以下是用 Lisp 編寫的“Hello, World!”程序:

  4. Cobol - 1959 年

  Cobol 正式創建于 1959 年,所以 Cobol 編程語言在 2019 年剛剛度過它的 60 周年紀念日。Cobol 是 COmmon Business Oriented Language 的縮寫,人們發明它是希望將其作為業務編程應用的通用語言。2019 年,Cobol 在銀行業和保險業中仍然應用廣泛。

  以下是用 Cobol 編寫的“Hello, World!”程序:

  5. BASIC - 1964 年

  BASIC 是 Beginner’s All-purpose Symbolic Instruction 的縮寫,它是一種高級編程語言,這種語言的主要目標是容易使用,正如以下“Hello, World!”程序所證實的這樣:

  6. Logo - 1968 年

  Logo 語言很像 Lisp 語言,但比 Lisp 更容易使用,這正是 Logo 被發明出來的原因,正如人們通常所認為的那樣,Logo 是“沒有圓括號的 Lisp 語言”。

  7. B - 1969 年

  B 語言發明于 1969 年,這種語言現在已經被廢棄,但它曾扮演了一個重要角色,它極大地促進了 C 語言的誕生,而現在 C 語言正被廣泛使用著。

  8. Pascal - 1970 年

  Pascal 是一種命令式編程語言,創建于 1970 年。它是為教學而設計的,其特點是語法清晰、嚴謹,有助于生成良好的程序結構。

  Turbo Pascal 創建于 1983 年,它是為 Pascal 編程語言打造的集成開發環境。Turbo Pascal 在 20 世紀 80 年代和 90 年代取得巨大成功。

  以下是 Turbo Pascal 中的“Hello, World!”程序:

  9. Forth - 1970 年

  Forth 是一種基于命令式堆棧的計算機編程語言,由 Charles H. Moore 在 20 世紀 60 年代創建,但是,它的第一個主要版本是在 1970 年發布的。這門語言在 1994 年被 ANSI 標準化,并且在 1997 年被 ISO 采用。為這門語言送上美好的祝福吧,2014 年它甚至迎來了一個新版本,也就是 Forth 2012。

  以下是 Forth 1970 版本的“Hello, World!”程序:

  10. C - 1972 年

  貝爾實驗室的 Dennis Ritchie 和 Ken Thompson 在 1972 年開發 UNIX 時發明了 C 編程語言。Ken Thompson 之前已經發明了 B 語言。Dennis Ritchie 受到了 B 語言的啟發,決定發明一種新的語言,即 C 語言,在其中引入了類型概念。

  11. Smalltalk - 1972 年

  Smalltalk 是一種面向對象的,具有反身性和動態類型的編程語言,發明于 1972 年,當時主要是受到 Lisp 語言的啟發。Smalltalk 是最早一批具有集成開發環境的編程語言之一。

  12. Prolog - 1972 年

  Prolog 是一種與人工智能和計算語言學相關的邏輯編程語言。Prolog 創建于 1972 年。

  13. ML - 1973 年

  ML 是 Meta Language 的縮寫,它是基于 Lisp 的函數式編程語言。ML 通常被認為是帶有類型的 Lisp 語言。

  14. Scheme - 1975 年

  Scheme 創建于 1975 年,它是一種支持函數式和命令式的多范式編程語言。它是 Lisp 語言的 3 大變種之一,另外兩個變種 Common Lisp 和 Clojure 的誕生要晚得多。

  15. SQL - 1978 年

  SQL 是 Structured Query Language 的縮寫,它是操作關系型數據庫的標準化計算機語言。盡管它不是用來創建簡單的“Hello, World!”程序的,但是,照下面這樣創建一個 SQL 程序卻是非常有趣。

  16. C++ - 1980 年

  C++ 最初由 Bjarne Stroustrup 創建于 1980 年,和 C 語言同名,但是包含了 class(類)這個概念。C++ 語言正式命名為 C++ 是在 1983 年。

  這門編程語言現在被 ISO 標準化了,在工業界以及其他領域被廣泛使用。

  Ada 是一種面向對象的編程語言,從 20 世紀 80 年代早期開始開發,并于 1983 年發布正式版本,即 Ada 1983。“Ada”這個名字用來紀念 Ada Lovelace,她被認為很大可能是歷史上第一位女性計算機科學家。

  Ada 通常用于實時系統和嵌入式系統,這些系統要求高度的可靠性和安全性。

  18. Common Lisp - 1984 年

  Common Lisp 通常簡寫為 CL,是由 ANSI 標準化了的 Lisp 語言規范。

  19. MATLAB - 1984 年

  MATLAB 是“Matrix Laboratory”的縮寫,它是一種腳本語言,用于數值計算。MATLAB 在同名的開發環境中編寫。

  20. Eiffel - 1985 年

  Eiffel 是一種圍繞一種設計方法而設計的面向對象編程語言。Eiffel 基于當今非常流行的概念,如契約編程或重用等。

  21. Objective-C - 1986 年

  Objective-C 是一種反身式的面向對象編程語言。它是 C 編程語言的擴展,就像 C++ 一樣,但是和 C++ 又不一樣,特別是在動態消息分發或者動態加載方面與 C++ 很不一樣。

  當今,它主要用于蘋果操作系統:macOS 及其衍生的 iOS 系統中。

  22. Erlang - 1986 年

  Erlang 這種編程語言支持多種范式:并發、實時和分布式。它獨具特色的層是基于參與者(actor)模型的,具有容錯和熱代碼更新功能,允許開發具有極高可用性的應用程序。

  23. Perl - 1987 年

  Perl 編程語言由 Larry Wall 創建于 1987 年,是為更容易地處理基于文本的信息而創建的。Perl 是一種解釋性語言,它受到了 C 語言的控制結構和打印結構的啟發,同時也受到了 shell 腳本語言的啟發。

  24. Caml - 1987 年

  Caml 是 Categorical Abstract Machine Language 的縮寫,它是一種面向程序安全性和可靠性的通用編程語言。Caml 支持函數式、命令式和面向對象的編程風格。它也是一種非常獨特的語言。

  25. Tcl - 1988 年

  Tcl 是 Tool Command Language 的縮寫,它是一種腳本語言,由 John Ousterhout 在 1988 年開發出來的。這種動態類型語言是跨平臺的、可擴展的、易于學習的,并且基于 12 條語法規則。Tcl 很容易與 C 編程語言交互。

  在 1990 年,John Ousterhout 開發出了 Tcl 的一個擴展,叫做 Tk,它是一個用于創建可移植圖形接口的代碼庫。現在,當我們談起 Tcl 時,我們更多地是在談論 Tcl/Tk 這個組合。

  26. Haskell - 1990 年

  Haskell 是一種函數式的編程語言,它基于 lambda 計算和組合邏輯。

  27. Python - 1991 年

  Python 是一種解釋性編程語言,具有多范式、多平臺的特點。Python 支持結構化、函數式和面向對象的命令式編程。

  這些年來, Python 變得非常流行,甚至在 2019 年成為最受歡迎的語言之一。

  以下是用 Python 3.0 或更高版本編寫的“Hello, World!”程序:

  28. Visual Basic - 1991 年

  Visual Basic,簡稱為 VB,它是第三代事件編程語言,也是微軟創建的集成開發環境,用于其 COM 編程模型。

  29. Lua - 1993 年

  Lua 創建于 1993 年,它是一種反身式、命令式腳本語言,用于嵌入在其他應用程序中來擴展這些應用程序的功能。

  30. Ruby - 1995 年

  由于對 Smalltalk 和 Lisp 的開發經歷感到失望,Yukihiro Matsumoto 于 1993 年開始用 Emacs 設計 Ruby 語言。

  他在 1995 年發布了該語言的第一個版本。Ruby 是一種解釋性的、面向對象的多范式語言。

  31. Java - 1995 年

  Java 是 James Gosling 在 1995 年創建的一種面向對象的編程語言,它至今仍然是工業界最受歡迎和使用最多的語言。

  你能夠使用 Java 做任何事情,從客戶端到 Web 應用無所不包;而且 Google 選擇 Java,用在 Android 操作系統上作為開發應用程序的語言,這又進一步擴展了 Java 能力。

  32. JavaScript - 1995 年

  JavaScript 是一種腳本語言,主要用于 Web 開發,但現在可以用于服務端,比如 Node.js。JavaScript 是面向原型的編程語言,這種語言里的函數是第一類對象。

  33. PHP - 1995 年

  1995 年絕對是編程語言非常重要的一年,因為在 Java 和 JavaScript 之后,PHP 也在這一年被發明出來。PHP 主要用于 Web,它是一種面向對象的命令式語言,能夠像其他任何解釋性語言一樣在本地運行。

  34. Rebol - 1997 年

  Rebol 是一種高級腳本編程語言,建立在指代語義的基礎上,自稱為“消息傳遞語言”。以下是用 Rebol 編寫的“Hello, World!”程序:

  35. ActionScript - 1998 年

  ActionScript 這種編程語言,可用于客戶端應用程序(例如 Adobe Flash 和 Adobe Flex)和服務器(Flash 媒體服務器,JRun 和 Macromedia Generator)。ActionScript 現在作為一種腳本語言,用于 Unity 圖形引擎之中。

  36. D - 1999 年

  D 是一種命令式、面向對象的多范式編程語言,用于系統編程。D 的發明受到許多語言的啟發,包括 C++、Java 和 Eiffel。盡管 D 語言有很多優點,但是它從未獲得其發明者所期望的成功。

  37. C# - 2000 年

  C# 是微軟于 2000 年與 Sun 就 Java 語言發生爭執后創建的。C# 是一種面向對象的編程語言,用于 Microsoft.Net 平臺上的開發工作。該語言派生自 C++ 和 Java,使用了它們的一些通用語法和其他許多概念。

  C# 也可以用于開發 ASP.Net 平臺上的 Web 應用程序。

  38. Groovy - 2003 年

  Groovy 是一種面向對象的編程語言,運行在 Java 平臺上。Groovy 是這個平臺的 Java 語言的替代品,受到了 Python 、 Ruby 或者是 Smalltalk 語言的啟發。

  39. Scala - 2003 年

  Scala 是一種多范式編程語言,被設計用于簡潔優雅地表示通用編程模型。Scala 采用靜態類型,集成了面向對象和函數式編程范式。

  40. F# - 2005

  F# 是一種函數式、命令式和面向對象的編程語言,由微軟為其 .NET 平臺而開發。F# 從 OCaml 編程語言衍生而來,而且與 OCaml 具有高度兼容性。這兩種編程語言與 ML 語言屬于同一種語系。

  41. Windows PowerShell - 2006 年

  Windows PowersShell 是由微軟開發的一套軟件,它包含了命令行接口、一種稱作 PowerShell 的腳本語言和一個開發包。從 Window 7 開始,PowerShell 就作為微軟操作系統的標配。

  42. Clojure - 2007 年

  Clojure 是一種可編譯的、跨平臺的函數式編程語言,用于創建安全的和易分布式運行的程序。Clojure 是 Lisp 語言的 3 大變種之一。Clojure 可轉換為 Java 字節碼、JavaScript 代碼和 .NET 字節碼。因此,Clojure 可以在 JVM、CLR、瀏覽器和 Node.js 上使用。

  43. Go - 2009 年

  Go 是一種可編譯的、并發式編程語言,受到了 C 和 Pascal 語言的啟發而發明的。這種語言是由谷歌開發的,它是從 Robert Griesemer、Rob Pike 和 Ken Thompson 最初提出的概念發展而來的。這位 Ken Thompson 正是在 1969 年創造了 B 語言的那位 Ken Thompson!

  44. Rust - 2010

  Rust 是由 Mozilla 開發的一種多范式、可編譯的編程語言。Rust 被設計成為“安全的、并發的、實用的語言”,同時在某些方面支持純函數式編程風格、參與者模型、過程式編程以及面向對象編程。Rust 通常被描述為 C++ 的潛在繼承者之一。

  45. Dart - 2011 年

  Dart 是谷歌開發的一種 Web 編程語言。它最初的目的是要替換 JavaScript。目前,Dart 還沒有達到它的目標,開發人員更喜歡將 Dart 轉換成與現代所有瀏覽器兼容的 JavaScript 代碼,Dart 還可以用于服務端編程。

  Dart 是 Flutter 用于開發移動應用程序的語言。

  46. Kotlin - 2011 年

  Kotlin 是一種面向對象的、函數式編程語言,它具有靜態類型,允許針對 Java 虛擬機、JavaScript 和本地的多種平臺進行編譯(多虧了 LLVM)。2017 年,谷歌繼 Java 之后,把 Kotlin 作為 Android 官方支持的第二種編程語言。

  47. Ceylon - 2011 年

  Ceylon 是由紅帽(Red Hat)創建出來的,它是一種高級開源編程語言,具有強類型和靜態類型。它的語法和 Java 的很像。它能編譯為 Java 字節碼或者 JavaScript。

  48. TypeScript - 2012 年

  TypeScript 是由微軟開發的免費開源的編程語言,旨在提升 JavaScript 代碼的開發效率,保證 JavaScript 代碼的安全性。TypeScript 語言是 JavaScript 的一個超集,它被轉換成 JavaScript,這樣任何 Web 瀏覽器或 JavaScript 引擎都可以解釋它。

  49. Julia - 2012 年

  Julia 是一種高級的、強大的和動態的編程語言,用于科學計算,熟悉其他開發環境(如 MATLAB、R 或者 Python)的用戶應該很了解 Julia 的語法。

  50. Swift - 2014 年

  Swift 是一種可編譯的、多范式的對象編程語言,其設計目標是簡單、高性能和安全。它是由蘋果公司開發的開源項目,這使得它與 Objective-C 一起成為了開發移動 iOS 應用程序的解決方案。

  總結

  這次在計算機編程語言世界里進行的跨度達 70 年的時光旅行,向你介紹了用 50 種不同語言編寫的“Hello, World!”程序。

  以上編程語言清單只占到人們發明的所有編程語言的一小部分,我邀請你在評論區分享你最喜歡的語言所編寫的“Hello, World!”程序,但請不要和上面清單上的語言重復哦。

 本文由用戶 五嘎子 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  轉載自:https://mp.weixin.qq.com/s/yDaIuhjhjqL-Vtl1gwcd0A