当前位置:首页 > 科技 > 正文

这 11 种编程语言,还“活着”吗?

摘要:你听过多少种编程语言?目前主流的 Java 、Python、Java、C、C++ 等自然是耳熟能详,但更早之前的编程语言你了解吗?你知道它们还在吗?

链接:

作者 | Tanjim Mohamed Nirjhor

译者 | 弯月 责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

编程语言发展至今,有的语言仍然炙手可热,而有的语言已经敲响了丧钟。看看如下这张编程语言的历史纪年表,你听说过的有多少种?

本文不是为了哀悼这些编程语言,而是让我们找到前进的力量,本文提及的这11种语言虽然不再流行,但它们为现代编程语言的发展奠定了基础,并为科学家、开发人员和工程师铺平了道路。

这 11 种编程语言,还“活着”吗?

Ada

这 11 种编程语言,还“活着”吗?

该语言根据英国数学家 Ada Lovelace(埃达·洛夫莱斯)命名,她是史上最早的程序员之一。1991 年,Ada 受美国国防部的委托,整合了美军当时使用的 450 多种编程语言。

根据维基百科的说明:

“Ada 是一种结构化的、静态类型的、命令式的、范围广泛的、面向对象的高级计算机编程语言。”

Ada 的设计初衷就在于完成如此多的任务,所以最终结果就是一个大而全且十分复杂的编译器。

1991 年,美国国防部要求所有软件都使用 Ada(Ada 强制令),但经常会破例允许一些软件不使用 Ada。

1997年,随着美国国防部采用商业技术,Ada 强制令也被取缔了。

然而,Ada 在商业上的使用并没有随着 Ada 强制令的取缔而结束。如今,Ada 仍广泛用于医疗以及其他关键任务系统编程。

Algol

这 11 种编程语言,还“活着”吗?

Algol 最初是由一群计算机科学界的重量级人物于 19 世纪 50 年代设计的,作为计算机协会(Association for Computing Machinery,简称ACM)描述算法的标准。

Algol 的设计旨在避免 FORTRAN 的一些常见的问题,它极大地影响了后来许多其他命令式语言,包括 PL/I、Simula、BCPL、B、Pascal 和 C。

60 年代之后,Algol 不再有任何发展,同时这门编程语言的发展也走到了尽头,逐步让位于其他编程语言。

APL

APL 创建于 20 世纪 60 年代,是一种动态类型的编程语言,其核心技术是多维数组。APL 极大地影响了概念建模、电子表格、函数式编程以及计算机数学包的发展,并启发了其他若干编程语言。

由于 APL 鼓励程序员使用多维数组和符号,因此用 APL 编写的代码相对比较复杂,而且对于不熟悉该语言的人来说理解难度很大。

如今仍有一些顽强的 APL 程序员坚守在物理或数学实验室中,与非常复杂的算法奋战。

Forth

这 11 种编程语言,还“活着”吗?

Forth 是一种无类型、面向堆栈的编程语言,专为计算器、计算机辅助设计 (CAD)、天文和空间应用等嵌入式系统而设计。这门编程语言适用于编写高效、可靠、执行速度非常快的小型应用的代码。

虽然 Forth 主要用于嵌入式领域,但很多操作系统的引导加载程序也用到了该语言。除了这些领域之外,大多数程序员也只是听说过该语言,但并未真正使用过。

LISP

这 11 种编程语言,还“活着”吗?

LISP 诞生于 20 世纪 50 年代后期,其最有名的经典数据结构之一便是链表。链表是一种非常高效的机制,可用于在单个结构中处理多种数据类型。LISP 提出的许多概念在如今数据量很大、规模非常紧凑的系统中都有使用。

LISP 有很多后续的衍生语言,最著名的便是 Common Lisp 和 Scheme。

在经历了多年的逐步下滑之后,随着研究人员寻找为小型系统添加智能功能的方法,LISP 的发展也出现了复苏。但在 AI 的世界之外,LISP 并不是很成功。

Logo

这 11 种编程语言,还“活着”吗?

Logo 最初是于 20 世纪 60 年代后期设计的,是一种被用作教授编程概念的语言。Logo 的形式非常类似于LISP 语言,也被称为面向逻辑的编程语言。

如今这门编程语言主要应用于人工智能、数理逻辑和发展心理学领域。

Logo 最有名的是海龟绘图,后来许多其他编程语言也声称自己使用了“海龟绘图”。尽管这些语言并不是真正的 Logo 语言,但依然让大众觉得很迷惑,最终这也导致 Logo 语言开始走下坡路。

Pascal

这 11 种编程语言,还“活着”吗?

Pascal 是 Niklaus Wirth 于 20 世纪 70 年代设计的编程语言,旨在教授结构化编程的概念,这门语言对个人计算机编程产生了重要影响。

80 年代中期,Borland Turbo Pascal(不同于 Pascal)成为了一种流行的开发语言,用于开发各种软件,包括从构建 Apple Lisa 的软件到编写 Donald Knuth 的 TeX 系统。

随着结构化编程逐渐被面向对象编程所取代,Pascal 的受欢迎程度也随之下降。如今的 Pascal 还有一批忠实粉丝,只不过该语言的辉煌岁月已然结束。

Modula-2

这 11 种编程语言,还“活着”吗?

Modula-2 是一种命令式、结构化、模块化的编程语言,由 Niklaus Wirth 于 20 世纪 70 年代开发。这门语言的设计目的是成为 Pascal 语言的继任者。

Modula-2 最重要且最显著的特征是模块的概念(一个代码块,可被程序的其余部分使用)。Modula-2 以及模块化编程成为了后来编程范例(例如面向对象编程)的基础。

虽然从商业的角度来看,Modula-2 的某些特性与 Pascal 相似,甚至比 Pascal 更好,但它最终未能像 Pascal 一样流行,如今几乎已被遗忘。

PL/I

这 11 种编程语言,还“活着”吗?

PL/I 是 IBM 于 20 世纪 60 年代设计的一种通用的、过程式的、命令式的、结构化的编程语言。

PL/I 的目标是改进 FORTRAN 的数值能力,以及加强 COBOL 的字符串和业务流程能力。最终,PL/I 成为了一种强大的结构化语言,可用于各行各业,从控制系统到会计系统,再到科学分析。

作为一种编程语言,PL/I 的流行度从未达到 IBM 的预期,最终也让位于 IBM 的其他语言,比如 CMS-2、SP/k、B、REXX 和 AS/400 控制语言等。

RPG

这 11 种编程语言,还“活着”吗?

RPG(Report Program Generator,报告程序生成器)是为 IBM 计算机(从穿孔卡和 IBM 1401 到 IBM Power i 大型机,再到 AS/400 等 IBM 中端计算机)编写传统应用程序而设计的编程语言。

尽管 RPG 的市场定位与 FORTRAN 和 COBOL 相同,但 IBM 依然决定放弃这门语言,最终导致它在 IBM 内部衰落。不过,当前RPG IV 仍被一众 RPG 程序员广泛使用,他们别无选择,尤其是在大量部署 IBM 计算机的地方。

RPG 曾是众多报纸和杂志出版物的热门话题,如今逐渐被现代开发平台和硬件架构所取代,如高端 LINUX/UNIX 和 JEE。

Smalltalk

这 11 种编程语言,还“活着”吗?

Smalltalk 就像编程语言中的“俳句”。Smalltalk 是 Xerox PARC 的一群计算机科学巨星于 20 世纪 70 年代末 80 年代初设计的,它影响了许多面向对象的编程语言,特别是 Apple、Common Lisp 对象系统、Dart、Dylan、Erlang、Etoys、Falcon、Go 、Groovy、Io、Ioke、Java、Lasso、Lisaac、Logtalk、Newspeak、Newton、Object REXX、Objective-C、PHP 5、Perl 6、Python、Ruby、Scala、Scratch 和 Self。

Smalltalk 的消息传递模型仅使用了六个保留关键字,Smalltalk 也因此成为了热门话题。

现如今,Smalltalk 仍广泛用作大学里面向对象编程的教学工具,但在商业领域没有太大的应用,因为这门语言有几个主要问题,包括:

内存消耗过大;

无法编写非常快的应用程序;

错过了进军 Web 的时机;

语法上与 C++、PHP、Perl、Python、Pascal 和 Ruby 等“传统”语言差别太大,因此学习难度较高;

Smalltalk IDE 与语言的结合太过紧密。

上述部分原因无疑是敲响了 Smalltalk 的丧钟。

总结

如今,编程语言不限于满足开发人员的需求,不限于抽象语法树,不限于工具,它们进化了!从十六进制(编号系统)到汇编程序,再到 C 语言,以及更高级的 Python、Java、Perl、PHP、Ruby、JAVA,编程语言的自动化程度越来越高,学习难度越来越低,且对程序员越来越友好。

这 11 种编程语言,还“活着”吗?

20 世纪大量使用 Fortran 以及 MATLAB 等语言,是为了能够在更短时间内完成计算,同时提高准确性,以巩固数学研究的目的。Fortran 首次提出了 do while 循环结构(Algol 称为 for 循环),并促使递归算法得到理论化。MATLAB 最初并不是一种传统的编程语言,然而该语言在发展的过程中,为了满足工程和科学上的需求而不断改进。

C 语言之所以成为经典,是因为它的诞生结合了天时地利人和。如今大多数编译器和内核都是用 C 语言编写的。而 C++ 则致力于缩短运行时间、节省内存,并优化软件和游戏开发行业中的这些资源。C++ 和 JAVA 是编程竞赛中的两种首选语言。Ruby 因其简单性而广泛流行,多用于 Web 开发,至今仍是最好的开源项目之一,其流行的 Web 应用程序框架 Ruby on Rails 拥有广泛的社区支持。

感谢这 11 种古老的语言

作为现代程序员,如今我们的工作效率更高,随着时间的推移,学习编程语言的难度也越来越低。从 Ada 到Smalltalk,每一种编程语言都曾有过自己的黄金时期,而且它们也为下一代语言的诞生做出了贡献。

“最好的程序指的是,计算机能够快速执行,而且人类也能够清楚理解的程序。

程序员就像散文作家,他们利用传统的美学和文学形式以及数学概念来传达算法,并让读者相信结果是正确的。”

—— Donald E. Knuth,《计算机科学论文选集》

这些语言可能已经死了,但它们的落幕标志着新时代的来临:任何人,不需要拥有数学或计算机科学学位,也不需要坐在麻省理工学院实验室里,摆弄 IBM 大型机,就可以编写计算机程序。因此才有了如今众多自学成才的程序员。

那么,问题来了,随着编程语言如此快速的发展,未来我们将何去何从?

☞ 亚马逊云科技十年领跑,为云而生的硬件创新进入加速期,普惠百万用户

☞ Hinton、DALL-E 2 皆上榜,盘点 AI 图像 10 年合成史!

☞马斯克:和苹果的误解得到了解决;小米 13 系列新品发布会将延期举行;IntelliJ IDEA 2022.3 发布|极客头条

你可能想看:

有话要说...

取消
扫码支持 支付码