GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

十年后将要凋零的五种编程语言

2020 年 8 月 31 日

十年后将要凋零的五种编程语言

随着时间的流逝,程序员们发现了更新、更简单的工作方式,新的编程语言如雨后春笋般出现,但只有少数编程语言能成为社区的新宠。这种进步的一个副作用是一些古老的编程语言必然会跟历史一样被人们遗忘。如果一个编程语言无法随着时间的推移提升其价值,那么它的用户群终将会流失,并逐渐淡出人们的视线,或者成为更新一代编程语言的基础。


最近,古老的 COBOL 编程语言上了热搜。在 1960 年代和 1970 年代,它曾经是许多美国银行和政府机构的首选的编程语言,但最终被更加简单有效的编程语言所取代。但是,使用 COBOL 构建的系统仍然存在,当一些政府机构发现他们需要通过更新代码来全面改革失业系统时,才发现业内没有几个开发人员可以熟练使用该编程语言。


沧海桑田,COBOL 早已物是人非。我们当前的许多编程语言也注定会有相似的下场。本文中,我们将分析未来 20 内最终会消失的 5 种编程语言。我知道这可能会伤害到那些正在使用这几个编程语言的程序员的内心,所以在开始介绍之前首先声明下这只是我个人的看法和预测。


1. Ruby

Ruby 在 1999 年发布后立即受到程序员们的热捧,它能够快速构建应用程序的特性给程序员留下了非常深刻的印象。紧随其后,备受欢迎的 Ruby on Rails 框架于 2004 年发布,由于 Ruby 和 Rails 这两个名称在当时几乎成为了同义词,因此 Ruby 很快地被推到了程序员最喜欢的编程语言排行榜首位。它经历了一个坚实的十年,稳居编程语言排行榜前列,一度成为众人瞩目的焦点,但是最近的十年它并不好过,所以 Ruby 纳进了我的淘汰清单列表。


为什么 Ruby 会逐渐消退呢?导致其排名下降的因素之一是其执行速度。由它构建的应用程序运行速度往往比其他流行的编程语言,比如 JavaScript、Go 和 Python 构建的应用(在某些框架下)运行速度慢。同时期下,后三者已经发展到可以满足当时的需求,而 Ruby 在很多方面一直在原地踏步,没有什么进步。例如,让 Ruby on Rails 名噪一时的 MVC 架构在现在被很多编程人员看来是笨重和过时的。


2. Visual Basic

考虑到 Visual Basic 是公认的程序员最不喜欢的编程语言之一的事实,将它包含在淘汰列表中是无可厚非的。它于 1991 年由微软发布,作为构建 Windows 的主要工具,确实实现了此目的,但多年来经常出现问题。程序员使用 VB 进行开发的热情差距很大,随着 2000 年 C#的发布,这种差距逐渐进一步扩大。由于 C#更加简洁,提供了更广泛的功能,并且更适合于云服务和移动开发(在当前市场中扮演着重要角色),因此很多开发人员都放弃使用 VB 转而投向 C#怀抱。最重要的是,似乎它的创建者也都无情地放弃了它,因为微软曾表示他们没有进一步发展它的计划。


3. Haskell

Haskell 是另一个古董级别的编程语言,它于几十年前创建,在世纪之交前一直被使用。不幸的是,对于 Haskell 来说,属于它的时代很快就要结束了。研究人员和学者大多将 Haskell 用于构建程序,以对其工作进行复杂的排列和外推计算,普遍认为它很难学习。学习路径困难必然导致非常有限的活跃用户,而 Haskell 的上一个最新的稳定版本是在 2010 年发布,这对于促进它本身的发展无济于事。


4. Perl

与 Visual Basic 命运一样,Perl 不被大部分使用它的开发人员所喜欢。在 Perl 于 1987 年开始流行时,它被誉为是适合任何一个人的编程语言,无论你是编程的初学者还是专业人士都可以使用,同时还被宣传可以用于各种各样的场景。但是,1991 年 Python 的出现,彻底粉碎了 Perl 主导编程世界的幻想。


尽管 Python 的语法相比 Perl 稍显繁琐,更加严格,但 Python 让用户使用脚本实现目标的过程变得更加简单直接,这改变了当时的游戏规则。Python 在 2000 年代开始让 Perl 黯然失色,并一度成为编程入门的首选语言。在过去的 15 年中,Perl 的使用量一直在稳步下降,我们看不到任何它将停止下滑的迹象。


5. Objective-C

Objective-C 与 Apple 的关系类似于运动相机与 GoPro 的密切联系——两者都是他们所属公司专用的工具。尽管 Objective-C 已经在 macOS、iOS 和 OS X 开发中使用了二十多年(1996 年至今)的时间,但如今已经很少有程序员在使用该语言,因为 Swift 横空出世了。


Swift 由 Apple 构建并于 2014 年发布,旨在成为 macOS、iOS 及其他几个 Apple 相关平台的新编码标准。Obj-C 在很大程度上是基于复杂的 C 语言创建的,而 Swift 有效地删除了这些复杂的元素,同时增加了一些新的功能特性,例如自动内存管理,对 Cocoa Touch 的支持以及类型安全的集成。


Swift 设法实现和维护了较高的语言稳定性和用户采用率,因为 Apple 公司仍在坚持重写 Obj-C 库,以使旧语言的使用者可以很容易地进行过渡。尽管仍然有很多关于这两种选择哪个更好的讨论,但当前的趋势表明,Objective-C 终将被淘汰。


总结

尽管上述提到的语言似乎都处于下降趋势,但不能保证它们最终一定会消失。如果他们的创造者和社区投入足够的精力来更新和维护它们,添加新功能以及有用的特性,这些编程可能会卷土重来,恢复生命力。但事实是广大程序员更有可能继续涌向更新更好的选择。


如果你正在考虑开始学习哪种语言,那么有许多因素需要考虑。如果你只是将编程当做一种兴趣爱好,你可以聆听一下自己内心并选择最能激发你兴趣的那个来学习,即便所选的编程语言不再被广泛使用甚至面临淘汰。另一方面,如果你正在从事编程相关的工作,那么不应该只选择最流行的编程语言,也不应该赌一把选择未来可能会成为最流行的编程语言。而应该通过仔细对比各个编程语言的功能特性,市场需求以及可见的未来增长潜力等因素后做出选择,这才是明智之举。


英文原文

5 coding languages that will disappear in 10 yeaers


2020 年 8 月 31 日 10:186812
用户头像
小智 前 InfoQ 主编

发布了 400 篇内容, 共 317.0 次阅读, 收获喜欢 1759 次。

关注

评论 3 条评论

发布
用户头像
Haskell 上一个最新的稳定版本 8.10.2 (released 8th August 2020)
2020 年 09 月 16 日 16:18
回复
似乎指的是语言设计上的「版本」,即 Haskell 2010,类似 C++11/C++17 这种
2020 年 09 月 18 日 04:14
回复
用户头像
Ruby 真的不行了吗?
2020 年 09 月 15 日 13:31
回复
没有更多了
发现更多内容

【架构师训练营第 1 期 03 周】 学习总结

Bear

极客大学架构师训练营

链表转换为二叉排序树、反应式编程 RxSwift和RxCocoa 、区块链hyperledger环境搭建、环境架构、John 易筋 ARTS 打卡 Week 20

John(易筋)

响应式编程 ARTS 打卡计划 hyperledger 链表转为二叉排序树 chmod

第三周作业

Kenny

架构师训练营第一期——第三周总结

tao

第三周 作业一

mm马

极客大学架构师训练营

架构第三周作业

Geek_Gu

极客大学架构师训练营

架构训练营 - 第3周课后作业 - 学习总结

Pudding

架构师训练营第 1 期 02 周 作业

Geek_a01290

极客大学架构师训练营

第二周作业

Kenny

架构师训练营第三周命题作业

一马行千里

极客大学架构师训练营 命题作业

第三周总结

积极&丧

极客大学架构师训练营

第三周 学习总结

mm马

极客大学架构师训练营

第三周总结

fmouse

极客大学架构师训练营

架构师训练营 - 第 3 周课后作业(1 期)

Pudding

Week 3 作业 02

Croesus

第三周作业

熊桂平

极客大学架构师训练营

第三周学习总结

熊桂平

极客大学架构师训练营

Week 3 學習總結 - Design patterns

Christy LAW

架構師 設計模式 Design Patterns

设计模式及相关应用案例

garlic

极客大学架构师训练营

Week_03 学习总结

golangboy

极客大学架构师训练营

第三周 代码重构 学习总结

应鹏

极客大学架构师训练营

架构师训练营 - 第三周作业

咖啡

第三周课后练习 - 作业 2

致星海

架构师训练营第一期——第三周作业

tao

第三周课后练习 - 作业 1

致星海

Singleton Pattern & Composite Pattern

架构师训练营第 1 期第三周课后练习题

郑凯元

极客大学架构师训练营

Week 3 作業一 : Design Patterns

Christy LAW

Java 架構師 設計模式 Design Patterns

Week_03 作业

golangboy

架构师训练营Week03作业

IT老兵重开始

极客大学架构师训练营

第三周

等燕归

DNSPod与开源应用专场

DNSPod与开源应用专场

十年后将要凋零的五种编程语言-InfoQ