• Go语言的发展趋势(2022编程语言排行榜分析)
  • 发布于 2个月前
  • 810 热度
    0 评论
虽然 Go 语言是 Google 公司出品并主导开发的,但它毫无疑问也是广大 Go 语言爱好者的心头肉。可以说,对于 Go 语言泛型的正式登场,至少有一半功劳属于 Go 语言的爱好者们。

肯定会有一些程序员,尤其是那些不以 Go 为主要语言的程序员会说“Go 语言的进展太慢了,其他众多新的编程语言甚至那些较老的编程语言早就支持泛型了,可 Go 语言墨迹了这么多年才搞出泛型”。确实,单就泛型这方面来说,Go 语言的脚步确实很慢,可这主要是因为 Go 语言想要做到完全向后兼容,并力求让 Go 语言的泛型完美契合其自身的精炼的编程哲学和简约的编码风格。要知道,做加法容易,而做减法却很难。不过不管怎样,Go 语言的泛型终于落地了!就连现如今清心寡欲的作者也忍不住心中的喜悦!

好了,感慨完毕,我们还是回归正题吧。下面,我们就一起从头至尾捋一捋 Go 语言在 2022 年的发展和变化,以及它将会在 2023 年如何继续前行。

趋势概览
Go 在今年的 11 月 10 日刚满 13 岁。它已经长大并进入了少年期,不算是一门新的编程语言了。但 Go 依然保持着非常好地向后兼容。很显然,这是一件很不容易的事。从业界知名的编程语言排行榜 TIOBE Index 绘制的折线图来看,Go 语言的采用趋势在过去三年间基本上保持平稳。更具体地说,根据使用情况统计,在 2020 年下半年到 2021 年上半年的这段时间里,Go 语言的使用率有略微提升,但时至今日又差不多回到了 2019 年的水平。与其在 2016 年到 2017 年间的大爆发相比,如今 Go 语言的使用率已经基本上稳定下来了。

图 1 - TIOBE Index 之 Go 语言趋势

不过,就作者个人而言,感觉是有些奇怪的。按理说,Go 语言泛型的落地应该能够引起一波采用 Go 语言的小高潮,但事实上这一情况并没有出现。这可能就是“波澜不惊”的最佳诠释吧?可能因为大家都等得太久了,真到了重大的新特性来临之时却不太能兴奋得起来了。当然了,这也可能是因为 Go 语言在应用领域方面的攻城掠地已经基本完成,而且在其优势领域的使用率已经趋于饱和。而对于那些新兴领域,比如机器学习、人工智能、机器人、元宇宙等,Go 语言还没有显著的优势,尤其是还没有杀手级框架或工具出现。在这种情况下,Go 语言在使用统计上的平稳趋势也是一种必然。

现在换一个维度,我们横向来看,Go 语言的排名相较于前两年有比较明显的提升。如下图所示。

图 2 - TIOBE Index(2022 年 11 月)

我们可以看到,Go 语言在 2021 年年底的 TIOBE Index 排名中位于第 18 位。这低于它在 2020 年年底的排名(第 16 位),以及它在 2019 年年底的排名(第 15 位),也算是一个小谷底了。然而,在今年的年底,Go 语言的排名却大幅提升了,甚至,它已经摸到了 Top10 的边界!如果作者没记错的话,Go 语言最近一次进入 Top10 是在 2018 年的年底。如今,4 年过去了,Go 语言终于又有希望重回 Top10 了。

我们还可以看到,至今常年占据 Top10 的依然是那些老生常谈,甚至是那些老得不能再老的编程语言。相比之下,Go 语言真真切切算是年轻一派的优秀编程语言了。当然,除了 Go 语言之外,还有图形化的儿童编程语言 Scratch、Apple 公司出品的编程语言 Swift,以及近年来出尽风头的系统级编程语言 Rust。它们都很年轻,却都已经进入了 Top20,也是非常优秀的。作者也很看好它们。

在简单分析了 Go 语言在 TIOBE Index 中的排名之后,我们再来看看新晋出炉的 StackOverflow Developer Survey 2022 吧。众所周知,StackOverflow 是全球最大的编程社区和专业问答网站。它的 Developer Survey 报告属于年度总结性报告,已经有好多年的历史了,并且深受全球软件开发者的关注和喜爱。

我们下面重点说说其中与 Go 语言强相关的内容。至于其他的内容,大家如果有兴趣的话,可以点开前面的超链接仔细阅读完整报告。
在“使用率最高的编程语言(专业组)”这一栏中,Go 语言的排名是第 13 位(如下图)。

图 3 – Stackoverflow Developer Survey 2022 之使用率最高的编程语言(专业组)

如果只考虑通用的跨平台编程语言的话,Go 语言仅次于 Python、Java、C++ 和 C。这与它在 TIOBE Index 中的情况是相同的。有的程序员可能会说“JavaScript 和 TypeScript 现如今也可以算是通用的跨平台编程语言”。当然,从某种角度看,我们可以这样说。但是,它们终归不是原生的通用编程语言,都需要额外的工具或框架才能够实现“通用”。因此,我们稍微严格一点,暂且不把它们计算在内。

在应用级框架和工具栏目中,作者发现 Docker 和 Kubernetes 今年依然非常火爆。作为常用的基础工具,它们深受广大软件开发者的追捧。

图 4 – Stackoverflow Developer Survey 2022 之最受欢迎的基础工具(全体组)

从上面这幅截图我们可以看出,Docker 和 Kubernetes 在当前的排名中都已经进入了 Top5。甚至,如果只考虑专业的软件开发者的话,Docker 甚至超越了 npm,拔得头筹!

图 5 – Stackoverflow Developer Survey 2022 之最受欢迎的基础工具(专业组)

毫无疑问,npm 是 JavaScript 世界中 Top1 的工具,其应用是相当相当广泛的。更何况,在全世界的软件开发者当中,不论是专业的开发者还是业余的开发者,使用 JavaScript 语言的人都是最多的。所以,Docker 能够超越它真的是一件非常值得骄傲的事!

大家应该都知道,Docker 和 Kubernetes 都是使用 Go 语言开发出来的。在云计算领域,尤其是容器技术领域,它们都是绝对的王者!因此,如果你想进入云计算领域,或者想使用 Go 语言开发基于云的应用程序,那么最起码应该学会甚至熟练使用 Docker。

好啦,以上算是一个令人激动的小插曲。现在,让我们把焦点再转回到编程语言的排名上来。在 Stackoverflow Developer Survey 的报告中,有一个非常有特色的栏目。我们经常戏称它为“爱恨交织”栏目,其原名是“Most loved, dreaded, and wanted”。在这个栏目里,共有七万一千多名开发者回答了相应的问题。在他们当中,有 64.58% 的人喜爱 Go 语言,而有另外的 35.43% 的人憎恨 Go 语言(或者说对 Go 语言有恐惧感)。在所有为大众所熟知的编程语言当中,Go 语言排在了第 8 位。

图 6 – Stackoverflow Developer Survey 2022 之让人“爱恨交织”的编程语言

在这份排名中的 Rust、TypeScript 和 Julia 作为更加年轻的编程语言后来居上。不过,如果我们查看相邻的“最想学习的编程语言”排名的话,就会发现 Go 语言的位置靠前了很多,处于第 4 位,仅次于 Rust、Python 和 TypeScript,并且从百分比数值上来看相差无几。

图 7 – Stackoverflow Developer Survey 2022 之大家最想学习的编程语言

看起来,程序员们应该都很喜欢追新,不是吗?这起码与作者的所见所闻是比较吻合的。当然了,只有那些优秀的新兴编程语言才有进入 Top10 的机会。可以想象,Docker 和 Kubernetes 在这个“爱恨交织”栏目中肯定是名列前茅的。事实也确实如此,它们分列“Loved vs. Dreaded”一栏中的前两位。

图 8 – Stackoverflow Developer Survey 2022 之让人“爱恨交织”的基础工具
而且,在“Want”一栏,它们拥有着一骑绝尘的态势。

图 9 – Stackoverflow Developer Survey 2022 之大家最想学习的基础工具
顺便说一句,在“爱恨交织”栏目里,同样拥有“一骑绝尘”态势的还有 Visual Studio Code(以下简称 VSCode)。

图 10 – Stackoverflow Developer Survey 2022 之大家最想学习的集成开发环境

作者为什么会在这里提到 VSCode 呢?因为,在 2022 年订阅我的技术专栏的读者当中,非 gopher(gopher 的意思是 Go 语言粉丝)的人明显增多。他们问的最多的一个问题就是:“要是使用 Go 语言开发程序的话,有哪些好用的代码编辑器或者 IDE 吗?”我的回答一般都是 VSCode 和 GoLand。

微软公司出品的 VSCode 是 Go 语言爱好者最常用的免费代码编辑器。我们使用它时,外加 Go 语言官方团队出品的 vscode-go 插件就基本上可以满足平常的需求了。

而 GoLand 是 JetBrains 公司出品的,但它收费而且价格不菲。作者在这里绝不是给 JetBrains 公司做广告,但是 GoLand 真的很贵、很好用。如果你对于配置编程工具非常不耐烦,并且预算很充足的话,那么我会强烈推荐你使用 GoLand。

顺便说一句,如果你是 Vim 那一派的话,Go 社区中也有相应的 vim-go 插件。

好了,关于 Go 语言发展趋势的整体解读,我们就暂告一段落吧。
用户评论