有你在真好 的个人博客
IT深度趋势:11种编程语言一度辉煌 缘何没落?
阅读:2176 添加日期:2021/3/27 23:30:48 原文链接:https://www.toutiao.com/item/6186844001264353793/
IT深度趋势:11种编程语言一度辉煌 缘何没落?

作为IT专业人士,我们总是在寻找下一个主流趋势,否则我们的结局就会像这些编程语言一样。

文|“IT投资客”记者 女T客

如果你已经在IT界呆了超过五年,那么你就会看到编程语言来了又去。新语言进入市场(你好,Swift),其他语言渐行渐远(MUMPS,我们都很了解你)。

虽然现今IT世界大多数的编程语言都是C++、Java和C#等,但是我相信我们中的许多人在其他语言中也有经验。为了充分理解今天开发工具的优缺点,回顾一下这些来了又去的语言是很有用的。

好吧,我承认,它也是很有趣的。

首先,我要说的是这里列出的11种语言是任意选择的。这里面有100多个竞争者,但是我寻找的语言至少是有或者曾经有一定的受欢迎程度和广泛使用度的。当然了,我也不是说这些语言本质上有什么不妥。

1、Ada

在1970年代中期有许多用于不同的目的的不同编程语言。美国国防部发现了这种混乱的情况和潜在的危险,所以他们想要委任一种新的语言--一种能统帅所有程序的语言。此种语言以Ada Lovelace的名字命名, Ada Lovelace是第一个计算机程序员,可以说此语言除了设计之外真的是无所不能。

维基百科里说:“Ada是一个结构化的、静态类型的、命令式的、宽范围的并且面向高级对象的计算机编程语言。”但问题是,它被设计来做如此多的事情导致了语言编译器也十分的巨大和复杂。国防部规定Ada在1991年启用(尽管经常有异议),到1997年该授权结束。

但国防部授权的结束并不意味着Ada真正的终结。因为它非常擅长生产非常可靠的代码(由于编译器中的错误检查程序), 在医疗和一些关键系统编程中你仍然会找到Ada的身影。不过,其似乎注定要逐渐消失,取而代之的是其他那些不那么雄心勃勃的语言。

2、Algol

IT深度趋势:11种编程语言一度辉煌 缘何没落?

当你谈论起古老的计算机语言时,Algol应该是鼻祖了。Algol最终与FORTRAN和COBOL在大致相同的时间出现,但是其对编程的主要贡献是其产出的语言,而不是作为一个重量级的影响者。

如果你学了使用Pascal编程,或屈从于PL / 1可以无所不能的诱惑,那么你就体会到了Algol带给编程的一系列特征。在算法的语言特征中Algol带给了我们“代码块”(通常由“开始/结束”指令集引发)和嵌套代码。

每个人都用过Algol,作为其他语言基础的是Algol 60。当你的主要开发快要结束时,想必这给了你一个好建议。如果你记得在Algol里的编程,那么你将会在软件世界实现霸主地位。如果你不记得,那么就尽情享受Algol的分支带给你的好处吧。

3、APL

IT深度趋势:11种编程语言一度辉煌 缘何没落?

如果你想在一群程序员之间挑起一场宗教战争,lob APL必然会参与讨论。我不会批评那些使用特定语言的人,但是这是一个例外。

APL被设计用来把复杂的数学转化为一个程序使其相对简单。数学怎么变成语言?这么说吧:一个三维数组是一个基本的数据单元。

为了将所有的数学算法写进一行(或者两行,如果真的很复杂的话)APL使用了各种符号。结果是一个代码块,对没有深入研究过APL的人来说绝对是莫名其妙的。APL的粉丝听到人们将其称为一个“只写语言”很不开心,但它在很多方面确实是一种难以理解的语言。

现在你仍然可以找到APL程序员,但通常是在处理及其复杂的事物的物理或数学部门。

4、Forth

IT深度趋势:11种编程语言一度辉煌 缘何没落?

到目前为止,我们一直在谈论的语言领域都是商业或科学发展世界。Forth是不一样的。Forth被开发为一种用于嵌入式控制编程的语言:它使应用程序占地小、高效且可靠。

Forth是一种堆叠定向语言。如果你认为惠普用在其经典计算机中的反向符号仍是从一个手持计算器中得到结果的最好方法,那么你有90%的可能知道如何用Forth来编程。如果你拿起一个惠普计算器并在想“=”是导向何处的符号,那么你必须要好好学学Forth了。

今天,你最可能在嵌入式世界遇到Forth,或在引导加载程序项目中见到,其是操作系统构建的一部分。在此之外,Forth在语言列表里已经没落,通常是被人们记下了而不是被人们使用。

5、LISP

早期的人工智能研究人员需要编程语言时,他们找到了处理器列表--LISP。LISP在1950年代末发展成熟,由于其联合列表基本数据结构的力量发展壮大。联合列表在一个单一的结构中处理多个数据类型是非常有效的机制。从某些方面来讲,LISP预示了后来被应用于大数据的概念,但只是被应用于非常小的系统。

LISP衍生出了大量继任者,Scheme最为突出。多年来其不断没落,LISP后期出现复兴的征兆,因为研究人员在寻找能为较小的系统增加智能功能的方法。除了AI世界之外,LISP没有成功,如果你见过IBM大型机实现早期的LISP变体的调试故障输出,你就会明白是为什么了。没有缩进,长串的“}”字符就能列出好几页去。

6、Logo

Logo是一种用来教编码概念的编程语言。从1960年代末开始,Logo正式成为一种LISP语言。它有一个有点混淆的历史,但“真正”的Logo至少是一代软件开发人员进入编程的入口点。

Seymore Papert是Logo的主要开发者。他原本希望他的语言来教人们如何编写LISP程序,但他意识到了许多人反应的他们写程序时的物理表象。

如果你能找到一个实现案例的话,它仍然是一个来教年轻人编程概念的伟大方式。

7、Modula-2

IT深度趋势:11种编程语言一度辉煌 缘何没落?

Niklaus Wirth将Pascal(稍后详细说明)作为一种教学语言发展成熟,但最终觉得它没有一种教学语言所需的所有特性。然而他没有不断地扩展和改变此语言,而是开发了一套新的语言--Modula 和Modula-2。

Modula和Modula-2带来的最重要的和最明显的影响是关于模块的想法和代码块的想法(这是由程序员控制的)。这种“范围限制”允许代码可以自己做各种有趣的事情,然后将结果反馈给主程序而不泄露所有混杂的细节。

而Modula-2的特性使它与Pascal商业编程相比成为更好的候选人,它从来不沿袭其兄弟姊妹发展。它没有消失,但是它几乎在真正问世之前就被遗忘了。

8、Pascal

IT深度趋势:11种编程语言一度辉煌 缘何没落?

在Niklaus Wirth开发的Modula和Modula-2成熟之前,瑞士计算机科学家就创建了Pascal。由于Pascal,他为此世界带来一种为教结构化编程概念的语言。从1970年代中期到1980年代中期,它做到了。在这一路上,它也成为了一种定义个人电脑编程的重要语言。

在1980年代中期,如果你在一台IBM个人计算机上编程,那你很有可能使用的是微软BASIC或Borland的Turbo Pascal。Turbo Pascal是一个动力发电站,不同形式的Pascal被用于为苹果Lisa写TEX系统来开发软件。

由于结构化编程拒绝面向对象导向的编程,Pascal的机会也随之丢失。你仍然可以找到用Pascal的顽固分子,但就像法国哲学家所说的,Pascal确实有过它的光辉岁月。

9、PL / I

在1960年代,如果你写商业代码那么你会选择COBOL编写。如果您是在科学和工程领域,那么你会选择ALGOL和FORTRAN作为工具。没有一种语言能够“做这一切”。但这种情况是在PL / I出现之前。(顺便说一下,--“I”是罗马数字“1”)。

IBM开发了一个巨大的结构化语言,可以用于写任何东西,从控制系统、会计到科学分析。其包裹在一个编译器里,也成为代码优化的早期基准。

现在你仍然可以得到一个PL / I编译器,但此语言却从未以IBM希望的方式被采用。

10、RPG(RPG 2,RPG 3)

IT深度趋势:11种编程语言一度辉煌 缘何没落?

IBM的中档业务系统,从IBM 1401到当前IBM Power i平台以来,被称为有史以来最成功的商业计算系统。绝大多数的应用程序是由这些机器通过一种编程语言--RPG写的。

RPG与FORTRAN和COBOL是同一时代的,然而它仍旧固执的深深扎根于一个供应商和一个平台。被经常使用的原因之一是其与可用的数据库平台和“循环圈”(在数据库中将代码块按顺序适用每一个记录数据库的能力)的紧密联系。

现在已经升级到了RPG 4,还有人每天正在编写RPG 4代码。曾经有一段时间,报纸和行业出版物曾经贴满广告寻求RPG程序员。但这股热浪已经过去了。相同的语言,已经在其他平台上称王,并且还有太多的特定应用程序只能用一个占主导地位的语言。

不过我仍然想知道,如果你的职业生涯就在RPG里,你认为它跟上现代的步伐了吗?

11、Smalltalk

IT深度趋势:11种编程语言一度辉煌 缘何没落?

在这个名单上有几个巨型语言,几乎做了所有语言能做到的事情。Smalltalk不在其中。Smalltalk是什么样的语言呢,它是一种导致计算机科学家给自己工作严格限制的语言。可以把它看作一个编程语言的规范。

Smalltalk是在1970年代末和1980年初由在Xerox PARC工作的许多计算机科学巨星创作出来的。它只保留了六个关键字组,并且在一个消息传递模型中操作。这是一种目标导向的编程,动作是消息传递给变量和其他实体的过程。它的机制是许多学习目标导向的编程的基础。

当创建商业代码时,Smalltalk有两个主要问题:它需要很多很多的内存,应用程序的产出速度不快。你仍然会发现它被用作教学工具,但是你很难找到其重要的商业用途。

这就是我的语言列表了,至少,这些语言已经不像当初那样辉煌了。你怎么认为?我对这几种语言下的结论为之过早吗?有其他语言更值得一提吗? 不管怎样,有趣的是看到这么多语言被开发出来尝试着去满足IT界的需求。然而有些却由于我们太专注于专利以至于当大环境改变时这些语言却并没有及时跟上脚步一起改变。随着技术的发展,我相信在未来会有新的编程语言出现。

编程语言来了又走,如果不能改变趋势,那就把握好趋势。

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号