go语言是google推出的,google在此研发上倾尽全力,光是大牛就有Rob Pike, Ken Thompson等人。不过go在推出来的若干年,都不温不火,在商业生产领域乏人问津。
直到近年,随着云原生的兴起,golang才光彩照人,成为云原生领域的首选语言。这首先得益于docker是用go开发的,而docker成为容器领域的标准实现。随着docker的火热,google趁热打铁推出k8s,这个开源的容器调度系统面世后,给互联网产品开发和部署带来翻天覆地的变化。正是因为有了k8s,微服务才变得如此流行,产品的迭代速度,也就更加快速。
毫无疑问,k8s也是用go开发的。从此后,golang正式进入商业生产领域,提起云原生,以及DevOps(或者SRE),基本离不开go。如果你想找这方面工作,不会go语言,基本是没有前途的。
在云资源编排领域,还有个著名的工具terraform,也是用go写的,我自己就很喜欢它。它通过声明式编程,整合了对AWS, GCP, AZURE等云平台的资源管理。这个工具在国外相当流行,因为资源编排也是一种业务逻辑。比如某个业务,要用到几个web,几个db,多少storage,以及loadbalancer设计,这些本身就是业务逻辑。terraform生成的配置文件,可以很好的维护这些业务关系,并且支持版本迭代(更新、回滚)。在大规模部署里,Infra的声明,跟code一样重要,这也就是k8s, terraform这类工具如此流行的原因。

go还有一个重要开源产品是prometheus,一个基于时序数据库的监控工具,也是属于云原生领域。所以你看,云原生的产品生态,带动了golang这门语言的发展,让它真正步入商业生产领域,成为招聘领域的热门语言。
再看看python,近些年也有着类似经历。python历史很悠久,早些年也就用在系统管理领域,和部分web开发(django之类)。但系统管理领域,更主流的编程语言是perl,而web开发领域更受到一众语言的冲击,比如ruby, node。所以python情形也一度堪忧。
然而,这些年随着科学计算和AI的发展,python又老当益壮,重新焕发生机。这是因为一众的科学计算和AI库,都有python的实现,甚至成为主流的实现。比如Numpy, Scipy, Pandas, Matplot等历史悠久的机器学习和数据处理库。随着google在算法领域的发力,更有了tensorflow和keras这样优秀的机器学习/深度学习框架,它们都提供了python的实现。更多的python机器学习库可以参考这个链接。
python成为机器学习的首选语言,倒不是它设计的多么好,实际上python在设计上广受吐槽,它的原始作者在google也混不下去跑路了。python主要受欢迎之处在于简单易用,对新手极度友好,而众多的算法专业人士并不想写c++这样复杂的代码。在此情形下,python就变得很受欢迎。所以,随着机器学习/深度学习的兴起,python焕发第二春,又变得炙手可热,成为职场的重要编程语言。
此外还可以参考的是scala语言,它的历史也很悠久,所谓的函数式编程语言。近些年随着大数据的热门,scala又重新被关注。在并行计算方面著名的框架Apache Spark使用scala编写,分布式消息队列Apache Kafka也使用了scala。我对scala本身也比较熟悉,写过一本关于scala与spark的开源书籍。这门语言的优势还在于函数式编程,保证了数据安全,以及AKKA这种分布式并发actor框架。除此外,scala的设计可谓一团糟,使用上极度不友好。然而,正是大数据的兴起,让scala近些年也重新走入业界的视野,有段时间还很热门。
除了上述语言外,还有wordpress对php的影响也是一个重要体现。没有wordpress,php估计也就over了。要知道,全世界有超过8亿的网站由wordpress驱动,占所有网站比率的43%。这么大基数的wordpress网站还在运行着,注定php开发者还有市场。
综上,可见业务生态对编程语言自身的发展,是极其重要的,它甚至决定了编程语言的生死。要是没有云原生,go不一定能起来。要是没有机器学习,python估计也就死了。要是没有大数据,scala永无前途。要是没有wordpress,php也over了。
要推动一门新语言发展,首先就要找到它的用武之地,能突出它的特别优势的地方。web领域就算了,各类语言前仆后继,神仙打架,php, java, node, ruby, python谁都能站住脚,但是都没有特色,随时被淘汰。而像大数据、云原生、区块链、web3这样的专业领域,一旦站稳脚,反而能形成垄断地位。
从这个角度看,rust也挺有前途的,因为它在blockchain领域,分布非常广,请见这个链接的统计。还是那句话,业务为王,没有业务生态,再优秀的工具也就只能自嗨,没有前途。