基础设施即代码:COBOL 和 Go 的故事

COBOL 仍然是大型机的主导语言。 Go 可以从其历史中学习什么来主导云?
213 位读者喜欢这个。
Listen to the Command Line Heroes Podcast

旧的挑战再次出现。在本周的命令行英雄播客(第 3 季,第 5 集)中,这个想法带有一丝编程语言和平台的味道。

COBOL 主导大型机

计算机科学领域最杰出的人才之一是 Grace Murray Hopper。 每次我们不必用二进制来与计算机交谈时,我都建议大声说:“谢谢你,Grace Murray Hopper 后海军少将。”下次尝试一下,因为她是发明第一个编译器(将编程代码翻译成机器语言的软件)的人。

编者注:本文先前声明 COBOL 是第一种编译语言,但事实并非如此。 阅读更多关于编译语言的早期历史。

Hopper 对高级编程语言(包括 COBOL)的发明和采用至关重要。 她帮助创建了 COmmon Business-Oriented Language(简称 COBOL),时间是 1959 年。正如 Ritika Trikha 在 HackerRank 上所说的那样

“COBOL 之母 Grace Hopper 帮助倡导创建这种全新的编程语言,旨在跨所有业务系统运行,从而节省大量时间和金钱。 Hopper 也是第一个相信编程语言应该像英语而不是计算机术语一样阅读的人。 因此,COBOL 的语法如此冗长。 但它帮助在计算密集且仅在研究机构中普遍存在的时代,使企业的计算过程更加人性化。”

在 1960 年代初期,大型机是一种全新的架构,用于共享强大的计算能力。 在大型机计算时代,COBOL 占据了主导地位。

当今世界的 COBOL

但是今天呢? 随着大型机的衰落以及为网络和云设计的新型创新语言的兴起,COBOL 处于什么位置?

正如上周的《命令行英雄》一集中提到的那样,在 1990 年代后期,Perl(以及 JavaScript 和 C++)的增长速度超过了 COBOL。 而且,正如 Perl 的创建者,Larry Wall 当时说:“COBOL 现在没什么大不了的,因为出于某种奇怪的原因,对 COBOL 的需求似乎正在下降。”

快进到 2019 年,COBOL 远未“拖尾”。 正如 David Cassel 在 2017 年 The New Stack 上写道的那样

“路透社 4 月报道,大约 95% 的 ATM 刷卡使用 COBOL 代码,这种有 58 年历史的语言甚至支持 80% 的面对面交易。 事实上,路透社计算得出,目前仍在生产中使用 2200 亿行 COBOL 代码,而且每天 COBOL 系统处理 3 万亿美元的商业交易。”

鉴于 COBOL 在商业世界中的持续重要性,了解 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 重写了基础设施软件,成为这个重大浪潮的一部分。 正如 Uday Hiwarale 在 2018 年很好地解释道,有影响力的项目继续存在于 Go 可以填补的空间中

“使 Go 成为一种出色的语言的因素是:它简单的并发模型、基于包的代码管理以及非严格(类型推断)类型系统。 Go 不支持开箱即用的面向对象编程体验,但[它的]支持结构(structs)......,在方法和指针的帮助下,可以帮助我们实现相同的结果。”

在我看来,Go 似乎正在追随 COBOL 的脚步,但关于它的发展方向仍然存在疑问。 在 2019 年 6 月,RedMonk 将 Go 排名第 16 位,未来的发展方向可能朝任何一个方向发展。

Go 可以从 COBOL 中学到什么?

如果 Go 能够看到它的未来,它会看起来像 COBOL 的未来,拥有如此持久的生命力吗?

《命令行英雄》本季讲述的故事说明了语言是如何诞生的,社区是如何围绕它们形成的,它们是如何越来越受欢迎并标准化的,以及一些是如何缓慢衰落的。 我们可以从编程语言的寿命中学到什么? 它们的弧线相似吗? 还是它们不同?

我认为这个播客非常值得 订阅,这样您就不会错过任何一个。我很想在下面的评论中听到您的想法。

接下来要阅读的内容

Perl 会灭绝吗?

《命令行英雄》探讨了 Perl 的迅速崛起、从聚光灯下陨落以及编程语言生命周期的下一步发展。

I'm happiest at a microphone
Matt 曾经是 EMC 存储专家、VMware vExpert,并且是其他专有技术的粉丝。 他现在专注于开源和 DevRel 的采用。

5 条评论

拼写错误
object-priented programming
你的意思是
object-oriented programming

很好地发现了。 谢谢。

回复 ,作者:Francis Schommer (未验证)

历史更正:实际上,COBOL 是第二种这样的语言编译器。 FORTRAN 比 COBOL 早了将近整整两年。 两者都是了不起的改进,并且都在使用中。

感谢您纠正我的事实! 我似乎跳过了 FORTRAN。 我会添加一条注释。

回复 ,作者:William B Peckham (未验证)

我实际上还在用 COBOL 编写,本周末在编写一些新程序。 在 win10、GUI 界面、MariaDB(从 MySQL 迁移)和 Linux 服务器上运行。 效果很好......

Creative Commons License本作品采用知识共享署名 - 相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.