50 種不同程式語言的「Hello World」,你知多少?

2021-02-14 廣東金融IT課程學習

作者 | Sylvain Saurel

譯者 | 風車雲馬,責編 | 屠敏

以下為譯文:

當我們學習一門程式語言時,都是從「Hello, World!」開始。所有程式設計師在其職業生涯中,都至少接觸過一個經典的「Hello, World!」 程序。通常程式設計師會使用多種程式語言,多的甚至實現了十幾種。

還有一種稱為TTHW(Time to 「Hello, World!」)的方法,來衡量程式設計師創建一個新的「Hello, World!」程序的時間。

你可以用多少種不同的語言編寫一個「Hello, World!」程序,你的答案是什麼?

讓我們在計算機編程的世界裡回顧一翻。我會向你展示50種不同程式語言編寫的「Hello, World!」程序。同時讓你看到計算機程式語言隨時間的演變。

1. 彙編語言- 1949

彙編語言創建於1949年。下面我介紹一種經典的彙編語言,適用於Intel 8080 8位處理器,該處理器後來在1974年4月正式推出。

bdos    equ    0005H    ; 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

2. Fortran - 1957

Fortran程式語言是Formula Translation的派生。它是一種彙編命令式程序設計語言,特別適合於數值計算和科學計算。Fortran語言創建於1957年,用這種語言寫的「Hello, World!」:   

PROGRAM Hello
WRITE (*,*) 'Hello, World!'
STOP
END

在Fortran 90或95版本中,程序「Hello, World!」可以這樣寫:

PROGRAM Hello
WRITE (*,*) 'Hello, World!'
END PROGRAM Hello

3.Lisp - 1958

Lisp是最古老的命令式和函數式程式語言。它最初創建於1958年,在20世紀70年代和80年代,Lisp最終成為人工智慧世界中非常流行的語言。  

(write-line "Hello, World!")

4. Cobol - 1959

Cobol程式語言於1959年正式創建,2019年剛剛60周年。Cobol是COmmon Business Oriented Language的縮寫,它原本是一種用於編寫業務應用程式的公共語言。到2019年,Cobol仍然廣泛應用於銀行和保險領域。

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
    DISPLAY "Hello, World!"
    STOP RUN.

5. BASIC - 1964

BASIC是Beginner’s All-purpose Symbolic Instruction Code的首字母縮寫,它是一種高級程式語言,其主要特點是易用性。 

6. Logo - 1968

Logo是為了更容易使用Lisp語言,經常被稱為「Lisp without brackets」。具體來說,Logo是一種面向對象的程式語言。  

7. B - 1969

創建於1969年的B語言現在已經過時了,但它仍然扮演著重要的角色,因為它激發了C語言的靈感,而C語言至今仍被廣泛使用。  

main()
{
  putstr("Hello world!*n");
  return(0);
}

8. Pascal - 1970

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

begin
  writeln('Hello, World!')
end.

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

program HelloWorld(output);
begin
  writeln('Hello, World!');
  readln;
end.

9. Forth - 1970

Forth是一種基於命令式的計算機程式語言,由Charles H. Moore於20世紀60年代發明,其第一個版本於1970年發布。它在1994年被ANSI標準化,並在1997年被ISO採用。

: HELLO  ( -- )  ." Hello, World!" CR ;
  HELLO

10. C - 1972

C語言是1972年在貝爾實驗室發明的,當時丹尼斯·裡奇(Dennis Ritchie)和肯·湯普森(Ken Thompson)正在開發UNIX。Ken Thompson之前開發了B語言。Dennis Ritchie決定從B語言中獲得靈感,通過添加類型來創建C語言。

#include <stdio.h>

int main(void) {
  printf("Hello, World!\n");
  return 0;
}

 

11. Smalltalk - 1972

特別是受到Lisp語言的啟發,Smalltalk是一種面向對象、自反性和動態類型的程式語言,發明於1972年。Smalltalk是最早擁有集成開發環境的程式語言之一。

Transcript show: 'Hello, world!'; cr.

12. Prolog - 1972

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

:- write('Hello, World!'),nl.

13. ML - 1973

ML是一種基於Lisp的函數式程式語言。     

 

14. Scheme - 1975

Scheme創建於1975年,是一種支持函數式和命令式編程的多範式程式語言。這是基於Lisp的三大語言之一,另兩種是Common Lisp和最近創建的Clojure。 

(display "Hello, World!") (newline)

15. SQL - 1978

SQL(Structured Query Language)結構化查詢語言,是一種用於操作關係資料庫的標準化計算機語言。它也可以設計「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和類的名義創建,後來在1983年以c++語言命名。c++程式語言現在已被ISO標準化,並廣泛應用於工業和其他領域。

#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
begin
   Ada.Text_IO.Put_Line ("Hello, World!");
end Hello;

18. Common Lisp - 1984

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

 

19. MATLAB - 1984

MATLAB,用於「矩陣實驗室」,是一種用於數值計算的腳本語言。MATLAB的開發環境也叫這個名字。

20. Eiffel - 1985

Eiffel是一種面向對象的程式語言。Eiffel基於當今非常流行的概念,如契約編程或重用。

class
    HELLO_WORLD
create
    make
feature
    make
        do
            print ("Hello, world!%N")
        end
end

21. Objective-C - 1986

Objective-C是一種自反的面向對象程式語言。它是C程式語言的擴展,與c++類似,但在動態消息分發或動態加載方面與c++有很大的不同。

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

#import <Foundation/Foundation.h>

int main() {
    @autoreleasepool {
        NSLog(@"Hello, World!");
    }
}

22. Erlang - 1986

Erlang程式語言支持幾種範例:並發、實時、分布式。它基於actor模型,具有容錯和熱更新功能,能夠開發高可用性應用程式。      

io:format("Hello world!~n").

23. Perl - 1987

Perl是Larry Wall在1987年創建的一種程式語言,用於輕鬆地處理基於文本的信息。Perl是一種解釋語言,它受到C語言的控制和列印結構的啟發,也受到shell腳本語言的啟發。      

24. Caml - 1987

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

print_string "Hello, World!\n";;

25. Tcl - 1988

Tcl是工具命令語言,是John Ousterhout在1988年開發的一種腳本語言。這種動態類型語言是跨平臺的、可擴展的、易於學習的,並且基於12條語法規則。Tcl很容易與C程式語言進行交互。

1990年,John Ousterhout為Tcl開發了一個名為Tk的擴展,這是一個用於創建可移植圖形界面的庫。因此,今天提到Tcl時,更多的是指Tcl/Tk的組合。

26. Haskell - 1990

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

main = putStrLn "Hello, World!"

27. Python - 1991

Python是一種解釋性程式語言,具有多範式、多平臺的特點。Python支持結構化、函數式和面向對象的命令式編程。這些年來,Python變得非常流行,甚至在2019年成為最受歡迎的語言之一。

Python 3.0或更高版本中的「Hello, World!」:   

28. Visual Basic - 1991

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

Public Sub Main()
    Debug.Print "Hello, World!"
End Sub

29. Lua - 1993

Lua創建於1993年,是一種自反的命令式腳本語言,用於嵌入其他應用程式以擴展功能。    

30. Ruby - 1995

Matsumoto Yukihiro由於對自己的Smalltalk和Lisp開發經歷感到失望,於1993年開始在Emacs下設計Ruby語言。他在1995年發布了第一版。Ruby是解釋型的、面向對象的、多範式的程式語言。 

31. Java - 1995

Java是James Gosling在1995年創建的一種面向對象的程式語言,至今仍是業界最流行和使用最多的語言。Java允許完成客戶機到web應用程式的所有工作,而谷歌將其作為Android行動作業系統上開發應用程式的語言,進一步擴展了它的功能。

class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

32. JavaScript - 1995

JavaScript是一種腳本程式語言,主要用於Web,但現在可以在伺服器端使用Node.js等。JavaScript是一種面向原型的程式語言。     

document.write('Hello, World!');

33. PHP - 1995

就程式語言而言,1995年無疑是極其重要的一年,因為在Java和JavaScript之後,PHP也在這一年誕生。PHP主要用於Web,是一種面向對象的命令式語言,可以像其他解釋語言一樣在本地工作。

<? echo "Hello, World!" ?>

34. Rebol - 1997

Rebol是一種高級腳本程式語言,它建立在denotational語義的基礎上,自稱為「消息傳遞語言」。這是一個「Hello, World!」:   

35. ActionScript — 1998

ActionScript是一種用於客戶端應用程式(如Adobe Flash和Adobe Flex)和伺服器(Flash media server、JRun、Macromedia Generator)的程式語言。ActionScript在Unity graphics中用作腳本語言。  

package {
  public class HelloWorld {
    public function HelloWorld() {
      trace("Hello World !");
    }
  }
}

36. D - 1999

D是一種命令式的面向對象和多範式的程式語言。D的靈感來自許多語言,包括c++、Java和Eiffel。儘管D有很多優點,但它還未取得創造者所期望的那樣成功。 

import std.stdio;

void main () {
  writefln("Hello, World!");
}

37. C# - 2000

c#是微軟在2000年與Sun就Java語言發生爭執後創建的。c#是一種面向對象的程式語言,用於在Microsoft上開發。該語言派生於c++和Java,使用它們的一般語法和一些概念。c#也可以用於開發ASP上的web應用程式。  

using System;

internal static class HelloWorld {
  private static void Main() {
    Console.WriteLine("Hello, World!");
  }
}

38. Groovy - 2003

Groovy是一種運行在Java平臺上的面向對象程式語言。Groovy是Java語言的替代品,它的靈感來自Python、Ruby或Smalltalk。 

39. Scala - 2003

Scala是一種多範式程式語言,旨在以簡潔優雅的形式表達常見的編程模型。Scala通過靜態類型集成了面向對象和函數式編程的範例。    

object HelloWorld extends App {
  println("Hello, World!")
}

40. F# - 2005

f#是一種函數式、命令式和面向對象的程式語言,由Microsoft開發。f#源自與之高度兼容的OCaml程式語言。這兩種程式語言與ML語言屬於同一語系。

41. Windows PowerShell - 2006

Windows PowerShell是微軟開發的一套軟體,包括一個命令行界面、一種稱為PowerShell的腳本語言和一個開發工具包。從Windows 7開始PowerShell作為標準語言。     

42. Clojure - 2007

Clojure是一種經過編譯的跨平臺函數式程式語言,旨在創建安全且易於分發的程序。Clojure是基於Lisp的三大語言之一。Clojure可以轉換為Java代碼、JavaScript代碼和. net代碼。因此,Clojure可以在JVM、CLR、瀏覽器和Node.js上使用。

(println "Hello, World!")

43. Go - 2009

Go是一種經過編譯的並髮式程式語言,靈感來自C和Pascal。這種語言是由谷歌從Robert Griesemer、Rob Pike和Ken Thompson(他在1969年創造了B語言)最初提出的概念發展而來的。

package main

import "fmt"

func main() {
  fmt.Println("Hello, World!")
}

44. Rust - 2010

Rust是由Mozilla設計和開發的多範型編譯的程式語言。Rust是「一種安全、並發、實用的語言」,同時支持純函數式編程風格、actor模型、過程式編程以及面向對象編程。Rust常被稱為c++的潛在繼承者之一。    

fn main() {
    println("Hello, World!");
}

45. Dart - 2011

Dart是一種由谷歌開發的web程式語言。它最初的目的是取代JavaScript。目前,Dart還沒有達到它的目標,開發人員的首要任務是將Dart轉換成與所有現代瀏覽器兼容的JavaScript代碼。Dart也可以用於伺服器端編程。

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

main() {
  print('Hello, World!');
}

46. Kotlin — 2011

Kotlin是一種面向對象的函數式程式語言,具有靜態類型,允許在Java虛擬機、JavaScript和本地的多種平臺進行編譯。2017年,谷歌使Kotlin成為繼Java之後Android官方支持的第二種程式語言。

fun main(args: Array<String>) {
    println("Hello, World!")
}

47. Ceylon - 2011

Ceylon由Red Hat創建,是一種高級開放源碼程式語言,具有強類型和靜態類型。它的語法與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)的用戶所熟悉。

50. Swift - 2014

Swift是一種經過編譯的、多範式的對象程式語言,其設計目標是簡單、高性能和安全。它是由蘋果公司開發的開源軟體,從而與Objective-C一起成為開發移動iOS應用程式的解決方案。

結論

通過這次時間旅行,用50種不同語言編寫了「Hello, World!」程序,向人們展示了70年來計算機程式語言的變遷。

原文:https://medium.com/javarevisited/70-years-of-hello-world-with-50-programming-languages-2400de893a97

本文為 CSDN 翻譯,轉載請註明來源出處。

相關焦點

  • 用 50 種程式語言寫「Hello,World!」
    甚至還出現了一種衡量標準,叫做 TTHW,用於評估程式設計師用新的程式語言實現一段「Hello, World!」程序並成功運行所花費的時間 。但現在,如果我問你,你可以用多少種不同的程式語言編寫「Hello,World!」,你會給出怎樣的回答?為幫你回憶起來,我會向你展示怎樣用 50 種不同的程式語言編寫「Hello,World!」程序。
  • 1949-2019,70 年 50 種不同程式語言的「Hello World」大盤點!
    本文將以「Hello World」為例,花樣呈現 50 種程式語言。通常程式設計師會使用多種程式語言,多的甚至實現了十幾種。還有一種稱為TTHW(Time to 「Hello, World!」)的方法,來衡量程式設計師創建一個新的「Hello, World!」程序的時間。你可以用多少種不同的語言編寫一個「Hello, World!」程序,你的答案是什麼?讓我們在計算機編程的世界裡回顧一翻。
  • 用 50 種程式語言寫「Hello,World!」程序
    在成長中,程式設計師通常會使用多種程式語言,大部分程式設計師甚至實現過十幾種」Hello,World!」版本。甚至還出現了一種衡量標準,叫做 TTHW,用於評估程式設計師用新的程式語言實現一段「Hello, World!」程序並成功運行所花費的時間 。
  • 程式語言發展70年,50種不同語言輸出「Hello World」,你知多少?
    大半個世紀以來,不斷出現的程式語言為開發者解決了哪些難題?其存在又有怎樣的特性?本文將以「Hello World」為例,來呈現50種程式語言。當我們學習一門程式語言時,都是從「HELLO,WORLD!」開始。所有程式設計師在其職業生涯中,都至少接觸過一個經典的「HELLO,WORLD!」程序。通常程式設計師會使用多種程式語言,多的甚至實現了十幾種。
  • 計算機編程的歷史演進:用 50 種程式語言寫「Hello,World!」程序
    甚至還出現了一種衡量標準,叫做 TTHW,用於評估程式設計師用新的程式語言實現一段「Hello, World!」程序並成功運行所花費的時間 。但現在,如果我問你,你可以用多少種不同的程式語言編寫「Hello,World!」,你會給出怎樣的回答?為幫你回憶起來,我會向你展示怎樣用 50 種不同的程式語言編寫「Hello,World!」程序。
  • 20種熱門程式語言輸出Hello World,你會幾種?
    此文章主要為大家介紹了20種熱門程式語言輸出Hello World,你會幾種?,具有一定的參考價值,學習覺得挺不錯的,分享給大家。如何使用20種最熱門的程式語言來寫代碼呢? 首先,我們要知道目前最熱門的程式語言們到底是哪幾種? 哪種程式語言最熱門?
  • 30種不同的程式語言怎麼寫「Hello, World」
    你知道多少種程式語言?本文整理了30種程式語言的Hello World程序,有些程式語言使用廣泛你可能知道,但有一些很冷門的程式語言你可能不知道。來一起見識一下這30種程式語言吧,如果你還知道其他程式語言而文章沒有提到,可以留言。1.C
  • 12 種主流程式語言輸出「 Hello World 」,你真的都會了嗎?
    作為一名程式設計師,在初步學習編程想必都繞不開一個最為基礎的入門級示例「Hello World」,那麼,你真的了解各個語言「Hello
  • 25種著名程式語言編寫您的第一個程序Hello World
    」 ——每個程式設計師在開始學習任何程式語言時編寫的第一個程序。「Hello World !」被認為是幾乎所有計算機語言中最簡單的程序之一,它向用戶輸出或顯示「Hello, World !」。它通常是用於工作程序的程式語言的基本語法的範例,用來向入門程式設計師介紹程式語言。從本文中,您將學習如何用25種不同的著名程式語言編寫您的第一個程序——「Hello World !」程序。
  • 無用技巧:「Hello World」用10種語言怎麼說?
    這篇推送中,我將教大家如何在10種不同的程式語言中編寫一個 Hello World 程序——這個技巧有什麼用呢?並沒有什麼用,可是周五了,何不來整點沒用的呢!1.>classHello{staticvoidMain(string[] args){ // prints hello
  • 為什麼學習編程寫第一個程序都是「hello world」
    "hello world!"說起這個問候語,可能只要接觸過編程的朋友都不陌生,沒錯,它就是所有程式語言學習初期默認的第一個程序,已經成了不是規則的規則!那麼學習編程,為什麼第一個程序是寫」hello world"呢?
  • 50 種 "Hello, World!" 寫法,我能玩出花來~
    當我們學習一門程式語言時,都是從「Hello, World!」開始。所有程式設計師在其職業生涯中,都至少接觸過一個經典的「Hello, World!」 程序。通常程式設計師會使用多種程式語言,多的甚至實現了十幾種。還有一種稱為TTHW(Time to 「Hello, World!」)
  • 想學編程?先來理解一下C語言的Helloworld程序吧
    C語言作為一門計算機科學歷史上裡程碑式的程式語言,現在依然被廣泛使用。其功能強大,內容簡單,想學習編程的小夥伴們不妨先學習一下C語言。本文將介紹一下K&R所寫的經典程序:Helloworld的簡要分析。
  • 0055 PHP語言簡介和HelloWorld
    這時候,我們就需要學習一門新的程式語言,可以通過它來讓網頁和後臺數據進行交互。學哥選擇的是PHP語言,它是一門主流的程式語言,學習起來比較容易,功能也非常強大。同時,還需要學習資料庫編程技術,因為很多時候,網頁後臺都是需要通過資料庫來進行支持的。
  • 程序'猿'的「hello,world!」是什麼梗?
    一日,飯後突生雅興,一番磨墨擬紙,並點上了上好的檀香,頗有王羲之風範,又具顏真卿氣勢,定神片刻,潑墨揮毫,鄭重地寫下:hello world很多人不了解程式設計師的人都覺得毫無笑點,其實如果你知道大多程式設計師學編程時第一課的內容時就明白了。
  • C語言簡單編程速成
    他稱之為 C 語言,並且在近 50 年後,它仍在廣泛的使用。今天,有很多語言為程式設計師提供了比 C 語言更多的特性。最明顯的是 C++ 語言,這是一種以相當露骨的方式命名的語言,它構建在 C 語言之上,創建了一種很好的面向對象語言。不過,許多其它語言的存在是有充分理由的。計算機擅長一致的重複,因此任何可預見的東西都可以構建在程式語言中,對程式設計師來說這意味著更少的工作量。
  • 從AT&T彙編語言的HelloWorld說起
    # file: hello.s# Hello world with asm.section .data hello: .ascii "Hello World!
  • 世界上最難的5種程式語言
    我們平時都在談論 c、c ++、Java、Python 等程式語言,其實還有些語言不僅對於大多數軟體開發人員來說都很難,而且幾乎是不可理解的。這些語言被稱為深奧難懂的程式語言(或晦澀語言)。晦澀語言並不是為普通的軟體開發而設計的。
  • 你不懂的Hello world!十大最怪異的程式語言
    「永遠沒有完功的程序」是程序界的一個定律,人們都認為程式語言很容易使用和學習。程式語言應該給你提供數據結構讓你來解決實際問題,它們的語法也應清晰明了,容易理解且執行速度快,沒有任何bug。但有時候程式語言設計者們會創建一些違背這些原則的語言,要麼供研究使用要麼純屬娛樂。
  • 五分鐘在Mac OS上安裝Go語言並破解Goland IDE跑出「Hello World」
    如果你還想抓住2019年的尾巴,學習一門新語言,現在還不算晚哦,Go語言是可以快速上手值得推薦的語言呢導讀,通過本文,您將可以了解到:Go創始人背景在Mac OS上安裝Go在MacOS上執行第一個HelloWorld程序Go語言開發工具Goland及破解用Goland運行HelloWorld如何讓