您當前的位置:首頁 > 曲藝

2020年·用50種語言對你說“Hello,World!”

作者:由 動力節點 發表于 曲藝時間:2020-01-25

這是一個計算機世界的程式設計時光之旅。

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

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

甚至還出現了一種衡量標準,叫做 TTHW,用於評估程式設計師用新的程式語言實現一段“Hello, World!”程式併成功執行所花費的時間 。

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

# 組合語言 - 1949 年

組合語言創建於 1949 年,本文中,我會向你展示一段經典的

彙編程式

,這是為 Intel 8080 平臺的 8 位處理器編寫的,這款處理器於 1974 年 4 月下旬釋出。

bdos

equ

0005

H

BDOS

entry

point

start

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

# Fortran - 1957 年

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

PROGRAM

Hello

WRITE

*

*

‘Hello, World!’

STOP

END

# Lisp - 1958 年

Lisp 是最古老的程式語言家族,它既是命令式語言,又是

函式式語言

。Lisp 最初創建於 1958 年,當時是作為展示程式的實用模型釋出的。在 20 世紀 70 年代和 80 年代,Lisp 家族成為人工智慧領域非常受歡迎的語言。

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

write

-

line

Hello

World

!”

# Cobol - 1959 年

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

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

IDENTI

FICATION

DIVISION

PROGRA

M-ID

HELLO-WORLD

PROCED

URE

DIVISION

DI

SPLAY

“Hello, World!”

ST

OP

RUN

# BASIC - 1964 年

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

print

Hello

World

# Logo - 1968 年

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

main()

{

putstr(“Hello world!*n”);

return(0);

}

# B - 1969 年

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

begin

writeln(‘Hello, World!’)

end。

# Pascal - 1970 年

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

程式結構

begin

writeln

‘Hello, World!’

end

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

以下是 Turbo Pascal 中的“Hello, World!”程式:Turbo Pascal 創建於 1983 年,它是為 Pascal 程式語言打造的整合開發環境。Turbo Pascal 在 20 世紀 80 年代和 90 年代取得巨大成功。

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

program

HelloWorld

output

);

begin

writeln

‘Hello, World!’

);

readln

end

# Forth - 1970 年

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

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

HELLO

——

“ Hello, World!” CR ;

HELLO

# C - 1972 年

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

#include

int

main

void

{

printf

“Hello, World!

\n

);

return

0

}

# Smalltalk - 1972 年

Smalltalk 是一種面向物件的,具有反身性和動態型別的程式語言,發明於 1972 年,當時主要是受到 Lisp 語言的啟發。Smalltalk 是最早一批具有整合開發環境的程式語言之一。

Transcript

show

Hello

world

!’

cr

# Prolog - 1972 年

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

:- write(‘Hello, World!’),nl。

# ML - 1973 年

ML 是 Meta Language 的縮寫,它是基於 Lisp 的函數語言程式設計語言。ML 通常被認為是帶有型別的 Lisp 語言。

print “Hello, World!\n”;

# Scheme - 1975 年

Scheme 創建於 1975 年,它是一種支援函式式和命令式的多正規化程式語言。它是 Lisp 語言的 3 大變種之一,另外兩個變種 Common Lisp 和 Clojure 的誕生要晚得多。

(display “Hello, World!”) (newline)

# SQL - 1978 年

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

CREATE

TABLE

message

text

char

15

));

INSERT

INTO

message

text

VALUES

‘Hello, World!’

);

SELECT

text

FROM

message

DROP

TABLE

message

# C++ - 1980 年

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

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

#include

using

namespace

std

int

main

()

{

cout

<<

“Hello, World!”

<<

endl

return

0

}

# Ada - 1983 年

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

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

with

Ada。Text_IO

procedure

Hello

is

begin

Ada

Text_IO

Put_Line

“Hello, World!”

);

end

Hello

# Common Lisp - 1984 年

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

(princ “Hello, World!”)

# MATLAB - 1984 年

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

disp(‘Hello, World!’)

# Eiffel - 1985 年

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

class

HELLO_WORLD

create

make

feature

make

do

print (“Hello, world!%N”)

end

end

# Objective-C - 1986 年

Objective-C 是一種反身式的

面向物件程式設計

語言。它是 C 程式語言的擴充套件,就像 C++ 一樣,但是和 C++ 又不一樣,特別是在動態訊息分發或者動態載入方面與 C++ 很不一樣。

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

#import

int

main

()

{

@autoreleasepool

{

NSLog

@“Hello, World!”

);

}

}

# Erlang - 1986 年

Erlang 這種程式語言支援多種正規化:併發、實時和分散式。它獨具特色的層是基於參與者(actor)模型的,具有容錯和熱程式碼更新功能,允許開發具有極高可用性的應用程式。

io:format(“Hello world!~n”)。

# Perl - 1987 年

Perl 程式語言由 Larry Wall 創建於 1987 年,是為更容易地處理基於文字的資訊而建立的。Perl 是一種解釋性語言,它受到了 C 語言的控制結構和列印結構的啟發,同時也受到了 shell

指令碼語言

的啟發。

print “Hello, World!\n”;

# Caml - 1987 年

Caml 是 Categorical Abstract Machine Language 的縮寫,它是一種面向程式安全性和可靠性的通用程式語言。Caml 支援函式式、命令式和麵向物件的程式設計風格。它也是一種非常獨特的語言。

print_string “Hello, World!\n”;;

# Tcl - 1988 年

Tcl 是 Tool Command Language 的縮寫,它是一種指令碼語言,由 John Ousterhout 在 1988 年開發出來的。這種動態型別語言是跨平臺的、可擴充套件的、易於學習的,並且基於 12 條

語法規則

。Tcl 很容易與 C 程式語言互動。

在 1990 年,John Ousterhout 開發出了 Tcl 的一個擴充套件,叫做 Tk,它是一個用於建立可移植圖形介面的程式碼庫。現在,當我們談起 Tcl 時,我們更多地是在談論 Tcl/Tk 這個組合。

puts “Hello, World!”

# Haskell - 1990 年

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

main = putStrLn “Hello, World!”

# Python - 1991 年

Python 是一種解釋性程式語言,具有多正規化、多平臺的特點。Python 支援結構化、函式式和麵向物件的指令式程式設計。

這些年來, Python 變得非常流行,以下是用 Python 3。0 或更高版本編寫的“Hello, World!”程式:

print

“Hello, World!”

# Visual Basic - 1991 年

Visual Basic,簡稱為 VB,它是第三代事件程式語言,也是微軟建立的整合開發環境,用於其 COM 程式設計模型。

Public Sub Main()

Debug。Print “Hello, World!”

End Sub

# Lua - 1993 年

Lua 創建於 1993 年,它是一種反身式、命令式指令碼語言,用於嵌入在其他應用程式中來擴充套件這些應用程式的功能。

print(“Hello, World!”)

# Ruby - 1995 年

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

他在 1995 年釋出了該語言的第一個版本。Ruby 是一種解釋性的、面向物件的多正規化語言。

puts ‘Hello, World!’

# Java - 1995 年

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

你能夠使用 Java 做任何事情,從

客戶端

到 Web 應用無所不包;而且 Google 選擇 Java,用在 Android 作業系統上作為開發應用程式的語言,這又進一步擴充套件了 Java 能力。

class

HelloWorld

{

public

static

void

main

String

[]

args

{

System

out

println

“Hello, World!”

);

}

}

JavaScript - 1995 年

JavaScript 是一種指令碼語言,主要用於 Web 開發,但現在可以用於服務端,比如 Node。js。JavaScript 是面向原型的程式語言,這種語言裡的函式是第一類物件。

document

write

‘Hello, World!’

);

# PHP - 1995 年

1995 年絕對是程式語言非常重要的一年,因為在 Java 和 JavaScript 之後,PHP 也在這一年被髮明出來。PHP 主要用於 Web,它是一種面向物件的命令式語言,能夠像其他任何

解釋性語言

一樣在本地執行。

<?

echo

“Hello, World!”

?>

# Rebol - 1997 年

Rebol 是一種高階指令碼程式語言,建立在

指代語義

的基礎上,自稱為“訊息傳遞語言”。以下是用 Rebol 編寫的“Hello, World!”程式:

print “Hello, World!”

# ActionScript - 1998 年

ActionScript 這種程式語言,可用於

客戶端應用程式

(例如 Adobe Flash 和 Adobe Flex)和伺服器(Flash

媒體伺服器

,JRun 和 Macromedia Generator)。ActionScript 現在作為一種指令碼語言,用於 Unity

圖形引擎

之中。

package

{

public

class

HelloWorld

{

public

function

HelloWorld

()

{

trace

“Hello World

);

}

}

}

# D - 1999 年

D 是一種命令式、面向物件的多正規化程式語言,用於系統程式設計。D 的發明受到許多語言的啟發,包括 C++、Java 和 Eiffel。儘管 D 語言有很多優點,但是它從未獲得其發明者所期望的成功。

import

std。stdio

void

main

()

{

writefln

“Hello, World!”

);

}

# C# - 2000 年

C# 是微軟於 2000 年與 Sun 就 Java 語言發生爭執後建立的。C# 是一種面向物件的程式語言,用於

http://

Microsoft。Net

平臺上的開發工作。該語言派生自 C++ 和 Java,使用了它們的一些通用語法和其他許多概念。

C# 也可以用於開發

http://

ASP。Net

平臺上的 Web

應用程式

using

System

internal

static

class

HelloWorld

{

private

static

void

Main

()

{

Console

WriteLine

“Hello, World!”

);

}

}

# Groovy - 2003 年

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

println “Hello, World!”

# Scala - 2003 年

Scala 是一種多正規化程式語言,被設計用於簡潔優雅地表示通用程式設計模型。Scala 採用靜態型別,集成了面向物件和

函數語言程式設計正規化

object HelloWorld extends App {

println(“Hello, World!”)

}

# F# - 2005

F# 是一種函式式、命令式和麵向物件的程式語言,由微軟為其。NET 平臺而開發。F# 從 OCaml 程式語言衍生而來,而且與 OCaml 具有高度相容性。這兩種程式語言與 ML 語言屬於同一種語系。

printfn “Hello, World!”

# Windows PowerShell - 2006 年

Windows PowersShell 是由微軟開發的一套軟體,它包含了命令列介面、一種稱作 PowerShell 的指令碼語言和一個開發包。從 Window 7 開始,PowerShell 就作為微軟作業系統的標配。

echo “Hello, World!”

# Clojure - 2007 年

Clojure 是一種可編譯的、跨平臺的函數語言程式設計語言,用於建立安全的和易分散式執行的程式。Clojure 是 Lisp 語言的 3 大變種之一。Clojure 可轉換為 Java 位元組碼、JavaScript 程式碼和。NET 位元組碼。因此,Clojure 可以在 JVM、CLR、瀏覽器和 Node。js 上使用。

(println “Hello, World!”)

# Go - 2009 年

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

package main

import “fmt”

func main() {

fmt。Println(“Hello, World!”)

}

# Rust - 2010

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

fn main() {

println(“Hello, World!”);

}

# Dart - 2011 年

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

Dart 是 Flutter 用於開發移動應用程式的語言。

main() {

print(‘Hello, World!’);

}

# Kotlin - 2011 年

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

fun main(args: Array) {

println(“Hello, World!”)

}

# Ceylon - 2011 年

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

void hello() {

print(“Hello, World!”);

}

# TypeScript - 2012 年

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

console。log(“Hello, World!”);

# Julia - 2012 年

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

println(“Hello, World!”)

# Swift - 2014 年

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

print(“Hello, World!”)

# 總結

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

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

2020新年快樂。

標簽: hello  World  程式語言  語言  LISP