本文转自公众号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 pointstart: mvi c,9 ; BDOS function: output string lxi d,msg$ ; address of msg call bdos ret ; return to CCPmsg$: db 'Hello, world!$'end start
02 Fortran - 1957
Fortran编程语言是Formula Translation的派生。它是一种汇编命令式程序设计语言,特地适宜于数值计算和科学计算。Fortran语言创立于1957年,用这种语言写的“Hello, World!”:
PROGRAM HelloWRITE (*,*) 'Hello, World!'STOPEND
在Fortran 90或95版本中,程序“Hello, World!”能够这样写:
PROGRAM HelloWRITE (*,*) '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 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是一种面向对象的编程语言。Eiffel基于当今十分风行的概念,如契约编程或重用。
class HELLO_WORLDcreate makefeature make do print ("Hello, world!%N") endend
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 mainimport "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年来计算机编程语言的变迁。