写点什么

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:246746
用户头像

发布了 22 篇内容, 共 18.4 次阅读, 收获喜欢 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
回复
没有更多了
发现更多内容

架构实战营 模块2作业

西山薄凉

「架构实战营」

手写一个react,看透react运行机制

flyzz177

React

react源码分析:组件的创建和更新

flyzz177

React

JavaScript刷LeetCode拿offer-栈相关题目

js2030code

JavaScript LeetCode

银行普惠金融可持续发展能力建设——风控科技应用

易观分析

金融 银行

【Alibaba微服务技术系列】「SpringCloud技术专题」基于SpringCloud-Alibaba的微服务2.0模式架构搭建实战指南(解析版本对应关系)

洛神灬殇

SpringCloud SpringCloud Alibaba 12 月 PK 榜 服务搭建

前端开发需不需要通过培训来学习

小谷哥

秒云荣获2022爱分析·中国运维最佳实践案例大奖

MIAOYUN

运维 解决方案 容器云平台 云原生容器 IT解决方案

22道js输出顺序问题,你能做出几道

loveX001

JavaScript

2022-12-13:游戏玩法分析 I。写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。 +-----------+-------------+ | player_id | first_l

福大大架构师每日一题

数据库 福大大

react的useState源码分析

flyzz177

React

react源码分析:深度理解React.Context

flyzz177

React

大数据培训课程哪里比较好?

小谷哥

深度分析React源码中的合成事件

flyzz177

React

伙伴福利,100个项目彻底精通Java!【开源】

JavaPub

Java 源码 javaWeb

架构实战营模块二作业

张贺

架构训练营

前端必会面试题汇总

loveX001

JavaScript

深入React源码揭开渲染更新流程的面纱

flyzz177

React

JavaScript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

使用JMeter模拟设备通过MQTT发送数据

石云升

测试 Jmeter mqtt

容量保障落地四步走

老张

性能测试 服务治理 稳定性保障 容量测试 容量保障

Zebec正在以流支付的方式,推动加密资产支付走上正轨

鳄鱼视界

极客时间运维进阶训练营第八周作业

独钓寒江

java开发哪家机构比较好?

小谷哥

工作中常用的设计模式--享元模式

lpe234

Java 设计模式 享元模式 spring-boot

Verilog 过程赋值

芯动大师

Verilog Verilog语法 Verilog过程赋值

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

前端一面高频面试题(附答案)

loveX001

JavaScript

详述TLS握手流程

穿过生命散发芬芳

TLS 12月月更

大数据开发培训机构该怎么选择?

小谷哥

在西安怎么选择java培训?

小谷哥

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