50 种不同编程语言的“Hello World”,你知多少?
點(diǎn)擊上方“朱小廝的博客”,選擇“設(shè)為星標(biāo)”
后臺回復(fù)”加群“加入公眾號專屬技術(shù)群
歷經(jīng) 70 年,不斷出現(xiàn)的編程語言為開發(fā)者解決了哪些難題?其存在又有怎樣的特性?本文將以「Hello World」為例,花樣呈現(xiàn)?50 種編程語言。
原文:uee.me/cDuTW
當(dāng)我們學(xué)習(xí)一門編程語言時,都是從“Hello, World!”開始。所有程序員在其職業(yè)生涯中,都至少接觸過一個經(jīng)典的“Hello, World!” 程序。通常程序員會使用多種編程語言,多的甚至實(shí)現(xiàn)了十幾種。
還有一種稱為TTHW(Time to “Hello, World!”)的方法,來衡量程序員創(chuàng)建一個新的“Hello, World!”程序的時間。
你可以用多少種不同的語言編寫一個“Hello, World!”程序,你的答案是什么?
讓我們在計算機(jī)編程的世界里回顧一翻。我會向你展示50種不同編程語言編寫的“Hello, World!”程序。同時讓你看到計算機(jī)編程語言隨時間的演變。
1. 匯編語言- 1949
匯編語言創(chuàng)建于1949年。下面我介紹一種經(jīng)典的匯編語言,適用于Intel 8080 8位處理器,該處理器后來在1974年4月正式推出。
bdos????equ????0005H????;?BDOS?entry?pointstart:??mvi????c,9??????;?BDOS?function:?output?string
????????lxi????d,msg$???;?address?of?msg
????????call???bdos
????????ret?????????????;?return?to?CCP
msg$:???db????'Hello,?world!$'
end?????start
2. Fortran - 1957
Fortran編程語言是Formula Translation的派生。它是一種匯編命令式程序設(shè)計語言,特別適合于數(shù)值計算和科學(xué)計算。Fortran語言創(chuàng)建于1957年,用這種語言寫的“Hello, World!”:? ?
PROGRAM?HelloWRITE?(*,*)?'Hello,?World!'
STOP
END
在Fortran 90或95版本中,程序“Hello, World!”可以這樣寫:
PROGRAM?HelloWRITE?(*,*)?'Hello,?World!'
END?PROGRAM?Hello
3.Lisp - 1958
Lisp是最古老的命令式和函數(shù)式編程語言。它最初創(chuàng)建于1958年,在20世紀(jì)70年代和80年代,Lisp最終成為人工智能世界中非常流行的語言。??
(write-line?"Hello,?World!")4. Cobol - 1959
Cobol編程語言于1959年正式創(chuàng)建,2019年剛剛60周年。Cobol是COmmon Business Oriented Language的縮寫,它原本是一種用于編寫業(yè)務(wù)應(yīng)用程序的公共語言。到2019年,Cobol仍然廣泛應(yīng)用于銀行和保險領(lǐng)域。
IDENTIFICATION?DIVISION.PROGRAM-ID.?HELLO-WORLD.
PROCEDURE?DIVISION.
????DISPLAY?"Hello,?World!"
????STOP?RUN.
5. BASIC - 1964
BASIC是Beginner’s All-purpose Symbolic Instruction Code的首字母縮寫,它是一種高級編程語言,其主要特點(diǎn)是易用性。?
PRINT?"Hello,?World!"END
6. Logo - 1968
Logo是為了更容易使用Lisp語言,經(jīng)常被稱為“Lisp without brackets”。具體來說,Logo是一種面向?qū)ο蟮木幊陶Z言。??
print?[Hello?World?!]7. B - 1969
創(chuàng)建于1969年的B語言現(xiàn)在已經(jīng)過時了,但它仍然扮演著重要的角色,因?yàn)樗ぐl(fā)了C語言的靈感,而C語言至今仍被廣泛使用。??
main(){
??putstr("Hello?world!*n");
??return(0);
}
8. Pascal - 1970
Pascal是創(chuàng)建于1970年的命令式編程語言。它是為教學(xué)目的而設(shè)計的,其特點(diǎn)是語法清晰、嚴(yán)謹(jǐn),有助于良好的程序結(jié)構(gòu)。? ? ?
begin??writeln('Hello,?World!')
end.
Turbo Pascal創(chuàng)建于1983年,是Pascal編程語言的集成開發(fā)環(huán)境。它在20世紀(jì)80年代和90年代取得了巨大的成功。
program?HelloWorld(output);begin
??writeln('Hello,?World!');
??readln;
end.
9. Forth - 1970
Forth是一種基于命令式的計算機(jī)編程語言,由Charles H. Moore于20世紀(jì)60年代發(fā)明,其第一個版本于1970年發(fā)布。它在1994年被ANSI標(biāo)準(zhǔn)化,并在1997年被ISO采用。
:?HELLO??(?--?)??."?Hello,?World!"?CR?;??HELLO
10. C - 1972
C語言是1972年在貝爾實(shí)驗(yàn)室發(fā)明的,當(dāng)時丹尼斯·里奇(Dennis Ritchie)和肯·湯普森(Ken Thompson)正在開發(fā)UNIX。Ken Thompson之前開發(fā)了B語言。Dennis Ritchie決定從B語言中獲得靈感,通過添加類型來創(chuàng)建C語言。
#include?<stdio.h>int?main(void)?{
??printf("Hello,?World!\n");
??return?0;
}
?
11. Smalltalk - 1972
特別是受到Lisp語言的啟發(fā),Smalltalk是一種面向?qū)ο?、自反性和動態(tài)類型的編程語言,發(fā)明于1972年。Smalltalk是最早擁有集成開發(fā)環(huán)境的編程語言之一。
Transcript?show:?'Hello,?world!';?cr.12. Prolog - 1972
Prolog是一種與人工智能和計算語言學(xué)相關(guān)的邏輯編程語言。Prolog創(chuàng)建于1972年。
:-?write('Hello,?World!'),nl.13. ML - 1973
ML是一種基于Lisp的函數(shù)式編程語言。?? ??
print?"Hello,?World!\n";?
14. Scheme - 1975
Scheme創(chuàng)建于1975年,是一種支持函數(shù)式和命令式編程的多范式編程語言。這是基于Lisp的三大語言之一,另兩種是Common Lisp和最近創(chuàng)建的Clojure。?
(display?"Hello,?World!")?(newline)15. SQL - 1978
SQL(Structured Query Language)結(jié)構(gòu)化查詢語言,是一種用于操作關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)化計算機(jī)語言。它也可以設(shè)計“Hello, World!”。
CREATE?TABLE?message?(text?char(15));INSERT?INTO?message?(text)?VALUES?('Hello,?World!');
SELECT?text?FROM?message;
DROP?TABLE?message;
? ?
16. C++ - 1980
最初在1980年由Bjarne Stroustrup以C和類的名義創(chuàng)建,后來在1983年以c++語言命名。c++編程語言現(xiàn)在已被ISO標(biāo)準(zhǔn)化,并廣泛應(yīng)用于工業(yè)和其他領(lǐng)域。
#include?<iostream>using?namespace?std;
int?main()?{
??cout?<<?"Hello,?World!"?<<?endl;
??return?0;
}
17. Ada - 1983
Ada是一種面向?qū)ο蟮木幊陶Z言,于1980年初開發(fā),1983年正式發(fā)布。“Ada”這個名字是為了紀(jì)念A(yù)da Lovelace,她是有史以來第一位女計算機(jī)科學(xué)家。
Ada通常用于高可靠性和安全性的實(shí)時和嵌入式系統(tǒng)。
with?Ada.Text_IO;procedure?Hello?is
begin
???Ada.Text_IO.Put_Line?("Hello,?World!");
end?Hello;
18. Common Lisp - 1984
Common Lisp,通常縮寫為CL,是由ANSI標(biāo)準(zhǔn)化的Lisp語言規(guī)范。? ?
(princ?"Hello,?World!")?
19. MATLAB - 1984
MATLAB,用于“矩陣實(shí)驗(yàn)室”,是一種用于數(shù)值計算的腳本語言。MATLAB的開發(fā)環(huán)境也叫這個名字。
disp('Hello,?World!')20. Eiffel - 1985
Eiffel是一種面向?qū)ο蟮木幊陶Z言。Eiffel基于當(dāng)今非常流行的概念,如契約編程或重用。
class????HELLO_WORLD
create
????make
feature
????make
????????do
????????????print?("Hello,?world!%N")
????????end
end
21. Objective-C - 1986
Objective-C是一種自反的面向?qū)ο缶幊陶Z言。它是C編程語言的擴(kuò)展,與c++類似,但在動態(tài)消息分發(fā)或動態(tài)加載方面與c++有很大的不同。
如今,它主要用于蘋果的操作系統(tǒng):macOS及其iOS衍生產(chǎn)品。
#import?<Foundation/Foundation.h>int?main()?{
????@autoreleasepool?{
????????NSLog(@"Hello,?World!");
????}
}
22. Erlang - 1986
Erlang編程語言支持幾種范例:并發(fā)、實(shí)時、分布式。它基于actor模型,具有容錯和熱更新功能,能夠開發(fā)高可用性應(yīng)用程序。? ? ??
io:format("Hello?world!~n").23. Perl - 1987
Perl是Larry Wall在1987年創(chuàng)建的一種編程語言,用于輕松地處理基于文本的信息。Perl是一種解釋語言,它受到C語言的控制和打印結(jié)構(gòu)的啟發(fā),也受到shell腳本語言的啟發(fā)。? ? ??
print?"Hello,?World!\n";24. Caml - 1987
Caml是Categorical Abstract Machine Language的縮寫,是一種面向程序安全性和可靠性的通用編程語言。Caml支持函數(shù)式、命令式和面向?qū)ο蟮木幊田L(fēng)格。它也是一種非常獨(dú)特的語言。
print_string?"Hello,?World!\n";;25. Tcl - 1988
Tcl是工具命令語言,是John Ousterhout在1988年開發(fā)的一種腳本語言。這種動態(tài)類型語言是跨平臺的、可擴(kuò)展的、易于學(xué)習(xí)的,并且基于12條語法規(guī)則。Tcl很容易與C編程語言進(jìn)行交互。
1990年,John Ousterhout為Tcl開發(fā)了一個名為Tk的擴(kuò)展,這是一個用于創(chuàng)建可移植圖形界面的庫。因此,今天提到Tcl時,更多的是指Tcl/Tk的組合。
puts?"Hello,?World!"26. Haskell - 1990
Haskell是一種基于lambda計算和組合邏輯的函數(shù)式編程語言。
main?=?putStrLn?"Hello,?World!"27. Python - 1991
Python是一種解釋性編程語言,具有多范式、多平臺的特點(diǎn)。Python支持結(jié)構(gòu)化、函數(shù)式和面向?qū)ο蟮拿钍骄幊?。這些年來,Python變得非常流行,甚至在2019年成為最受歡迎的語言之一。
Python 3.0或更高版本中的“Hello, World!”:? ?
print("Hello,?World!")28. Visual Basic - 1991
Visual Basic,簡稱VB,是第三代事件編程語言,是微軟為其COM編程模型創(chuàng)建的集成開發(fā)環(huán)境。? ?
Public?Sub?Main()????Debug.Print?"Hello,?World!"
End?Sub
29. Lua - 1993
Lua創(chuàng)建于1993年,是一種自反的命令式腳本語言,用于嵌入其他應(yīng)用程序以擴(kuò)展功能。? ??
print("Hello,?World!")30. Ruby - 1995
Matsumoto Yukihiro由于對自己的Smalltalk和Lisp開發(fā)經(jīng)歷感到失望,于1993年開始在Emacs下設(shè)計Ruby語言。他在1995年發(fā)布了第一版。Ruby是解釋型的、面向?qū)ο蟮?、多范式的編程語言。?
puts?'Hello,?World!'31. Java - 1995
Java是James Gosling在1995年創(chuàng)建的一種面向?qū)ο蟮木幊陶Z言,至今仍是業(yè)界最流行和使用最多的語言。Java允許完成客戶機(jī)到web應(yīng)用程序的所有工作,而谷歌將其作為Android移動操作系統(tǒng)上開發(fā)應(yīng)用程序的語言,進(jìn)一步擴(kuò)展了它的功能。
class?HelloWorld?{??public?static?void?main(String[]?args)?{
????System.out.println("Hello,?World!");
??}
}
32. JavaScript - 1995
JavaScript是一種腳本編程語言,主要用于Web,但現(xiàn)在可以在服務(wù)器端使用Node.js等。JavaScript是一種面向原型的編程語言。? ? ?
document.write('Hello,?World!');33. PHP - 1995
就編程語言而言,1995年無疑是極其重要的一年,因?yàn)樵贘ava和JavaScript之后,PHP也在這一年誕生。PHP主要用于Web,是一種面向?qū)ο蟮拿钍秸Z言,可以像其他解釋語言一樣在本地工作。
<??echo?"Hello,?World!"??>34. Rebol - 1997
Rebol是一種高級腳本編程語言,它建立在denotational語義的基礎(chǔ)上,自稱為“消息傳遞語言”。這是一個“Hello, World!”:? ?
print?"Hello,?World!"35. ActionScript — 1998
ActionScript是一種用于客戶端應(yīng)用程序(如Adobe Flash和Adobe Flex)和服務(wù)器(Flash media server、JRun、Macromedia Generator)的編程語言。ActionScript在Unity graphics中用作腳本語言。??
package?{??public?class?HelloWorld?{
????public?function?HelloWorld()?{
??????trace("Hello?World?!");
????}
??}
}
36. D - 1999
D是一種命令式的面向?qū)ο蠛投喾妒降木幊陶Z言。D的靈感來自許多語言,包括c++、Java和Eiffel。盡管D有很多優(yōu)點(diǎn),但它還未取得創(chuàng)造者所期望的那樣成功。?
import?std.stdio;void?main?()?{
??writefln("Hello,?World!");
}
37. C# - 2000
c#是微軟在2000年與Sun就Java語言發(fā)生爭執(zhí)后創(chuàng)建的。c#是一種面向?qū)ο蟮木幊陶Z言,用于在Microsoft上開發(fā)。該語言派生于c++和Java,使用它們的一般語法和一些概念。c#也可以用于開發(fā)ASP上的web應(yīng)用程序。??
using?System;internal?static?class?HelloWorld?{
??private?static?void?Main()?{
????Console.WriteLine("Hello,?World!");
??}
}
38. Groovy - 2003
Groovy是一種運(yùn)行在Java平臺上的面向?qū)ο缶幊陶Z言。Groovy是Java語言的替代品,它的靈感來自Python、Ruby或Smalltalk。?
println?"Hello,?World!"39. Scala - 2003
Scala是一種多范式編程語言,旨在以簡潔優(yōu)雅的形式表達(dá)常見的編程模型。Scala通過靜態(tài)類型集成了面向?qū)ο蠛秃瘮?shù)式編程的范例。? ??
object?HelloWorld?extends?App?{??println("Hello,?World!")
}
40. F# - 2005
f#是一種函數(shù)式、命令式和面向?qū)ο蟮木幊陶Z言,由Microsoft開發(fā)。f#源自與之高度兼容的OCaml編程語言。這兩種編程語言與ML語言屬于同一語系。
printfn?"Hello,?World!"41. Windows PowerShell - 2006
Windows PowerShell是微軟開發(fā)的一套軟件,包括一個命令行界面、一種稱為PowerShell的腳本語言和一個開發(fā)工具包。從Windows 7開始PowerShell作為標(biāo)準(zhǔn)語言。? ? ?
echo?"Hello,?World!"42. Clojure - 2007
Clojure是一種經(jīng)過編譯的跨平臺函數(shù)式編程語言,旨在創(chuàng)建安全且易于分發(fā)的程序。Clojure是基于Lisp的三大語言之一。Clojure可以轉(zhuǎn)換為Java代碼、JavaScript代碼和. net代碼。因此,Clojure可以在JVM、CLR、瀏覽器和Node.js上使用。
(println?"Hello,?World!")43. Go - 2009
Go是一種經(jīng)過編譯的并發(fā)式編程語言,靈感來自C和Pascal。這種語言是由谷歌從Robert Griesemer、Rob Pike和Ken Thompson(他在1969年創(chuàng)造了B語言)最初提出的概念發(fā)展而來的。
package?mainimport?"fmt"
func?main()?{
??fmt.Println("Hello,?World!")
}
44. Rust - 2010
Rust是由Mozilla設(shè)計和開發(fā)的多范型編譯的編程語言。Rust是“一種安全、并發(fā)、實(shí)用的語言”,同時支持純函數(shù)式編程風(fēng)格、actor模型、過程式編程以及面向?qū)ο缶幊?。Rust常被稱為c++的潛在繼承者之一。? ??
fn?main()?{????println("Hello,?World!");
}
45. Dart - 2011
Dart是一種由谷歌開發(fā)的web編程語言。它最初的目的是取代JavaScript。目前,Dart還沒有達(dá)到它的目標(biāo),開發(fā)人員的首要任務(wù)是將Dart轉(zhuǎn)換成與所有現(xiàn)代瀏覽器兼容的JavaScript代碼。Dart也可以用于服務(wù)器端編程。
Dart是Flutter用于開發(fā)移動應(yīng)用程序的語言。? ??
main()?{??print('Hello,?World!');
}
46. Kotlin — 2011
Kotlin是一種面向?qū)ο蟮暮瘮?shù)式編程語言,具有靜態(tài)類型,允許在Java虛擬機(jī)、JavaScript和本地的多種平臺進(jìn)行編譯。2017年,谷歌使Kotlin成為繼Java之后Android官方支持的第二種編程語言。
fun?main(args:?Array<String>)?{????println("Hello,?World!")
}
47. Ceylon - 2011
Ceylon由Red Hat創(chuàng)建,是一種高級開放源碼編程語言,具有強(qiáng)類型和靜態(tài)類型。它的語法與Java相似。它可以編譯為Java或JavaScript。
void?hello()?{????print("Hello,?World!");
}
48. TypeScript - 2012
TypeScript是一種免費(fèi)的開源編程語言,由微軟開發(fā),旨在提高JavaScript代碼的安全性。TypeScript語言是JavaScript的一個超集,它被轉(zhuǎn)換成JavaScript,這樣任何web瀏覽器或JavaScript引擎都可以應(yīng)用。
console.log("Hello,?World!");49. Julia - 2012
Julia是一種用于科學(xué)計算的高級、強(qiáng)大和動態(tài)編程語言,其語法為其他類似開發(fā)環(huán)境(如MATLAB、R或Python)的用戶所熟悉。
println("Hello,?World!")50. Swift - 2014
Swift是一種經(jīng)過編譯的、多范式的對象編程語言,其設(shè)計目標(biāo)是簡單、高性能和安全。它是由蘋果公司開發(fā)的開源軟件,從而與Objective-C一起成為開發(fā)移動iOS應(yīng)用程序的解決方案。
print("Hello,?World!")結(jié)論
通過這次時間旅行,用50種不同語言編寫了“Hello, World!”程序,向人們展示了70年來計算機(jī)編程語言的變遷。
想知道更多?掃描下面的二維碼關(guān)注我
怎么加群?:>>>Learn More<<
怎么免費(fèi)加入知識星球:>>>Free<<<
免費(fèi)資料入口:后臺回復(fù)“666”
朕已閱?
總結(jié)
以上是生活随笔為你收集整理的50 种不同编程语言的“Hello World”,你知多少?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文掌握 Redis 常用知识点 | 图
- 下一篇: 嗯?那你来说说用 ArrayList 还