2021年2月,G7编程语言峰会在风景秀丽的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等桌面开发。打起来了,BossC赶紧呼吁各方冷静下来,约束各方的行为,为了大局避免内讧。经过一番口水战,各方重新确立了势力范围:桌面开发:C#前端开发:JavaScript系统级软件:C/C++后端开发:Java/C#大数据:Java/Python人工智能:C++/Python然后会议转向了第二个话题。C语言给大家发了一份报告,列出了最近10年出现的编程新秀。Go:2009Rust:2010Kotlin:2011Elixir:2011Julia:2012TypeScript:2012Swift:2014Python代表立即建议将Elixir和Swift划掉,因为前者结合了Erlang和RoR,太小众了。后者只是在苹果的生态系统中折腾,对G7没有威胁。对于JavaScript,建议划掉TypeScript。毕竟和自己一个学校的,还得编译成JavaScript才能运行。大家都同意了。Java也不甘示弱,也要求把Kotlin划掉,因为那只是一堆语法糖,对他没有威胁。C#提醒Java不要大意。毕竟Kotlin有Google这样的大腿。为了摆脱JavaAPI的束缚,Google与Oracle大打出手,力推Kotlin。Java坚信Kotlin只是一点改进,不是革命,更不会成为气候。C语言表达了对Julia的担忧,因为他声称结合了C语言的速度、Ruby的灵活性、Python的通用性、Matlab的数学符号来支持并行处理!Python不屑一顾,说野心越大,失望越大,一个人不可能得到所有的好东西。此外,它主要用于科学计算,所以不用担心。C的脑海里突然闪过一句名言:软弱不是生存的障碍,傲慢才是。列表中只剩下Go和Rust。Go:2009Rust:2010Kotlin:2011Elixir:2011Julia:2012TypeScript:2012Swift:2014剩下的两个也不容小觑。Rust和C一样接近硬件,也可以解决野指针问题。微软已表示支持。Go语言被誉为互联网时代的C语言。近年来,它借助云计算得到快速发展,许多后端系统也随之发展起来。刚才还热闹的气氛一下子变得紧张起来,所有人都在想,自己的利益到底有多大的侵犯。许久之后,Python有了大动作:“他们侵犯了程序员的人权!”原因是Go语言把类型定义放在了变量名后面,程序员很不舒服,甚至是逆行。Rust的概念很奇怪,所有权和借用一般人很难理解,简单的一段代码也编译不出来。(码农注意:见文章《我中了美人记》《自从我学了Rus,就开始了受虐之旅》)大家觉得可行。G7控制主流舆论,占据道德制高点。打人权牌很容易。这种策略已经过尝试和测试。Java有所保留,因为它的兄弟Scala和Go一样,也把类型放在了后面。C语言意味着他对KenThompson非常熟悉。如果实在不行,他会考虑招围棋,把G7变成G8。只是新人的加入会触及现有的利益,所以需要从长远考虑。为期半天的G7峰会圆满结束,与会各方再次划分各自势力范围,发表重要宣言。宣言强调,经过多年的发展,G7非常稳定、成熟、强大,积累了大量的类库和庞大的生态系统。采用新语言的成本极高,风险极高。宣言谴责Go和Rust侵犯程序员人权的行为,决定对他们处以一年的制裁,希望他们及时悔过自新。宣言最后委婉地指出:G7的大门永远向任何人敞开,只要语言符合G7的价值观,欢迎加入。(完)后记:本文基于阅读TIOBE编程语言20年排行榜,感同身受。周末了,大家可以玩的开心,别当真。最后说说我的强烈感受:“主流的编程语言已经被发明出来”,而这种情况可能会持续10年,甚至20年,直到下一波技术浪潮到来。
