50 种不同编程语言的“Hello World”,你知多少?

2023-05-26 0 364

50 种不同编程语言的“Hello World”,你知多少?

经过 70 年,急速再次出现的C词汇为开发人员化解了甚么样痛点?其存有又有甚么样的优点?责任编辑将以「Hello World」为例,花边呈现出 50 种C词汇。

50 种不同编程语言的“Hello World”,你知多少?

译者 | Sylvain Saurel

翻译者 | 风车云马,白眉林 | 屠敏

下列为原文:

当他们自学两门C词汇时,都从“Hello, World!”已经开始。大部份开发人员在其生涯中,都最少碰触过两个经典之作的“Hello, World!” 流程。一般来说开发人员会采用多种C词汇,多的即使同时实现了数百种。

除了一类称作TTHW(Time to “Hello, World!”)的方式,来来衡量开发人员建立两个捷伊“Hello, World!”流程的天数。

你能用啥种相同的语言撰写两个“Hello, World!”流程,你的标准答案是甚么?

让他们在计算机系统程式设计的当今世界里简述一翻。就要向你展现50种相同C词汇撰写的“Hello, World!”流程。同时让你看到计算机系统C词汇随时间的演变。

1. 汇编词汇- 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

2. Fortran – 1957

FortranC词汇是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是最古老的命令式和函数式C词汇。它最初建立于1958年,在20世纪70年代和80年代,Lisp最终成为人工智能当今世界中非常流行的词汇。

(write-line “Hello, World!”

)

4. Cobol – 1959

CobolC词汇于1959年正式建立,2019年刚刚60周年。Cobol是COmmon Business Oriented Language的缩写,它原本是一类用于撰写业务应用流程的公共词汇。到2019年,Cobol仍然广泛应用于银行和保险领域。

IDENTIFICATION DIVISION.

PROGRAM

-ID. HELLO-WORLD.

PROCEDURE DIVISION

.

    DISPLAY “HelloWorld

!”

    STOP RUN

.

5. BASIC – 1964

BASIC是Beginner’s All-purpose Symbolic Instruction Code的首字母缩写,它是一类高级C词汇,其主要特点是易用性。

PRINT “Hello, World!”

END

6. Logo – 1968

Logo是为了更容易采用Lisp词汇,经常被称作“Lisp without brackets”。具体来说,Logo是一类面向对象的C词汇。

print [Hello World !]

7. B – 1969

建立于1969年的B词汇现在已经过时了,但它仍然扮演着重要的角色,因为它激发了C词汇的灵感,而C词汇至今仍被广泛采用。

main()

{

  putstr(“Hello world!*n”

);

  return(0

);

}

8. Pascal – 1970

Pascal是建立于1970年的命令式C词汇。它是为教学目的而设计的,其特点是语法清晰、严谨,有助于良好的流程结构。

begin  writeln(Hello, World!

)

end.

Turbo Pascal建立于1983年,是PascalC词汇的集成开发环境。它在20世纪80年代和90年代取得了巨大的成功。

program

HelloWorld(output);

begin  writeln(Hello, World!

);

  readln;

end.

9. Forth – 1970

Forth是一类基于命令式的计算机系统C词汇,由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是一类面向对象、自反性和动态类型的C词汇,发明于1972年。Smalltalk是最早拥有集成开发环境的C词汇之一。

Transcript showHello, world!

; cr.

12. Prolog – 1972

Prolog是一类与人工智能和计算词汇学相关的逻辑C词汇。Prolog建立于1972年。

:- write(Hello, World!

),nl.

13. ML – 1973

ML是一类基于Lisp的函数式C词汇。

print “Hello, World!\n”

;

14. Scheme – 1975

Scheme建立于1975年,是一类支持函数式和命令式程式设计的多范式C词汇。这是基于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 (textVALUES (Hello, World!

);

SELECT text FROM

 message;

DROP TABLE

 message;

16. C++ – 1980

最初在1980年由Bjarne Stroustrup以C和类的名义建立,后来在1983年以c++词汇命名。c++C词汇现在已被ISO标准化,并广泛应用于工业和其他领域。

#include <iostream>using namespace std

;

int main() 

{

  cout << “Hello, World!”<<endl

;

  return 0

;

}

17. Ada – 1983

Ada是一类面向对象的C词汇,于1980年初开发,1983年正式发布。“Ada”这个名字是为了纪念Ada Lovelace,她是有史以来第一位女计算机系统科学家。

Ada一般来说用于高可靠性和安全性的实时和嵌入式系统。

with

 Ada.Text_IO;

procedure Hello isbegin   Ada.Text_IO.Put_Line (“Hello, World!”);end

 Hello;

18. Common Lisp – 1984

Common Lisp,一般来说缩写为CL,是由ANSI标准化的Lisp词汇规范。

(princ “Hello, World!”

)

19. MATLAB – 1984

MATLAB,用于“矩阵实验室”,是一类用于数值计算的脚本词汇。MATLAB的开发环境也叫这个名字。

disp(Hello, World!

)

20. Eiffel – 1985

Eiffel是一类面向对象的C词汇。Eiffel基于当今非常流行的概念,如契约程式设计或重用。

class

    HELLO_WORLD

create

    make

feature

    make

        do            print (“Hello, world!%N”

)

        endend

21. Objective-C – 1986

Objective-C是一类自反的面向对象C词汇。它是CC词汇的扩展,与c++类似,但在动态消息分发或动态加载方面与c++有很大的相同。

如今,它主要用于苹果的操作系统:macOS及其iOS衍生产品。

#import <Foundation/Foundation.h>int

 main() {

    @autoreleasepool

 {

        NSLog(@”Hello, World!”

);

    }

}

22. Erlang – 1986

ErlangC词汇支持几种范例:并发、实时、分布式。它基于actor模型,具有容错和热更新功能,能够开发高可用性应用流程。

io:format(“Hello world!~n”

).

23. Perl – 1987

Perl是Larry Wall在1987年建立的一类C词汇,用于轻松地处理基于文本的信息。Perl是一类解释词汇,它受到C词汇的控制和打印结构的启发,也受到shell脚本词汇的启发。

print “Hello, World!\n”

;

24. Caml – 1987

Caml是Categorical Abstract Machine Language的缩写,是一类面向流程安全性和可靠性的通用C词汇。Caml支持函数式、命令式和面向对象的程式设计风格。它也是一类非常独特的词汇。

print_string “Hello, World!\n”

;;

25. Tcl – 1988

Tcl是工具命令词汇,是John Ousterhout在1988年开发的一类脚本词汇。这种动态类型词汇是跨平台的、可扩展的、易于自学的,并且基于12条语法规则。Tcl很容易与CC词汇进行交互。

1990年,John Ousterhout为Tcl开发了两个名为Tk的扩展,这是两个用于建立可移植图形界面的库。因此,今天提到Tcl时,更多的是指Tcl/Tk的组合。

puts “Hello, World!”

26. Haskell – 1990

Haskell是一类基于lambda计算和组合逻辑的函数式C词汇。

main = putStrLn “Hello, World!”

27. Python – 1991

Python是一类解释性C词汇,具有多范式、多平台的特点。Python支持结构化、函数式和面向对象的命令式程式设计。这些年来,Python变得非常流行,即使在2019年成为最受欢迎的词汇之一。

Python 3.0或更高版本中的“Hello, World!”:   

print(“Hello, World!”

)

28. Visual Basic – 1991

Visual Basic,简称VB,是第三代事件C词汇,是微软为其COM程式设计模型建立的集成开发环境。

Public Sub

 Main()

    Debug.Print “Hello, World!”End Sub

29. Lua – 1993

Lua建立于1993年,是一类自反的命令式脚本词汇,用于嵌入其他应用流程以扩展功能。

print(“Hello, World!”

)

30. Ruby – 1995

Matsumoto Yukihiro由于对自己的Smalltalk和Lisp开发经历感到失望,于1993年已经开始在Emacs下设计Ruby词汇。他在1995年发布了第一版。Ruby是解释型的、面向对象的、多范式的程式设计语言。

puts Hello, World!

31. Java – 1995

Java是James Gosling在1995年建立的一类面向对象的C词汇,至今仍是业界最流行和采用最多的词汇。Java允许完成客户机到web应用流程的大部份工作,而谷歌将其作为Android移动操作系统上开发应用流程的词汇,进一步扩展了它的功能。

class HelloWorld

 {

  public static void main(String[] args

{

    System.out.println(“Hello, World!”

);

  }

}

32. JavaScript – 1995

JavaScript是一类脚本C词汇,主要用于Web,但现在能在服务器端采用Node.js等。JavaScript是一类面向原型的C词汇。

document.write(Hello, World!

);

33. PHP – 1995

就C词汇而言,1995年无疑是极其重要的一年,因为在Java和JavaScript之后,PHP也在这一年诞生。PHP主要用于Web,是一类面向对象的命令式词汇,能像其他解释词汇一样在本地工作。

<? echo “Hello, World!” ?>

34. Rebol – 1997

Rebol是一类高级脚本C词汇,它建立在denotational语义的基础上,自称作“消息传递词汇”。这是两个“Hello, World!”:   

print “Hello, World!”

35. ActionScript — 1998

ActionScript是一类用于客户端应用流程(如Adobe Flash和Adobe Flex)和服务器(Flash media server、JRun、Macromedia Generator)的C词汇。ActionScript在Unity graphics中用作脚本词汇。

package {

  public class HelloWorld 

{

    public function HelloWorld() 

{

      trace(“Hello World !”

);

    }

  }

}

36. D – 1999

D是一类命令式的面向对象和多范式的C词汇。D的灵感来自许多词汇,包括c++、Java和Eiffel。尽管D有很多优点,但它还未取得创造者所期望的那样成功。

import std

.stdio;

void main () 

{

  writefln(“Hello, World!”

);

}

37. C# – 2000

c#是微软在2000年与Sun就Java词汇发生争执后建立的。c#是一类面向对象的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平台上的面向对象C词汇。Groovy是Java词汇的替代品,它的灵感来自Python、Ruby或Smalltalk。

println “Hello, World!”

39. Scala – 2003

Scala是一类多范式C词汇,旨在以简洁优雅的形式表达常见的程式设计模型。Scala通过静态类型集成了面向对象和函数式程式设计的范例。

object

 HelloWorld extends App {

  println(“Hello, World!”

)

}

40. F# – 2005

f#是一类函数式、命令式和面向对象的C词汇,由Microsoft开发。f#源自与之高度兼容的OCamlC词汇。这两种C词汇与ML词汇属于同一语系。

printfn “Hello, World!”

41. Windows PowerShell – 2006

Windows PowerShell是微软开发的一套软件,包括两个命令行界面、一类称作PowerShell的脚本词汇和两个开发工具包。从Windows 7已经开始PowerShell作为标准词汇。

echo “Hello, World!”

42. Clojure – 2007

Clojure是一类经过编译的跨平台函数式C词汇,旨在建立安全且易于分发的流程。Clojure是基于Lisp的三大词汇之一。Clojure能转换为Java代码、JavaScript代码和. net代码。因此,Clojure能在JVM、CLR、浏览器和Node.js上采用。

(println “Hello, World!”)

43. Go – 2009

Go是一类经过编译的并发式C词汇,灵感来自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设计和开发的多范型编译的C词汇。Rust是“一类安全、并发、实用的词汇”,同时支持纯函数式程式设计风格、actor模型、过程式程式设计以及面向对象编程。Rust常被称作c++的潜在继承者之一。

fn main() 

{

    println(“Hello, World!”

);

}

45. Dart – 2011

Dart是一类由谷歌开发的webC词汇。它最初的目的是取代JavaScript。目前,Dart还没有达到它的目标,开发人员的首要任务是将Dart转换成与大部份现代浏览器兼容的JavaScript代码。Dart也能用于服务器端程式设计。

Dart是Flutter用于开发移动应用流程的词汇。

main

() {

  print(Hello, World!

);

}

46. Kotlin — 2011

Kotlin是一类面向对象的函数式C词汇,具有静态类型,允许在Java虚拟机、JavaScript和本地的多种不同平台进行编译。2017年,谷歌使Kotlin成为继Java之后Android官方支持的第二种C词汇。

fun main(args: Array<String>)

 {

println(“Hello, World!”

)

}

47. Ceylon – 2011

Ceylon由Red Hat建立,是一类高级开放源码C词汇,具有强类型和静态类型。它的语法与Java相似。它能编译为Java或JavaScript。

void hello() 

{

    print(“Hello, World!”

);

}

48. TypeScript – 2012

TypeScript是一类免费的开源C词汇,由微软开发,旨在提高JavaScript代码的安全性。TypeScript词汇是JavaScript的两个超集,它被转换成JavaScript,这样任何web浏览器或JavaScript引擎都能应用。

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

49. Julia – 2012

Julia是一类用于科学计算的高级、强大和动态C词汇,其语法为其他类似开发环境(如MATLAB、R或Python)的用户所熟悉。

println(“Hello, World!”)

50. Swift – 2014

Swift是一类经过编译的、多范式的对象C词汇,其设计目标是简单、高性能和安全。它是由苹果公司开发的开源软件,从而与Objective-C一起成为开发移动iOS应用流程的化解方案。

print(“Hello, World!”)

结论

通过这次天数旅行,用50种相同词汇撰写了“Hello, World!”流程,向人们展现了70年来计算机系统C词汇的变迁。

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

【End】

50 种不同编程语言的“Hello World”,你知多少?

热 文 推 荐 

CSDN创始人蒋涛:开发人员是泛终端生态的第一推动力

中国工程院院士评选结果公布,阿里王坚当

开发人员需要了解的硬核知识之操作系统和应用

小米 9 年,雷军开启 AIoT 与 5G 超级互联网时代!

开发人员正在消失?

5G套餐到底该不该换?看完你就明白啦!

他的公司1年令比特币暴跌数次,上榜福布斯捐10亿美元的跨界传奇

50 种不同编程语言的“Hello World”,你知多少?

50 种不同编程语言的“Hello World”,你知多少?你点的每个“在看”,我都认真当成了喜欢

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务