旧的挑战再次出现。在本周的《命令行英雄》播客(第 3 季,第 5 集)中,这个想法与编程语言和平台有关。
COBOL 主导大型机
计算机科学领域中最杰出的人才之一是 Grace Murray Hopper。 每次我们不必用二进制来与计算机对话时,我都建议大声说:“谢谢你,格雷斯·默里·霍珀海军少将。”下次试试看,因为她是第一个编译器(将编程代码翻译成机器语言的软件)的发明者。
编者注:本文先前声明 COBOL 是第一种编译语言,但事实并非如此。阅读更多关于编译语言的早期发展。
Hopper 对于高级编程语言(包括 COBOL)的发明和采用至关重要。 她帮助创建了 COmmon Business-Oriented Language (COBOL 的缩写),时间是 1959 年。正如 Ritika Trikha 在 HackerRank 上所说的那样:
“COBOL 之母 Grace Hopper 帮助倡导创建了一种全新的编程语言,旨在跨所有业务系统运行,从而节省了大量的时间和金钱。 Hopper 也是第一个相信编程语言应该像英语一样阅读,而不是计算机术语的人。 因此,COBOL 的语法非常冗长。 但它有助于在计算密集型且仅在研究机构中流行的时代,使企业的计算过程更加人性化。”
在 1960 年代初期,大型机是一种共享大量计算能力的全新的架构。在大型机计算时代,COBOL 占据了主导地位。
当今世界的 COBOL
那今天呢? 随着大型机的衰落以及为 Web 和云设计的新型且更具创新性的语言的兴起,COBOL 的地位如何?
正如上周的《命令行英雄》节目中提到的那样,在 1990 年代后期,Perl(以及 JavaScript 和 C++)正在超越 COBOL。 并且,正如 Perl 的创建者 Larry Wall 当时所说:“由于某种奇怪的原因,对 COBOL 的需求似乎正在下降,因此 COBOL 在当今已无足轻重。”
快进到 2019 年,COBOL 远未“下降”。 正如 David Cassel 在 The New Stack 于 2017 年撰写的那样:
“路透社 在 4 月份报道说,大约 95% 的 ATM 刷卡使用 COBOL 代码,这种有 58 年历史的语言甚至为 80% 的面对面交易提供支持。 实际上,路透社计算得出,目前仍在生产中使用的 COBOL 代码有 2200 亿行,而且每天 COBOL 系统处理的商业额为 3 万亿美元。”
鉴于其在商业世界中的持续重要性,掌握 COBOL 可能是一项不错的职业发展。 由于专门从事该语言的人数有限,因此优秀的 COBOL 程序员有望 获得六位数的收入。
目前,Go 在云中占据主导地位
COBOL 早期统治的故事使我想起了某些事情。 如果我们调查一下这个云计算时代最具影响力的项目,您很难忽略位于榜首的 Go。 Kubernetes 及其许多相关技术(从 Etcd 到 Prometheus)都是用 Go 编写的。 正如 RedMonk 在 2014 年探索的那样:
“Go 迅速接近总提交量的 1% 和项目与贡献者的 0.5%。 虽然这种趋势显然很有趣,但乍一看,远低于 1% 的数字相对于整体采用率而言微不足道。 为了提供一些背景信息,Ohloh 上每种最流行的语言(C、C++、Java、JavaScript)仅占提交量的约 10% 和项目与贡献者的约 5%。 这意味着 Go 这个看似非常次要的参与者,在 FOSS 中的使用量几乎是最流行的语言的十分之一。”
在我之前的两份工作中,我的团队用 Go(重新)编写了基础设施软件,以成为这股巨大浪潮的一部分。 有影响力的项目继续存在于 Go 可以填补的空间中,正如 Uday Hiwarale 在 2018 年很好地解释的那样:
“使 Go 成为一种出色的语言的因素 [是] 其简单的并发模型、基于包的代码管理和非严格(类型推断)类型系统。 Go 不支持开箱即用的面向对象编程体验,但 [它的] 支持结构(structs)……,在方法和指针的帮助下,可以帮助我们实现相同的结果 [results]。”
在我看来,Go 似乎正在追随 COBOL 的脚步,但关于其未来的走向仍存在疑问。 在 2019 年 6 月,RedMonk 将 Go 排名第 16 位,其未来可能会朝着任何一个方向发展。
Go 可以从 COBOL 中学到什么?
如果 Go 能够看到它的未来,它会像 COBOL 一样,具有如此持久的力量吗?
《命令行英雄》本季讲述的故事说明了语言是如何诞生的,社区是如何围绕它们形成的,它们是如何受欢迎和标准化的,以及它们是如何缓慢衰落的。 我们可以从编程语言的生命周期中学到什么? 它们的弧线相似吗? 还是有所不同?
我认为这个播客非常值得订阅,这样您就不会错过任何一个播客。 我很乐意在下面的评论中听到您的想法。
5 条评论