50种编程语⾔,⼀句“Hello,World”!展现编程语⾔七⼗年发展!
历经 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衍⽣产品。
io:format("Hello world!~n").
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#也可以⽤于开发AS
P上的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!"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论