编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!
當我們學習一門新的語言時,“Hello, World!“通常是我們所寫的第一個程序。
因此,所有程序員在職業生涯中至少完成了“Hello, World!“程序員在職業生涯中通常使用一種以上的編程語言,他們中的大多數甚至至少已經實現了十幾種。
甚至有一個名為TTHW的指標來衡量一個程序員接觸一門新的編程語言時,成功寫出“Hello, World!“并運行所需要的時間。
然而,如果今天我問你,你可以寫多少種不同的編程語言,你寫一個"Hello word”
為了幫助你,刷新你的記憶力,我建議在計算機編程世界中走一段短暫的穿越時間的旅程。為此,我將向您展示"你好,世界!這將允許您了解計算機編程語言隨時間的演變。
1. 匯編語言(Assembly Language) - 1949
匯編語言誕生于1949年。本文我向你展示的是適用于Intel 8080的8位處理器的,發布于1974年4月的匯編語言經典代碼。
bdos equ 0005H ; BDOS entry point start: mvi c,9 ; BDOS function: output stringlxi d,msg$ ; address of msgcall bdosret ; return to CCPmsg$: db 'Hello, world!$' end start2. Fortran - 1957
Fortran是Formula Translation的衍生物,這是一種通用的交互式編程語言,特別適合于數值和科學計算。Fortran創建于1957年,下面是它的第一個“Hello, World!”程序:
PROGRAM Hello WRITE (*,*) 'Hello, World!' STOP ENDFortran 90 或 95的寫法有所不同:
PROGRAM Hello WRITE (*,*) 'Hello, World!' END PROGRAM Hello3. Lisp - 1958
Lisp是最古老的編程語言系列,它既是交互式的又是函數式的。1958年,Lisp作為一種實用的演示程序模型被創建出來,但是直到1970和1980年代,Lisp才成為人工智能世界中非常流行的語言。
下面是Lisp的“Hello, World!”程序:
(write-line "Hello, World!")4. Cobol - 1959
Cobol語言于1959年正式創立,并且在2019年剛剛慶祝過創立60周年。Cobol表示面向通用業務的語言(COmmon Business Oriented Language),目標是成為編程業務應用程序的通用語言。在2019年,Cobol仍被廣泛應用于銀行和保險的相關系統中。
下面是Cobol的“Hello, World!”程序:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION.DISPLAY "Hello, World!"STOP RUN.5. BASIC - 1964
BASIC是Beginner’s All-purpose Symbolic Instruction Code(初學者通用符號說明代碼)的縮寫。它是一門高級編程語言,其主要目標在于易用。它的“Hello, World!”程序如下:
PRINT "Hello, World!" END6. Logo - 1968
Logo旨在成為易用的Lisp,通常被稱為“Lisp without brackets”,Logs并不是面向對象編程語言,但它可以幫助你入門計算機編程。
print [Hello World !]7. B - 1969
B語言創建于1969年,它現在已經過時了,但它的計算機編程語言的發展史上發揮著重要的作用。因為正是B語言啟發了現在廣泛應用的C語言。
main() {putstr("Hello world!*n");return(0); }是不是語法層面就非常像C語言了。
8. Pascal - 1970
Pascal是一種交互式編程語言,它創建于1970年。它被設計出來主要出于教學目的,因為這個語言的特點是清晰,且嚴格的語法有助于良好的程序結構。
beginwriteln('Hello, World!') end.Turbo Pascal是Pascal語言的集成開發環境,在1983年被創建,并在1980年代和1990年代取得了巨大的成功。
Turbo Pascal的“Hello, World!“程序如下:
program HelloWorld(output); beginwriteln('Hello, World!');readln; end.9. Forth - 1970
Forth是一門基于棧的交互式編程語言,由Charles H. Moore在1960年代發明。但它的第一個大版本是在1970年發布的。它于1994年被ANSI標準化,并于1997年被ISO采納。2014年的Forth2012為語言的發展又煥發了生機。
下面是1970年版本Forth語言的“Hello, World!” 程序:
: HELLO ( -- ) ." Hello, World!" CR ;HELLO10. C - 1972
1972年的貝爾實驗室中,Dennis Ritchie和Ken Thompson兩位大佬為了開發UNIX發明了C語言。Ken Thompson曾開發過B語言,Dennis Ritchie決定通過對B語言添加類型來創造C語言。所以說B語言為C語言提供了靈感。
#include <stdio.h>int main(void) {printf("Hello, World!\n");return 0; }11. Smalltalk - 1972
Smalltalk受到Lisp的啟發,它是一門面向對象的,動態類型的編程語言,它被發明于1972年。Smalltalk是最早具有集成開發環境的編程語言之一。
Transcript show: 'Hello, world!'; cr.12. Prolog - 1972
Prolog是與人工智能和計算語言學相關的邏輯編程語言,被創建于1972年。
:- write('Hello, World!'),nl.13. ML - 1973
ML是Meta Language的簡稱,是一種以Lisp為基礎的函數型編程語言。ML通常以Lisp為特征,具有類型。
print "Hello, World!\n";14. Scheme - 1975
Scheme創建于1975年,是一種多范式編程語言,支持函數式和交互式編程。它是Lisp三種重要的變種之一,由Common Lisp和Clojure共同開發。
(display "Hello, World!") (newline)15. SQL - 1978
SQL即結構化查詢語言,是用于操作關系數據庫的標準計算機編程語言。雖然在設計時不能創建簡單的“Hello, World!“程序,但我想寫出來應該是一個有趣的程序,如果你想學習SQL,這里有一些推薦課程。
CREATE TABLE message (text char(15)); INSERT INTO message (text) VALUES ('Hello, World!'); SELECT text FROM message; DROP TABLE message;16. C++ - 1980
C++是由Bjarne Stroustrup在1980年創建,他為C語言增加了類,在1983年得名C++。現在C++已經通過了ISO標準化,并廣泛應用于工業和其他領域。如果你想要學習C++,這里有一些推薦課程。
#include <iostream> using namespace std;int main() {cout << "Hello, World!" << endl;return 0; }17. Ada - 1983
Ada是一種面向對象編程語言,其開發始于1980年初,并在1983年完成發布。之所以叫做Ada是為了紀念Ada Lovelace,這可能是歷史上第一位女性計算機科學家。
Ada通常用于需要很高可靠性和安全性的實時系統和嵌入式系統中。
with Ada.Text_IO; procedure Hello is beginAda.Text_IO.Put_Line ("Hello, World!"); end Hello;18. Common Lisp - 1984
Common Lisp,通常縮寫為CL,是ANSI標準化的Lisp語言規范。
(princ "Hello, World!")19. MATLAB - 1984
MATLAB是一種用于數值計算的腳本語言,被用于“Matrix Laboratory”。MATLAB是由同名的開發環境模擬的。
disp('Hello, World!')20. Eiffel - 1985
Eiffel是一種圍繞設計方法設計的面向對象編程語言,它具有當下非常流行的概念,例如“按約定編程”或復用。
classHELLO_WORLD createmake featuremakedoprint ("Hello, world!%N")end end21. Objective-C - 1986
Objective-C是一種面向對象編程語言,它像C++一樣,是C語言的擴展,而與C++的區別在于它的動態消息分發或動態加載。
現在,它主要用于Apple操作系統:macOS以及iOS的衍生品。
#import <Foundation/Foundation.h>int main() {@autoreleasepool {NSLog(@"Hello, World!");} }22. Erlang - 1986
Erlang是一種支持多種范式的編程語言:并發、實時、分布式。它基于Actor Model,具有容錯能力以及代碼熱更新能力,所以Erlang開發的應用可用性通常很高。
io:format("Hello world!~n").23. Perl - 1987
Perl是由Larry Wall在1987年創建的編程語言,它可以輕松處理基于文本的消息。Perl是一種解釋型語言,它受C語言的控制和打印結構以及shell腳本的啟發。
print "Hello, World!\n";24. Caml - 1987
Caml代表Categorical Abstract Machine Language(分類抽象機器語言),是一種通用的編程語言,旨在提高程序的安全性和可靠性。Caml是一種致力于函數式、交互式和面向對象風格,這也是一種非常獨特的語言。
print_string "Hello, World!\n";;25. Tcl - 1988
Tool Command Language(工具命令行語言),是John Ousterhout在1988年開發的一種腳本語言。它是一種動態類型語言,具有跨平臺、可擴展、易學習等特點。并且可以輕松和C語言進行交互。
在1990年, John Ousterhout又開發了Tcl的擴展——Tk,這是一個可移植的用于創建圖形界面的庫。我們今天所討論的Tcl,多數情況是指Tcl和Tk的組合。
puts "Hello, World!"Haskell是一種基于lambda計算和組合邏輯的函數式編程語言。
27. Python - 1991
相信大家對Python都比較熟悉,即使沒有過,基本上也都聽說過。它是一門解釋型語言,可以跨平臺。Python支持結構體,函數和面向對象的交互式編程。隨著AI的發展,近幾年Python的熱度也是持續上漲。
如果你想學Python,可以參考這份課程推薦。
下面是Python3.0以后版本“Hello, World“程序的寫法。
print("Hello, World!")1
28. Visual Basic - 1991
Visual Basic,通常簡稱為VB,是第三代事件編程語言。微軟也為其創建了集成開發環境。
Public Sub Main()Debug.Print "Hello, World!" End Sub29. Lua - 1993
Lua創建于1993年,是交互式編程語言。它專注于嵌入其他應用程序以對其進行擴展。
譯者注:我們之前介紹過Lua在Redis中的應用,不知道你是否還記得。
print("Hello, World!")30. Ruby - 1995
由于對Smalltalk和Lisp的開發感到沮喪,Yukihiro Matsumoto從1993年起開始在Emacs上設計Ruby語言,并于1995年發布了第一版。Ruby是解釋型、面向對象、多范式的編程語言。如果你感興趣,可以看一下這些課程。
puts 'Hello, World!'31. Java - 1995
Java是James Gosling(我們常說的高司令)在1995年時創建的一門面向對象編程語言,到目前為止,Java仍然是業界最流行、使用最廣泛的語言。使用Java可以開發從客戶端到服務端到各種應用,Google選擇Java作為Android開發語言這件事使得Java得到了更進一步的發展。想要學習Java的話可以關注這幾門課程。
class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");} }32. JavaScript - 1995
JavaScript是一門主要用于開發Web頁面的腳本語言,但現在也可以用作服務端開發,如Nodejs。JS是一門面向過程的語言,推薦課程在這里。
document.write('Hello, World!');33. PHP - 1995
1995年對于編程語言而言絕對是非常重要的一年,在Java和JavaScript之后,PHP也于同年誕生。PHP是一門解釋型的面向對象編程語言。
<? echo "Hello, World!" ?>34. Rebol - 1997
Rebol是一種高級腳本語言,自稱“消息傳遞語言”。
print "Hello, World!"35. ActionScript — 1998
ActionScript可以用于開發客戶端應用程序,如Adobe Flash和Adobe Flex;也可以用于服務端開發(Flash media server, JRun, Macromedia Generator)。現在,ActionScript在Unity圖形引擎中被當作腳本語言使用。
package {public class HelloWorld {public function HelloWorld() {trace("Hello World !");}} }36. D - 1999
D語言是一門面向對象編程語言,它的設計借鑒于許多語言,包括C++、Java和Eiffel。D語言是一門優秀的語言,但是一直都沒有像它的創造者期望的那樣獲得成功。
import std.stdio;void main () {writefln("Hello, World!"); }37. C# - 2000
2000年,微軟就Java語言與Sun公司發生爭議,隨后便創造了C#,C#是一種被設計為在Microsoft.NET平臺上開發的面向對象的編程語言,它是由C++和Java派生而來,使用了許多它們的通用特性和概念。C#也可以用來在ASP.NET平臺上開發Web應用。C#課程自取。
using System;internal static class HelloWorld {private static void Main() {Console.WriteLine("Hello, World!");} }38. Groovy - 2003
Groovy是運行在Java虛擬機上的一門面向對象編程語言,它是Java的超集,其設計受到了Python、Ruby和Smalltalk的啟發。這里有一些學習書籍可以參考。
println "Hello, World!"39. Scala - 2003
Scala是一種多范式編程語言,旨在以簡潔、優雅的形式表達常見的編程模型。Scala通過靜態類型集成了面向對象和函數式編程的范例。Scala課程。
object HelloWorld extends App {println("Hello, World!") }40. F# - 2005
F#是一門在.NET平臺上開發的函數式、面向對象編程語言。F#源自與它高度兼容的OCaml,它們都屬于ML語言這一系列的。
printfn "Hello, World!"41. Windows PowerShell - 2006
Windows PowerShell是Microsoft開發的軟件套件,包括命令行界面,稱為PowerShell的腳本語言和開發套件。 從Windows 7開始,PowerShell已作為標準配置提供。
echo "Hello, World!"42. Clojure - 2007
Clojure是編譯型、跨平臺的函數式編程語言,它可以安全、簡單的開發分布式系統。Clojure是Lisp的三種主要方言之一。Clojure可以編譯成Java字節碼,JavaScript代碼或者是.NET字節碼,因此它可以運行在JVM、CLR和瀏覽器上。
(println "Hello, World!")43. Go - 2009
Go是一種編譯型的支持并發的編程語言,它的設計受到了C和Pascal的啟發,該語言由Google從Robert Griesemer,Rob Pike和Ken Thompson的最初概念開發而來。沒錯,這個Ken Thompson就是在1969年設計B語言的人!
package mainimport "fmt"func main() {fmt.Println("Hello, World!") }44. Rust - 2010
Rust是由Mozilla設計并開發的一門多范式的編譯型編程語言。Rust被設計為“安全、并發、實用的語言”,在某些方面支持函數式編程風格,面向對象編程。Rust被認為有望替代C++。
fn main() {println("Hello, World!"); }45. Dart - 2011
Dart是由Google開發的用于web應用的編程語言,它最初的目標是替代JavaScript。目前,Dart的目標還沒有實現,開發人員的首要任務是可以將Dart轉換成與所有現代瀏覽器兼容的JavaScript代碼。Dart也可以用于服務端的開發。
Dart最近的勢頭很猛,主要是因為它是手機端流行框架Flutter的開發語言。
main() {print('Hello, World!'); }46. Kotlin — 2011
Kotlin是一門面向對象編程語言,支持靜態類型,可以被編譯成字節碼運行在Java虛擬機上。也可以編譯成JavaScript語言,或者在其他多個平臺運行的語言。(感謝LLVM)2017年,Google使Kotlin成為繼Java之后Android正式支持的第二種語言。如果你想學Kotlin,可以參考這些課程。
fun main(args: Array<String>) {println("Hello, World!") }47. Ceylon - 2011
Ceylon是由“紅帽”創建的開源的強類型和靜態類型的高級編程語言,它的語法類似于Java。可以將其編譯成Java字節碼和JavaScript。
void hello() {print("Hello, World!"); }48. TypeScript - 2012
TypeScript是由微軟開發的免費、開源的編程語言。用于改善和保護JavaScript代碼的生產。TypeScript是JavaScript的超集,可以轉換為JavaScript,以便由任何Web瀏覽器或JavaScript引擎解釋。
console.log("Hello, World!");49. Julia - 2012
Julia是用于科學計算的高級、強大、動態的編程語言,使用的是其他類似開發環境(例如MATLAB、R或Python)的用戶熟悉的語法。
println("Hello, World!")50. Swift - 2014
Swift是一門編譯型、多范式的編程語言,它簡單、高效、安全。它由蘋果開發并開源。使其成為與Objective-C一樣開發iOS移動應用的解決方案。
print("Hello, World!")結論
我們的旅行到此就要告一段落了,我想你介紹了50種語言的“Hello, World!“程序的寫法。本文所提供的編程語言列表遠非詳盡。希望你能和我分享你喜歡的語言的“Hello, World!“程序。
譯注:
50年來的更新換代,有的語言還是一樣流行,相信你還記得第一個Hello word程序,每一個程序員都有一個世界和平的夢想“Hello world"。
你不會真的以為這叫你好世界吧。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秀肌肉?苹果考虑明年推出更高端的iPho
- 下一篇: 『设计模式』难道你现在还不知道:C/S和