大家好,我是煎鱼。
近在某乎上看到一个和大家学习、工作、生活息息相关的话题,那就是世界上的编程语言这么多...
为什么 Go 语言能在中国这么火,凭的是什么?
背景
Go 语言是什么
Go 语言,这门语言诞生于 2007 年,在 2009 年正式对外公布并开源,当时 Rob Pike 在 Google Techtalk 上做了一次 Go 语言的分享,时间是 2009 年 10 月 30 日,分享内容为 《The Go Programming Language》。
紧接着 Go 语言正式在 2009 年 11 月 10 日正式对外开源,发布文章 《Hey! Ho! Let's Go!》。一开始源代码是托管在 Google 的 code.google.com 上,后续隔了 2 年左右正式迁移到 GitHub 上。
在国内的趋势
在国内,Go 语言从 2014 年开始得到越来越多的关注,在 2018 年到达一个阶段高峰,在刚刚过去的 2021 年 8~9 月到达了新的高峰。
如下图:
每次一说到 Go 的布道,就有人提到七牛云老许的大力推广。甚至是之前 B 站泄露的源码:
过去 5 年中,在全球的 Go 搜索热度中。我国的:
可以说是全球 Go 开发者多的地方了。
市场招聘分析
在社会招聘和岗位层面,狭义上来看,与 2018 年我写的 《带你了解一下Golang的市场行情》基本情况仍保持一致:
以下引用 GoCN 所收集的 “2020 中国Go 开发者调查报告” 的地域分布:
目前 Go 语言的大热门地区依然是:北京、上海、深圳,主体集中在一线城市,机会这里多。但二三线也在逐步发展了,这个主要看个人的就业选择了。
看看数据:TIOBE
从 TIOBE 的编程语言排行榜来看,整体上 Go 语言的热门程度并不会特别高(与老牌语言相比),但作为一门编程语言在短短 11 年内已有很不错的表现:
业内时常说 Go 语言要干掉 PHP、C++、Java 等,目前来看短期内不现实,官方也没有这方面打算,因为合适的场景选择合适的语言就好了。
为什么会火
易上手和有特色
Go 语言是一门非常易上手的编程语言,我常常会听到有人转语言时,只花了几天,看了看语法,就马上开始开发企业应用了,也没见什么不适。
另外 Go 相比其他同行,就不少可赞扬或是批评的点,也有许多有意思的特性。
常常会在互联网上传播,像是:
工具链:官方提供的工具链中包含了代码格式化(go fmt、go vet)。 杀手级特性:语言约束上的 Go1 兼容性承诺,被誉为杀手级特性。 协程很快:开协程(goroutine)跟下饺子一样简单和快速,再配合 channel 使用,跨协程传递很方便。 文化价值观:Go 核心开发团队有与众不同的文化,例如:少即是多(less is more)。 不同的道路:Go 自述是为软件工程设计而生,与不少编程语言不一样,走一条自己的道路。 被吐槽的点:错误处理、没有泛型(1.18 以前)等。
大企业大城市带头
早在国内应用和推广的七牛云,同时字节、腾讯、滴滴、知乎等各大公司也逐渐在近几年引入和输出各大 Go 语言人才,大家都在不断地跟进。
另外在腾讯的《2021 年腾讯研发大数据报告》中也可以看到,,Go 语言快速增长,在鹅厂内超越 C++,成为腾讯 2021 年热门的编程语言。
如下图:
既然大中企业在用了,那么像是北京、上海、深圳、广州、武汉等,Go 的招聘岗位也自然而然多了起来,且据闻工资相比 PHP 更高。
社区和组件
2015年,Google,Redhat、Microsoft 等一些大型云厂商共同创立了 CNCF,云原生时代正式拉开了新的序幕。
在 2017-2019 年左右,容器服务的商业化形态的争夺、撮合已经基本明确和明朗,K8S 成为事实上的容器编排。
如下图:
Go 在这里承担了什么角色?非常好,K8S 和 Docker 以及许多的云原生组件,都是 Go 开发的。另外还有区块链,也是有许多与 Go 相关。
作为应用的基础,代码也是开源的,受到许多的人关注。自然而然,Go 也就得到了许许多多人的关注,也就水涨船高了。
(云原生和区块链,其实也是 Go 作者没有想到的,这里面的机遇是杠杠的。)
同时国内看到机会后,许多社区资料、出版物(Go 图书近 2 年数量暴增)、知识付费、B 站源码泄露等,也起到了许许多多的作用,进一步降低了学习成本和门槛。
总结
在这篇文章中,我们面向 Go 的背景、趋势、招聘、数据四个维度进行了摸底,简单了解其发展历程。
随后在 Go 能火的原因中,我们抽离出了三大点:易上手和有特色、社区和组件、大企业大城市带头来表示其会火的原因。
大点的易上手,也就是门槛低。代码又简洁、性能又高,又有 GC,没有太明显的短板,是非常适合国内的大流量场景的诉求的,这也是在国内特别火的原因。
相信 Go 在国内会越走越好!