原创分享 2020 中国 Go 开发者调查报告

astaxie · 2020年04月22日 · 1580 次阅读
本帖已被设为精华帖!

2020 年初,看过 Go 官方在过去一年里面的总结,GopherChina 也通过网络的方式对中国的 Go 开发者进行了一次深度调查。本次调查旨在关注 Go 在中国的最新趋势并总结 Go 开发的发展情况。


来自全国数十个城市的 1300 多名开发人员参与了此次调查,帮助我们勾勒出一个尽可能准确的中国 Go 社区的全景图。调查内容涵盖 Go 在中国的使用、开发类型、框架、库、技术、开发工具、就业等方面。

Go 使用情况

Go 作为主要语言 vs 第二语言

在我们的调查中,61.5%的 Go 用户使用 Go 作为主要语言,而 38.5%的用户把 Go 作为第二语言。

在 Go 官方 2018 年的 Go 开发者调查报告中,使用 Go 作为主要语言的比例达到 72%,比 2019 年国内高出近 11%。

除 Go 外的语言使用情况(多选)

中国的 Go 用户中,有近 40% 的用户还使用 Python、JavaScript 和 SQL。这和 Go 官方在 2018 年统计的前三名非 Go 语言(Python、JavaScript、C/C++)基本上差不多。

而使用 C/C++、Java、PHP、HTML 的开发者比例紧随其后,均有 30% 左右的比例。 可见中国的 Go 开发者也是其他热门语言的使用者。

C# 和 Rust 的开发者也有一定的比例,但是目前在 Go 开发者体系目前还不算流行。

Go 开发用途

人们平常会在什么场景下使用 Go,会用 Go 进行什么类型的开发,以及如何进行结合?

87% 的用户在工作中都会使用 Go,4.3% 的学生会使用 Go,应该是云计算这一波让大学生了解 Go。其他的比例在 10% 左右的人应该是个人项目等使用了。

使用 Go 的目的是什么?做什么?(多选)

在中国使用 Go 做 Web 开发的人最多,有超过 76% 的人选择 Go 开发 Web。其次是网络编程、云原生开发等 Go 的优势领域,Go。

此外,在 DevOps/运维开发 领域,Go 也发挥着重要的作用,有 20% 左右的 Go 开发者从事相关领域的开发。

在 Go 官方 2018 年的 Go 开发者调查报告中,排名第一的 Go 使用领域是 Web 开发,达到 65%;第二是 DevOps,达到 41%;第三是 系统编程,达到 19%。

相较于全世界的 Go 开发者来说,中国开发者对比上面也差不多,但是在网络编程和云原生的更多一点。

Go 版本和环境

Go 1.13 vs others

因为在我们这一次调研的时候 Go1.14 版本还处于 beta 阶段,所以很多人还是在使用 1.13 版本,从调研发现 Go 开发者大部分人 (60%) 还是选择最新版本作为开发和部署的版本。从调研发现 0.5% 的同学居然还在用老版本,估计是老系统不愿意升级了。

使用的版本管理工具是什么

一直以来,Go 的版本管理一直是 Go 开发者所诟病的点,但是直到最近推出 Go Modules 大家才逐步的转过来。不出所料,管理 Go 版本管理的 Go Modules 是最常用的版本管理工具。

框架、库和技术

Web 框架(多选)

Gin 和 Beego 毫无疑问成为中国 Go 开发者中最受欢迎的 Web 框架。老牌的 revel 框架基本上退出了历史舞台,而 Echo 等新兴框架则在一众框架中拔得头筹。尽管之前社区开发了异步版本的 fasthttp,但使用诸如 iris 等框架的比例仍然较低。

在 Go 官方 2018 年的 Go 开发者调查报告中,世界 Go 开发者使用 Gin 和 Beego 的比例分别为 30% 和 10%,中国开发者使用它们的比例则达到 65% 和 28%,可见国内开发者的热忱。

常用的通用工具和库(多选)

不出所料,gRPC 荣登通用工具和库中的宝座,无疑是 Go 世界中最受欢迎的库之一。在排名前五的库中,网络库占到 3 个,足见开发者对网络库的依赖。此外,数据库 ORM 库 GORM 也十分受欢迎,占到 41.5%。

开发工具

常用开发工具 (多选)

工欲善其事必先利其器,在开发工具这一块,国内开发者基本上选择付费的 Goland 和免费的 VS Code 作为他们的主要开发工具,分别占到了 71 和 49% 的比例。Vim 一直以来都是很多 Linux 开发者的最爱,从统计来看 vim 也占到了 12.8% 的比例。

在 Go 官方 2018 年的 Go 开发者调查报告中,世界 Go 开发者使用 VS Code 和 Goland 的比例分别为 35% 和 22%,中国开发者使用它们的比例则达到 49% 和 71%,看来 Goland 在国内普及度很高啊,国外 Vim 用户占到了 25% 的比例,可见国外开发者用 vim 的比较多。

操作系统(多选)

有超过三分之二的受访者使用 MacOS 作为开发环境的操作系统,说明苹果电脑颇受开发者欢迎,将近 40% 的用户使用 Linux 进行开发,使用 Windows 的比例也很高,达到 37.3%。

托管 Go 程序的平台(多选)

超过一半的受访者将 Go 程序托管在私有服务器中。在使用云平台的用户中,他们最偏爱阿里云,使用比例达到 53.8%,而腾讯云和 AWS 依次是上一个云平台的一半份额。UCloud、谷歌云、Azure 和华为云的使用比例近似,在 2-5% 左右。

数据库(多选)

MySQL 在数据库使用中占据绝对优势的地位。大多数人使用免费或开源数据库,关系型数据库 MySQL、PostgreSQL、SQLite 使用比例较多,非关系型数据库 Redis、MongoDB 也很受欢迎。

国外用户中 PostgreSQL 使用比例比较高,可见 MySQL 在中国的受欢迎度。

持续集成系统(多选)

Jenkins、Gitlab CI 和 自研 占据了持续集成系统中的前三名,其中 Jenkins 是最受欢迎的,比例高达 40.1%。从前三名也可以看出来有 16.2% 的受访用户很喜欢造轮子,打造自己的持续集成系统。

配置管理和运维(多选)

有超过一半的用户使用 SSH/脚本 的方式进行配置管理。而在开源的配置管理运维工具中,Ansible 则是最受欢迎的。有 26.1% 的用户使用自研系统,比持续集成系统的自研比例更高,由此可见配置管理和运维方面的定制化需求更多。

就业和工作

雇佣状态

大多数(87%)的 Go 用户有全职工作,4.3% 为学生,而只有 3.1% 为自由职业者,创业的比例占到了 2.1%。

工作岗位

近三分之二(68.6%)的受访者为开发者,十分之一左右是架构师。团队领导的比例合计占到十分之一以上,这个比例对于后期 Go 能够快速推广至关重要,很多团队用 Go 都是因为这些团队领导的大力支持和推进。

团队合作 vs 独立工作

超过三分之二的受访用户进行团队协作,近三分之一的受访用户则独立进行项目开发。

团队规模

约一半的开发者在规模很小的团队中工作,其中 37.5% 的团队规模为 2-7 人。

企业规模

使用 Go 的团队有将近三分之一的人都在大企业使用 Go,可见中国大企业都在用 Go 进行开发,这对带动 Go 在中国的发展至关重要。

使用 Go 的时间

Go 萌新(少于 2 年)的比例最高,超过 50%;其次是 3-5 年经验的用户,占到了 34.7%。而 Go 老兵的比例较低,约为 5.6%。

平均年龄

有 50% 左右的受访者的年纪低于 30 岁,有 0.1% 为青少年。四十岁以上的用户比例较低,但仍是活到老学到老。北京成为 Go 开发者最多的城市,占到四分之一,其次是上海、深圳 (如下图所示)。

平均年收入

大部分受访者的年薪在 30 万以下,其中 10-30 万年薪的占据主流,差不多站到 50%。有 30% 的受访者年薪达到 30 万以上,说明 Go 开发者的年薪在开发者社区里面还是比较高的,有极少数能到 100 万甚至更高。而有 11.1% 的同学不变透露薪资,毕竟薪资是比较敏感的数据。

每种语言都有其适用的场景,不论是哪种语言,觉得喜欢和合适,那么就用吧~

更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio
astaxie 将本帖设为了精华贴 04月22日 11:43
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册