QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Go 语言是大家的,只有伪爱好者才会谈舍弃

  • 2019-06-19
  • 本文字数:1862 字

    阅读完需:约 6 分钟

Go语言是大家的,只有伪爱好者才会谈舍弃

前几天,InfoQ 在官网上发布了一篇国外博主(该博主是 Go 语言贡献者)对 Go 语言的评论文章:Go 语言是谷歌的,而非社区的,观点有些“消极”。对这篇文章里的观点,我来聊聊我的看法。

Go 语言是开源的

对于绝大多数爱好者和开发者而言,这就足够了。只有那些有过真实贡献的人才能真正体会到一个编程语言的背后是“君主制”,还是“民主制”,又或是“联盟制”。但无论如何,这些编程语言都是开源的,并且官方也会在一定程度上尊重其附带的技术社区。


当前的现实情况是,就算是“君主制”,开源编程语言的创造者也会对社区有足够的重视。就像 Go 语言和 Python 语言那样。另外,Java 语言的社区其实是“联盟制”的,是由一些科技公司实际掌控的。而 Rust 语言的社区才算是“民主制”的。

Go 语言越来越重视社区了

Go 语言官方团队在 Google 内部实属一个很小的团队。但其成员几乎个个都是技术大神。即使他们是独裁的,我们也有理由相信他们会把 Go 语言做得更好。更何况,在 Go 语言团队历经数个版本、陆续解决了一些关键的功能和性能问题之后,他们也开始更加关注社区了。


当然了,分歧在所难免,因为 Go 语言有着它自己的使命、愿景和价值观。况且 Go 语言团队的精力也是有限的。我目前看到的是,Go 语言团队已经开始积极地去解决社区最关心的一些问题了,比如:错误处理和泛型。

只有伪爱好者才会谈舍弃

如果换个角度,那么我们就会发现:只有伪爱好者才会谈舍弃。打个比方,我们可以把看球赛的人分为 4 类,即:真球迷、伪球迷、研究者和旁观者。真球迷会义无反顾地支持自己热爱的球队。即使这支球队时常在联赛内垫底,他们也会如此。而伪球迷只是在假装热爱。他们通常只会支持他们认为的那些优秀的球队以及那些优秀的球员。


只有伪球迷才会频繁变换他所支持的球队。对于研究者来说,他们看的不是比赛,而是比赛背后的战术、战略和趋势。所以对于他们来说,谈不上热爱哪支球队。而旁观者只是把看球赛当做消遣,至于看的是篮球赛还是足球赛就没有那么重要了。他们想体验的是另外的东西。


只有真球迷和伪球迷才会抱怨某某球队不尽如人意。但不同的是,真球迷在抱怨之后会继续热爱和支持,而伪球迷很可能会就此离去。


对于编程爱好者来说也是类似的。如果你是某门编程语言的伪爱好者,那么你抱怨的就很可能是这门语言没有某某特性或者没有朝着你想象的方向发展。并且,在抱怨几次之后,你很可能就会转到其他的编程语言阵营。虽然真、伪爱好者之间没有好坏之分,但这也能在一定程度上影响你在一个技术社区中的地位。伪爱好者常常只能游走在社区的边缘。频繁跳槽者的职业发展通常都不会太好,不是吗?


另外,如果你想通吃多门编程语言,那么请把自己培养成研究者,而不是伪爱好者。

过程比结果更重要

在开源社区中,我们应该注重参与的过程而不是参与的结果。我们关注的应该是:通过积极的参与,我们增强了哪些能力,以及得到了哪些机会。如果我们只关注结果,那么就很可能失望而归,甚至什么也得不到。因为每个社区都有每个社区的制度。而这些制度在某些人的眼里可能是理所应当的,而在另外一些人眼里可能就是不可理喻的。这很正常,每个人看问题的角度几乎都不相同,尤其是在某些情绪的控制下。


所以,死盯着一个点不放只会让自己更加纠结,就比如“希望 Go 语言能够增加对自定义泛型的支持”。虽然现在 Go 语言团队已经开始设计泛型了,但是想当年我看到不少人因此变得怨天尤人,天天不停地叨念,有的还愤然离去。这完全是没有必要的,不是吗?


总之,虽然 Go 语言是 Google 的,但更重要的是,它是一门开源的编程语言。与 Java、Python、Rust、Julia 等语言一样,它们都是广大开发者的。起码我们都可以免费的使用并有机会参与和贡献。它们只是在社区制度和协作方式上有所不同罢了。


如果能够站在更高的层次上观察,我们会发现我们和他们的愿望是一致的,那就是:希望它发展得更好并向着更高的山峰挺近。而作为非核心人员的我们,要做的就是:积极的参与,并借此增强自己的能力。


我在极客时间有一个《Go语言核心36讲》专栏,感兴趣同学可以去看看。




对于 Go 属于谷歌还是社区,InfoQ 发起了一个讨论,欢迎去这里留言。我们将选出三位精彩评论者,送上“InfoQ 限量版定制 T 恤”一件或《Go语言实战》一本。(活动时间:即日起至 6 月 24 日零点,感谢人民邮电出版社赞助书籍)



延伸阅读:


用 Go 语言进行编程的利与弊


Go 会接替 Java,成为下一个企业级编程语言吗?


我是如何把 5 万行 C++ 代码移植到 Go 的?


使用 Python 5 年后,我转向了 Go


再见,Python!你好,Go 语言


舍弃 Python,为什么知乎选用 Go 重构推荐系统?


2019-06-19 18:246763
用户头像

发布了 22 篇内容, 共 18.5 次阅读, 收获喜欢 85 次。

关注

评论 3 条评论

发布
用户头像
窃以为真正的开发者是不会跟语言绑定的,也就是作者认为的 “伪球迷”。另外,既然说了 Golang 是君主制,为什么还要说它是大家的。
2019-06-24 12:16
回复
用户头像
我可以说的再宽泛一些。首先,我们需要看清三点:

1. 开源本来就是一种商业模式。开源的初衷和目的会各有不同,但都是为了信息的流通和物质的交换。

2. 世界上本来就没有绝对的平等。一个技术社群总要有核心团队、精神领袖以及真正的掌控者。

3. 谁也没法对一件大家都渴望的事物做到完全掌控。 Google 也不行,除非它的某个产品本来就没什么人用。否则,产品就算被它砍掉了,衍生品和竞品也马上会填补空缺。

看不清的人只会纠结。纠结某人或某物是否属于自己,纠结自己有哪些权利,纠结自己在社群中的地位。这毫无意义,不是吗?

一切都应该是自己争取来的。而且,争取的也不是那个结果,而是自己持续向上的动能。那些所谓的结果只是顺势拿到的东西罢了。
展开
2019-06-20 19:40
回复
用户头像
有你这个想法的人太多了,Google也是这么想的,知道google每年死多少产品吗,为什么,只要不符合自身战略的,统统砍掉,你以为Google好心释放golang是为了开源社区吗,目前google已经成功通过golang将大批开发人员引入了自己的生态体系,golang是好用,但触角和发展方向肯定是google说了算
2019-06-19 19:39
回复
没有更多了
发现更多内容

缓存不一致、缓存雪崩、缓存击穿、缓存穿透

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

Kafka、RabbitMQ、RocketMQ 之间的区别是什么 ?

AI乔治

Java kafka 架构 消息队列

推进智能变革,HPE让零售业的数字化梦想照进现实

Lily

无需编程,通过配置零代码生成CRUD RESTful API

crudapi

RESTful 低代码 API crud crudapi

MySQL主从原理,基于快速学习一门技术的3种方式

博文视点Broadview

史上最全教程:idea将Java项目打包Jar包,并生成exe可执行文件

madison

Java jar包转exe可执行文件 exe4j

来,在图片上画个矩形吧,取经之旅第 14 天

梦想橡皮擦

3月日更

科普NA公链(Nirvana):NAC公链采用基于NIO的Netty,实现链上应用百万级TPS并发​

区块链第一资讯

智慧社区服务平台的搭建,助力老旧小区改造

13828808769

智慧终端

从相识到相惜:Redis与计算存储分离四部曲

华为云开发者联盟

数据库 redis 华为云 存算分离 GaussDB ( for Redis )

工作四年,分享50个让你代码更好的小建议

比伯

Java 程序员 架构 程序人生 计算机

Python API 类型系统的设计与演变

李宇飞

API

华为云副总裁薛浩:云原生视频服务,重塑体验,助力产业升级

华为云开发者联盟

云原生 音视频 视频 华为云 AR/VR

如何避免水肥一体化过量灌溉?开启智慧管理,一个屏幕轻松搞定

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧农业

AA

郑伟

标签

书单|互联网企业面试案头书之数据分析师篇

博文视点Broadview

2020 年前端技术发展盘点

三钻

发展 大前端 组件化 机会与趋势

我还不懂什么是分布式事务

好好学习,天天向上

Java MySQL spring 分布式 事务

区块链在医疗领域的应用场景,区块链+医疗的解决方案

13828808769

区块链 区块链+ #区块链#

作业8

瑾瑾呀

万物皆可拆

小匚

双非怎么了

我是程序员小贱

3月日更

记上周双休日的加班

sadhu

加班

Firebase 命令行工具

HoneyMoose

可视化开发:前端按时下班不再是问题

华为云开发者联盟

大前端 框架 交互 渲染引擎

企业迁移到云服务时要考虑的六大问题

云计算

从新手到专家:如何设计一套亿级消息量的分布式IM系统

JackJiang

架构设计 即时通讯 IM

局域网服务器访问外网方案

程序员与厨子

Linux 网络 路由表

PS 进行隐藏图制作

空城机

PhotoShop ps 视觉处理 视觉 隐藏图

图片的黑魔法——GitHub 热点速览 v.21.13

HelloGitHub

GitHub 开源

区块链农产品溯源系统开发,区块链农产品溯源平台的搭建

13828808769

区块链 区块链+ #区块链#

Go语言是大家的,只有伪爱好者才会谈舍弃_文化 & 方法_郝林_InfoQ精选文章