重磅!七国首脑会议决定制裁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% 的关税,这 ...
随机推荐
- 2018 ACM-ICPC 焦作区域赛 E Resistors in Parallel
Resistors in Parallel Gym - 102028E 吐槽一下,网上搜索的题解一上来都是找规律,对于我这种对数论不敏感的人来说,看这种题解太难受了,找规律不失为一种好做法,但是题解仅 ...
- 【hdu 3579】Hello Kiki(数论--拓展欧几里德 求解同余方程组)
题意:Kiki 有 X 个硬币,已知 N 组这样的信息:X%x=Ai , X/x=Mi (x未知).问满足这些条件的最小的硬币数,也就是最小的正整数 X. 解法:转化一下题意就是 拓展欧几里德求解同余 ...
- MySQL8.0数据库出现的问题——外码创建方式、外键约束两个引用列不兼容问题、check约束问题、用触发器代替check约束、关键字DELIMITER、删除添加索引、删除添加外键约束、和一些数据库方面的操作
一.首先先说一下我们都需要建立那些表 mysql> CREATE TABLE IF NOT EXISTS `student`( -> `sno` CHAR(8) NOT NULL, -&g ...
- 弹性伸缩 AS(Auto Scaling)
根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加 ECS 实例以保证计算能力,在业务需求下降时自动减少 ECS 实例以节约成本,弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳 ...
- Kubernets二进制安装(3)之准备签发证书环境
1.在mfyxw50机器上分别下载如下几个文件:cfssl.cfssl-json.cfssl-certinfo cfssl下载连接地址: https://pkg.cfssl.org/R1.2/cfss ...
- 鸟哥的linux私房菜——第七章学习(Linux 磁盘与文件系统管理)
1.1).文件系统特征 我们称呼一个可被挂载的数据为一个文件系统而不是一个分区! 文件系统通常会将这两部份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data ...
- pyspark Py4JJavaError: Unsupported class file major version 56
在jupyter notebook跑上面的代码的时候报错Py4JJavaError: An error occurred while calling z:org.apache.spark.mllib. ...
- anaconda jupyter notebook 启动方法
介绍 anaconda jupyter notebook是一种基于浏览器的python编译环境.(大概) 使用时可能因为浏览器缓存造成问题. 但是很方便. 启动方法 anaconda navigato ...
- 左神算法第五节课:认识哈希函数和哈希表,设计RandomPool结构,布隆过滤器,一致性哈希,岛问题,并查集结构
认识哈希函数和哈希表 MD5Hash值的返回范围:0~9+a~f,是16位,故范围是0~16^16(2^64)-1, [Hash函数],又叫散列函数: Hash的性质: 1) 输入域无穷大: 2) ...
- Leetcode(28)-实现strStr()
实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ...