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

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

SonarQube即将亮相第十八届GOPS全球运维大会

龙智—DevSecOps解决方案

代码安全 GOPS大会 运维、 代码质量检测工具

开源一夏 | Java格式化日期 微秒

六月的雨在InfoQ

开源 8月月更

没开发人员,接到开发物联网系统的活儿,干不干?

AIRIOT

低代码 物联网 低代码,项目开发

2022 CCF国际AIOps挑战赛决赛暨AIOps研讨会报名已开启

BizSeer必示科技

人工智能 阿里云 华为云 信通院

内存问题难定位,那是因为你没用ASAN

华为云开发者联盟

云计算 开发 内存

五大理由告诉你为什么开发人员选择代码质量静态分析工具Klocwork来实现软件安全

龙智—DevSecOps解决方案

静态代码分析 代码静态分析 SAST工具 SAST

双因子与多因子身份验证有什么区别?

SEAL安全

身份验证

版本控制篇 | 龙智邀您共赴GOPS全球运维大会,探索大规模、敏捷、高质量、开放式的软件研发与运营之路

龙智—DevSecOps解决方案

运维 DevSecOps GOPS大会

莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave™:2021年第四季度企业服务管理报告》

龙智—DevSecOps解决方案

ITSM Forrester Wave Forrester

这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口

了不起的程序猿

数据库 高并发 java程序员 大厂面试 java;

HDD杭州站•ArkUI让开发更灵活

HarmonyOS开发者

HarmonyOS

WindTerm:新一代开源免费的终端工具,GitHub星标6.6k+,太酷了!

沉默王二

GitHub 终端工具

【7.29-8.5】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

centOS7.3 安装启用 iptables 记录

JavaPub

Linux centos7 iptables

RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手)

矜辰所致

RT-Thread 8月月更

硅谷来信:快速行动,Facebook、Quora等成功的“神器”!

博文视点Broadview

多业务模式下的交易链路探索与实践

转转技术团队

中台 状态机 FSM

手摸手带你 在 Windows 系统中安装 Istio

万猫学社

云原生 istio windows

即刻报名|Apache Kylin X Apache DolphinScheduler:大数据底座的构建和展望

Kyligence

数字化转型 数字分析 数据调度

2000多字教你三招在Linux中找出大文件,最后一个命令简直太简单了!

wljslmz

Linux 签约计划第三季 8月月更

数据治理体系演进简介

网易数帆

大数据 数据治理 元数据 数据标准

Apache APISIX Ingress v1.5-rc1 发布

API7.ai 技术团队

APISIX kubenetes Ingress Controller

官方发布·2022南京智博会定于10月份在新庄国展召开

AIOTE智博会

自从用了 Kiali 以后才知道,配置 Istio 的 流量管理 是如此容易

万猫学社

云原生 istio envoy kiali

牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02

刘悦的技术博客

golang 语言 语言 & 开发 教程分享 #go

有多一只“手”的机器狗出没?就在昇腾AI开发者创享日·南京站

科技热闻

关注微信公众号,自动登陆网站

源字节1号

微信小程序

2022年6月互联网医疗领域月度观察

易观分析

医疗 市场

秘乐短视频挖矿系统开发详情

开发微hkkf5566

不是吧?还有人不会定位线上MySQL慢查询问题?

Java永远的神

Java MySQL 数据库 程序员 面试

Python开启虚拟环境

技术小生

8月月更 Python虚拟环境

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