2021年2月, 编程语言的七国集团峰会在风景优美的Linux庄园如期召开。
C, Java, Python, JavaScript , C++ , C#, PHP 相继入座。
C语言作为主持人,在大屏幕上用一幅图总结了一下近二十年各国的沉浮。
各国代表对C语言的工作纷纷表示赞赏。
C语言说道:我们七国集团已经统治IT界20多年了,历经桌面时代,互联网时代,大数据时代,人工智能时代而不倒,这次会议就是争取把大好局面再维持20年!
C语言随后介绍了本次G7峰会的两大议题。
1. 解决内部争端
2. 应对新编程语言的威胁
第一个议题刚刚开始各方就吵成了一锅粥。
Java率先向JavaScript发难, 指责它不遵守约定,用Node.js向后端发起进攻的恶劣行为。
C#愤怒地举报JavaScript 用Electron 对桌面开发的蚕食。
JavaScript则辩解说C/C++/C#也可以写代码运行在浏览器端中,不信你们去看WebAssembly,还有Java也做桌面开发例如IDEA和Eclipse…..
眼瞅着第一个议题就要打起来,C老大赶紧呼吁各方冷静,要约束各方行为,为了大局不要内讧。
经过一番唇枪舌战, 各方再次确立了自己的势力范围:
桌面开发:C#
前端开发:JavaScript
系统级软件:C/C++
后端开发:Java/C#
大数据:Java/ Python
人工智能:C++/Python
然后大会转入第二个议题,C语言给每个人发了一份报告, 上面列举了最近10年出现的编程新秀。
Go : 2009
Rust : 2010
Kotlin : 2011
Elixir : 2011
Julia : 2012
TypeScript : 2012
Swift : 2014
Python代表立刻建议把Elixir和Swift划掉, 因为前者结合了Erlang和RoR,太小众了。后者只在苹果的生态系统中折腾,对G7没啥威胁。
JavaScript则建议划掉TypeScript, 毕竟和自己师出同门,最终还得编译成JavaScript才能运行。
大家纷纷表示同意。
Java 也不甘示弱地要求把Kotlin从列表中划掉,因为那只是一堆语法糖而已,对他没啥威胁。
C#提醒Java不可大意,毕竟Kotlin有Google这么一个大腿, Google 为了摆脱Java API的束缚,和Oracle大打出手,正在力推Kotlin。
Java则坚定地认为Kotlin只是一点点改良,不是革命,成不了气候。
C语言表达了对Julia的担忧,因为他号称将 C 语言的速度、Ruby 的灵活、Python 的通用性、Matlab的数学符号结合在一起,支持并行处理!
Python则不屑一顾,说野心越大失望越大,一个人不可能把所有的好都得了去, 再说了,它主要是面向科学计算的,不用担心。
C脑子中突然闪过一句名言:弱小不是生存的障碍,傲慢才是。
名单上只剩下了Go、Rust。
Go : 2009
Rust : 2010
Kotlin : 2011
Elixir : 2011
Julia : 2012
TypeScript : 2012
Swift : 2014
剩下的这两位不可小觑, Rust和C一样贴近硬件,还能解决野指针问题,微软已经表态支持。
Go语言号称互联网时代的C语言,这些年借着云计算的东风,发展迅速, 后端已经有很多系统用它开发了。
刚才热闹的气氛一下子紧张下来,大家都在盘算他们对自己利益的侵犯有多大。
良久以后,Python放了一个大招:“他们侵犯了程序员的人权!”
原因是Go语言把类型定义放到变量名的后面,程序员很不适应,甚至真气逆行。
Rust的概念奇葩,所有权和借用难以被常人所理解,一段简单的代码都编译不过。
(码农翻身注:参见文章《我中了美人计》《自从我学了Rust,就开始了受虐之旅》)
大家都觉得可行,G7控制着主流舆论,占据道德制高点, 打人权牌轻而易举,这个招数屡试不爽。
Java则持保留意见,因为本家兄弟Scala和Go一样,也是把类型放到后面。
C语言则表示他和Ken Thompson很熟,如果实在不行就考虑招安Go,把G7变成G8。
只不过新人加入会触动现有的利益,需要从长计议。
为期半天的G7峰会胜利闭幕了,参会各方再次划分了各自势力范围,发表了一个重要的宣言。
宣言强调,G7经过多年的发展,非常稳定、成熟、强大,并且已经积累了海量的类库,拥有庞大的生态系统,采用新语言的成本极其高昂,风险极大。
宣言谴责了Go和Rust对程序员人权的侵犯,决定对他们实施为期一年的制裁,希望他们幡然悔悟,及时悬崖勒马。
宣言最后委婉地指出:G7的大门始终对任何人敞开,只要符合G7价值观的语言都欢迎加入。
(完)
后记:本文是看了TIOBE编程语言二十年排行榜,有感而发,周末了,大家乐呵乐呵就行,不必当真。
最后说下我的强烈感觉:“主流的编程语言已经被发明完了”,这种状况也许会持续个10年,甚至20年,直到下一波技术浪潮的来临。