重磅!七国首脑会议决定制裁Go语言!
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价值观的语言都欢迎加入。
(完)

重磅!七国首脑会议决定制裁Go语言!的更多相关文章
- G7或变G6+1?特朗普七国峰会箱友军开炮
今日导读 G7 峰会刚召开完毕,德国总理默克尔发的一张照片就迅速火遍全球.照片中她身体前倾,像是在质问特朗普,而后者则双手交叉胸前,我自岿然不动,这张火药味十足的照片不禁让人脑补当时剑拔弩张的气氛.到 ...
- 第七课第六节,T语言流程语句( 版本5.0)
select语句 seelct语句,可以说是if语句的升级版,当我们的if语句嵌套太多,或者if语句判断太多的时候,都可以考虑使用选择语句 在多条件判断的时候,选择语句的执行速度比多个if语句要快而且 ...
- 第七课第四节,T语言流程语句(版本5.0)
break语句 通常用在循环.遍历语句中.当跳出(break)语句用于循环语句中时,可使程序终止循环而执行循环后面的语句, 通常跳出 语句总是与如果语句联在一起.即满足条件时便跳出循环.可以说:跳出语 ...
- 重磅︱文本挖掘深度学习之word2vec的R语言实现
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:2013年末,Google发布的 w ...
- PID控制算法的C语言实现七 梯形积分的PID控制算法C语言实现
在PID控制律中积分项的作用是消除余差,为了减小余差,应提高积分项的运算精度,为此,可将矩形积分改为梯形积分. 梯形积分的计算公式为: pid.voltage=pid.Kp*pid.err+index ...
- 搞定C系语言的的swap
http://www.cs.utsa.edu/~wagner/CS2213/swap/swap.html 原地址 Parameters, by value and by reference: Both ...
- 权力的游戏第七季/全集Game of Thrones迅雷下载
艾美及金球奖获奖HBO原创剧集<权力的游戏>第七季将于2016年夏天晚些时候开拍.新的一季共有七集,主要拍摄地为北爱尔兰,部分镜头也将在西班牙和冰岛取景.上映时间预计将略有推迟,至2017 ...
- 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 词向量的表示主流的有两种方式,一种当然是耳熟能 ...
- 一文犀利看懂中美贸易战 z
如今的中国面对着前所未有的经济全球化的大环境.面对着如何成为创新性国家的重任. 钛媒体注:美国东部时间 7 月 6 日凌晨0:01 分,美国正式开始对 340 亿美元的中国产品加征 25% 的关税,这 ...
随机推荐
- Workflow任务流发布不了
依赖的工作流要发布
- OsgEarth开发笔记(三):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(下)
前言 上一篇编译了proj6.2.0.gdal3.2.1,本篇继续. OsgEarth编译过程简介 OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后 ...
- 说说 JavaScript中 call和apply
下面有关JavaScript中 call和apply的描述,错误的是? call与apply都属于Function.prototype的一个方法,所以每个function实例都有call.apply属 ...
- P1541 乌龟棋(DP)
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行NNN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NNN格是终点,游戏要求玩家控制一个乌龟 ...
- Codeforces Round #579 (Div. 3) B Equal Rectangles、C. Common Divisors
B Equal Rectangles 题意: 给你4*n个数,让你判断能不能用这个4*n个数为边凑成n个矩形,使的每个矩形面积相等 题解: 原本是想着用二分来找出来那个最终的面积,但是仔细想一想,那个 ...
- POJ - 1654 利用叉积求三角形面积 去 间接求多边形面积
题意:在一个平面直角坐标系,一个点总是从原点出发,但是每次移动只能移动8个方向的中的一个并且每次移动距离只有1和√2这两种情况,最后一定会回到原点(以字母5结束),请你计算这个点所画出图形的面积 题解 ...
- service配置文件
[Unit]Description="itcp Service"After=network.target cs_tcp.service [Service]Type=simpleGu ...
- OpenStack Train版-2.安装keystone身份认证服务
安装 keystone 认证 mysql -uroot create database keystone; grant all privileges on keystone.* to 'keyston ...
- ++i和i++的区别
它们两个的数值变化的区别,我这里就不多说了 这里主要说明两者在效率上的区别 (1)首先如果是自带的数据类型,比如int型,++i和i++,编译器的实现方式是相同的,两者并没有效率上的区别,虽然也有副本 ...
- js 如何打印出 prototype 的查找路径
js 如何打印出 prototype 的查找路径 Function function func (name) { this.name = name || `default name`; } f = n ...