『杂』编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!
『杂』编程语言 50 年来的变化,我用 50 种编程语言告诉你“Hello world”怎么写!
当我们学习一门新的语言时,“Hello, World!“通常是我们所写的第一个程序。
因此,所有程序员在职业生涯中至少完成了“Hello, World!“程序员在职业生涯中通常使用一种以上的编程语言,他们中的大多数甚至至少已经实现了十几种。
甚至有一个名为 TTHW 的指标来衡量一个程序员接触一门新的编程语言时,成功写出“Hello, World!“并运行所需要的时间。
然而,如果今天我问你,你可以写多少种不同的编程语言,你写一个”Hello word”
为了帮助你,刷新你的记忆力,我建议在计算机编程世界中走一段短暂的穿越时间的旅程。为此,我将向您展示”你好,世界!这将允许您了解计算机编程语言随时间的演变。
1. 汇编语言(Assembly Language) - 1949
汇编语言诞生于 1949 年。本文我向你展示的是适用于 Intel 8080 的 8 位处理器的,发布于 1974 年 4 月的汇编语言经典代码。
1 |
|
2. Fortran - 1957
Fortran 是 Formula Translation 的衍生物,这是一种通用的交互式编程语言,特别适合于数值和科学计算。Fortran 创建于 1957 年,下面是它的第一个“Hello, World!”程序:
1 |
|
Fortran 90 或 95 的写法有所不同:
1 |
|
3. Lisp - 1958
Lisp 是最古老的编程语言系列,它既是交互式的又是函数式的。1958 年,Lisp 作为一种实用的演示程序模型被创建出来,但是直到 1970 和 1980 年代,Lisp 才成为人工智能世界中非常流行的语言。
下面是 Lisp 的“Hello, World!”程序:
1 |
|
4. Cobol - 1959
Cobol 语言于 1959 年正式创立,并且在 2019 年刚刚庆祝过创立 60 周年。Cobol 表示面向通用业务的语言(COmmon Business Oriented Language),目标是成为编程业务应用程序的通用语言。在 2019 年,Cobol 仍被广泛应用于银行和保险的相关系统中。
下面是 Cobol 的“Hello, World!”程序:
1 |
|
5. BASIC - 1964
BASIC 是 Beginner’s All-purpose Symbolic Instruction Code(初学者通用符号说明代码)的缩写。它是一门高级编程语言,其主要目标在于易用。它的“Hello, World!”程序如下:
1 |
|
6. Logo - 1968
Logo 旨在成为易用的 Lisp,通常被称为“Lisp without brackets”,Logs 并不是面向对象编程语言,但它可以帮助你入门计算机编程。
1 |
|
7. B - 1969
B 语言创建于 1969 年,它现在已经过时了,但它的计算机编程语言的发展史上发挥着重要的作用。因为正是 B 语言启发了现在广泛应用的 C 语言。
1 |
|
是不是语法层面就非常像 C 语言了。
8. Pascal - 1970
Pascal 是一种交互式编程语言,它创建于 1970 年。它被设计出来主要出于教学目的,因为这个语言的特点是清晰,且严格的语法有助于良好的程序结构。
1 |
|
Turbo Pascal 是 Pascal 语言的集成开发环境,在 1983 年被创建,并在 1980 年代和 1990 年代取得了巨大的成功。
Turbo Pascal 的“Hello, World!“程序如下:
1 |
|
9. Forth - 1970
Forth 是一门基于栈的交互式编程语言,由 Charles H. Moore 在 1960 年代发明。但它的第一个大版本是在 1970 年发布的。它于 1994 年被 ANSI 标准化,并于 1997 年被 ISO 采纳。2014 年的 Forth2012 为语言的发展又焕发了生机。
下面是 1970 年版本 Forth 语言的“Hello, World!” 程序:
1 |
|
10. C - 1972
1972 年的贝尔实验室中,Dennis Ritchie 和 Ken Thompson 两位大佬为了开发 UNIX 发明了 C 语言。Ken Thompson 曾开发过 B 语言,Dennis Ritchie 决定通过对 B 语言添加类型来创造 C 语言。所以说 B 语言为 C 语言提供了灵感。
1 |
|
11. Smalltalk - 1972
Smalltalk 受到 Lisp 的启发,它是一门面向对象的,动态类型的编程语言,它被发明于 1972 年。Smalltalk 是最早具有集成开发环境的编程语言之一。
1 |
|
12. Prolog - 1972
Prolog 是与人工智能和计算语言学相关的逻辑编程语言,被创建于 1972 年。
1 |
|
13. ML - 1973
ML 是 Meta Language 的简称,是一种以 Lisp 为基础的函数型编程语言。ML 通常以 Lisp 为特征,具有类型。
1 |
|
14. Scheme - 1975
Scheme 创建于 1975 年,是一种多范式编程语言,支持函数式和交互式编程。它是 Lisp 三种重要的变种之一,由 Common Lisp 和 Clojure 共同开发。
1 |
|
15. SQL - 1978
SQL 即结构化查询语言,是用于操作关系数据库的标准计算机编程语言。虽然在设计时不能创建简单的“Hello, World!“程序,但我想写出来应该是一个有趣的程序,如果你想学习 SQL,这里有一些推荐课程。
1 |
|
16. C++ - 1980
C++是由 Bjarne Stroustrup 在 1980 年创建,他为 C 语言增加了类,在 1983 年得名 C++。现在 C++已经通过了 ISO 标准化,并广泛应用于工业和其他领域。如果你想要学习 C++,这里有一些推荐课程。
1 |
|
17. Ada - 1983
Ada 是一种面向对象编程语言,其开发始于 1980 年初,并在 1983 年完成发布。之所以叫做 Ada 是为了纪念 Ada Lovelace,这可能是历史上第一位女性计算机科学家。
Ada 通常用于需要很高可靠性和安全性的实时系统和嵌入式系统中。
1 |
|
18. Common Lisp - 1984
Common Lisp,通常缩写为 CL,是 ANSI 标准化的 Lisp 语言规范。
1 |
|
19. MATLAB - 1984
MATLAB 是一种用于数值计算的脚本语言,被用于“Matrix Laboratory”。MATLAB 是由同名的开发环境模拟的。
1 |
|
20. Eiffel - 1985
Eiffel 是一种围绕设计方法设计的面向对象编程语言,它具有当下非常流行的概念,例如“按约定编程”或复用。
1 |
|
21. Objective-C - 1986
Objective-C 是一种面向对象编程语言,它像 C++一样,是 C 语言的扩展,而与 C++的区别在于它的动态消息分发或动态加载。
现在,它主要用于 Apple 操作系统:macOS 以及 iOS 的衍生品。
1 |
|
22. Erlang - 1986
Erlang 是一种支持多种范式的编程语言:并发、实时、分布式。它基于 Actor Model,具有容错能力以及代码热更新能力,所以 Erlang 开发的应用可用性通常很高。
1 |
|
23. Perl - 1987
Perl 是由 Larry Wall 在 1987 年创建的编程语言,它可以轻松处理基于文本的消息。Perl 是一种解释型语言,它受 C 语言的控制和打印结构以及 shell 脚本的启发。
1 |
|
24. Caml - 1987
Caml 代表 Categorical Abstract Machine Language(分类抽象机器语言),是一种通用的编程语言,旨在提高程序的安全性和可靠性。Caml 是一种致力于函数式、交互式和面向对象风格,这也是一种非常独特的语言。
1 |
|
25. Tcl - 1988
Tool Command Language(工具命令行语言),是 John Ousterhout 在 1988 年开发的一种脚本语言。它是一种动态类型语言,具有跨平台、可扩展、易学习等特点。并且可以轻松和 C 语言进行交互。
在 1990 年, John Ousterhout 又开发了 Tcl 的扩展——Tk,这是一个可移植的用于创建图形界面的库。我们今天所讨论的 Tcl,多数情况是指 Tcl 和 Tk 的组合。
1 |
|
- Haskell - 1990
Haskell 是一种基于 lambda 计算和组合逻辑的函数式编程语言。
1 |
|
27. Python - 1991
相信大家对 Python 都比较熟悉,即使没有过,基本上也都听说过。它是一门解释型语言,可以跨平台。Python 支持结构体,函数和面向对象的交互式编程。随着 AI 的发展,近几年 Python 的热度也是持续上涨。
如果你想学 Python,可以参考这份课程推荐。
下面是 Python3.0 以后版本“Hello, World“程序的写法。
1 |
|
1
28. Visual Basic - 1991
Visual Basic,通常简称为 VB,是第三代事件编程语言。微软也为其创建了集成开发环境。
1 |
|
29. Lua - 1993
Lua 创建于 1993 年,是交互式编程语言。它专注于嵌入其他应用程序以对其进行扩展。
译者注:我们之前介绍过 Lua 在 Redis 中的应用,不知道你是否还记得。
1 |
|
30. Ruby - 1995
由于对 Smalltalk 和 Lisp 的开发感到沮丧,Yukihiro Matsumoto 从 1993 年起开始在 Emacs 上设计 Ruby 语言,并于 1995 年发布了第一版。Ruby 是解释型、面向对象、多范式的编程语言。如果你感兴趣,可以看一下这些课程。
1 |
|
31. Java - 1995
Java 是 James Gosling(我们常说的高司令)在 1995 年时创建的一门面向对象编程语言,到目前为止,Java 仍然是业界最流行、使用最广泛的语言。使用 Java 可以开发从客户端到服务端到各种应用,Google 选择 Java 作为 Android 开发语言这件事使得 Java 得到了更进一步的发展。想要学习 Java 的话可以关注这几门课程。
1 |
|
32. JavaScript - 1995
JavaScript 是一门主要用于开发 Web 页面的脚本语言,但现在也可以用作服务端开发,如 Nodejs。JS 是一门面向过程的语言,推荐课程在这里。
1 |
|
33. PHP - 1995
1995 年对于编程语言而言绝对是非常重要的一年,在 Java 和 JavaScript 之后,PHP 也于同年诞生。PHP 是一门解释型的面向对象编程语言。
1 |
|
34. Rebol - 1997
Rebol 是一种高级脚本语言,自称“消息传递语言”。
1 |
|
35. ActionScript — 1998
ActionScript 可以用于开发客户端应用程序,如 Adobe Flash 和 Adobe Flex;也可以用于服务端开发(Flash media server, JRun, Macromedia Generator)。现在,ActionScript 在 Unity 图形引擎中被当作脚本语言使用。
1 |
|
36. D - 1999
D 语言是一门面向对象编程语言,它的设计借鉴于许多语言,包括 C++、Java 和 Eiffel。D 语言是一门优秀的语言,但是一直都没有像它的创造者期望的那样获得成功。
1 |
|
37. C# - 2000
2000 年,微软就 Java 语言与 Sun 公司发生争议,随后便创造了 C#,C#是一种被设计为在 Microsoft.NET 平台上开发的面向对象的编程语言,它是由 C++和 Java 派生而来,使用了许多它们的通用特性和概念。C#也可以用来在 ASP.NET 平台上开发 Web 应用。C#课程自取。
1 |
|
38. Groovy - 2003
Groovy 是运行在 Java 虚拟机上的一门面向对象编程语言,它是 Java 的超集,其设计受到了 Python、Ruby 和 Smalltalk 的启发。这里有一些学习书籍可以参考。
1 |
|
39. Scala - 2003
Scala 是一种多范式编程语言,旨在以简洁、优雅的形式表达常见的编程模型。Scala 通过静态类型集成了面向对象和函数式编程的范例。Scala 课程。
1 |
|
40. F# - 2005
F#是一门在.NET 平台上开发的函数式、面向对象编程语言。F#源自与它高度兼容的 OCaml,它们都属于 ML 语言这一系列的。
1 |
|
41. Windows PowerShell - 2006
Windows PowerShell 是 Microsoft 开发的软件套件,包括命令行界面,称为 PowerShell 的脚本语言和开发套件。 从 Windows 7 开始,PowerShell 已作为标准配置提供。
1 |
|
42. Clojure - 2007
Clojure 是编译型、跨平台的函数式编程语言,它可以安全、简单的开发分布式系统。Clojure 是 Lisp 的三种主要方言之一。Clojure 可以编译成 Java 字节码,JavaScript 代码或者是.NET 字节码,因此它可以运行在 JVM、CLR 和浏览器上。
1 |
|
43. Go - 2009
Go 是一种编译型的支持并发的编程语言,它的设计受到了 C 和 Pascal 的启发,该语言由 Google 从 Robert Griesemer,Rob Pike 和 Ken Thompson 的最初概念开发而来。没错,这个 Ken Thompson 就是在 1969 年设计 B 语言的人!
1 |
|
44. Rust - 2010
Rust 是由 Mozilla 设计并开发的一门多范式的编译型编程语言。Rust 被设计为“安全、并发、实用的语言”,在某些方面支持函数式编程风格,面向对象编程。Rust 被认为有望替代 C++。
1 |
|
45. Dart - 2011
Dart 是由 Google 开发的用于 web 应用的编程语言,它最初的目标是替代 JavaScript。目前,Dart 的目标还没有实现,开发人员的首要任务是可以将 Dart 转换成与所有现代浏览器兼容的 JavaScript 代码。Dart 也可以用于服务端的开发。
Dart 最近的势头很猛,主要是因为它是手机端流行框架 Flutter 的开发语言。
1 |
|
46. Kotlin — 2011
Kotlin 是一门面向对象编程语言,支持静态类型,可以被编译成字节码运行在 Java 虚拟机上。也可以编译成 JavaScript 语言,或者在其他多个平台运行的语言。(感谢 LLVM)2017 年,Google 使 Kotlin 成为继 Java 之后 Android 正式支持的第二种语言。如果你想学 Kotlin,可以参考这些课程。
1 |
|
47. Ceylon - 2011
Ceylon 是由“红帽”创建的开源的强类型和静态类型的高级编程语言,它的语法类似于 Java。可以将其编译成 Java 字节码和 JavaScript。
1 |
|
48. TypeScript - 2012
TypeScript 是由微软开发的免费、开源的编程语言。用于改善和保护 JavaScript 代码的生产。TypeScript 是 JavaScript 的超集,可以转换为 JavaScript,以便由任何 Web 浏览器或 JavaScript 引擎解释。
1 |
|
49. Julia - 2012
Julia 是用于科学计算的高级、强大、动态的编程语言,使用的是其他类似开发环境(例如 MATLAB、R 或 Python)的用户熟悉的语法。
1 |
|
50. Swift - 2014
Swift 是一门编译型、多范式的编程语言,它简单、高效、安全。它由苹果开发并开源。使其成为与 Objective-C 一样开发 iOS 移动应用的解决方案。
1 |
|
结论
我们的旅行到此就要告一段落了,我想你介绍了 50 种语言的“Hello, World!“程序的写法。本文所提供的编程语言列表远非详尽。希望你能和我分享你喜欢的语言的“Hello, World!“程序。
译注:
50 年来的更新换代,有的语言还是一样流行,相信你还记得第一个 Hello word 程序,每一个程序员都有一个世界和平的梦想“Hello world”。
你不会真的以为这叫你好世界吧。