乐趣区

关于编程:近-50-种花式-Hello-World你会几种

本文转自公众号 CSDN(ID:CSDNnews)作者:Sylvain Saurel,译者:风车云马,责编:屠敏,原文链接:https://medium.com/javarevisited/70-years-of-hello-world-with-50-programming-languages-2400de893a97

导读:历经 70 年,一直呈现的编程语言为开发者解决了哪些难题?其存在又有怎么的个性?本文将以「Hello, World」为例,花色出现 50 种编程语言。

当咱们学习一门编程语言时,都是从“Hello, World!”开始。所有程序员在其职业生涯中,都至多接触过一个经典的“Hello, World!”程序。通常程序员会应用多种编程语言,多的甚至实现了十几种。

还有一种称为 TTHW(Time to“Hello, World!”)的办法,来掂量程序员创立一个新的“Hello, World!”程序的工夫。

你能够用多少种不同的语言编写一个“Hello, World!”程序,你的答案是什么?

让咱们在计算机编程的世界里回顾一翻。我会向你展现 50 种不同编程语言编写的“Hello, World!”程序。同时让你看到计算机编程语言随工夫的演变。

01 汇编语言 - 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

02 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

03 Lisp – 1958

Lisp 是最古老的命令式和函数式编程语言。它最后创立于 1958 年,在 20 世纪 70 年代和 80 年代,Lisp 最终成为人工智能世界中十分风行的语言。

(write-line "Hello, World!")

04 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.

05 BASIC – 1964

BASIC 是 Beginner’s All-purpose Symbolic Instruction Code 的首字母缩写,它是一种高级编程语言,其次要特点是易用性。

PRINT "Hello, World!"
END

06 Logo – 1968

Logo 是为了更容易应用 Lisp 语言,常常被称为“Lisp without brackets”。具体来说,Logo 是一种面向对象的编程语言。

print [Hello World !]

07 B – 1969

创立于 1969 年的 B 语言当初曾经过期了,但它依然扮演着重要的角色,因为它激发了 C 语言的灵感,而 C 语言至今仍被宽泛应用。

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

08 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.

09 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 的函数式编程语言。

print "Hello, World!\n";

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 语言标准。

(princ "Hello, World!")

19 MATLAB – 1984

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

disp('Hello, World!')

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 脚本语言的启发。

print "Hello, World!\n";

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 的组合。

puts "Hello, World!"

26 Haskell – 1990

Haskell 是一种基于 lambda 计算和组合逻辑的函数式编程语言。

main = putStrLn "Hello, World!"

27 Python – 1991

Python 是一种解释性编程语言,具备多范式、多平台的特点。Python 反对结构化、函数式和面向对象的命令式编程。这些年来,Python 变得十分风行,甚至在 2019 年成为最受欢迎的语言之一。

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

print("Hello, World!")

28 Visual Basic – 1991

Visual Basic,简称 VB,是第三代事件编程语言,是微软为其 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 年创立的一种面向对象的编程语言,至今仍是业界最风行和应用最多的语言。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!”:

print "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。

println "Hello, World!"

39 Scala – 2003

Scala 是一种多范式编程语言,旨在以简洁优雅的模式表白常见的编程模型。Scala 通过动态类型集成了面向对象和函数式编程的范例。

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

40 F# – 2005

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

printfn "Hello, World!"

41 Windows PowerShell – 2006

Windows PowerShell 是微软开发的一套软件,包含一个命令行界面、一种称为 PowerShell 的脚本语言和一个开发工具包。从 Windows 7 开始 PowerShell 作为规范语言。

echo "Hello, World!"

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) 的用户所相熟。

println("Hello, World!")

50 Swift – 2014

Swift 是一种通过编译的、多范式的对象编程语言,其设计指标是简略、高性能和平安。它是由苹果公司开发的开源软件,从而与 Objective- C 一起成为开发挪动 iOS 应用程序的解决方案。

print("Hello, World!")

论断

通过这次工夫旅行,用 50 种不同语言编写了“Hello, World!”程序,向人们展现了 70 年来计算机编程语言的变迁。

退出移动版