2020 年初,看过Go官方在过去一年里面的总结,GopherChina 也通过网络的方式对中国的 Go 开发者进行了一次深度调查。本次调查旨在关注 Go 在中国的最新趋势并总结 Go 开发的发展情况。
来自全国数十个城市的 1300 多名开发人员参与了此次调查,帮助我们勾勒出一个尽可能准确的中国 Go 社区的全景图。调查内容涵盖 Go 在中国的使用、开发类型、框架、库、技术、开发工具、就业等方面。
01
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开发者体系目前还不算流行。
02
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 开发者来说,中国开发者对比上面也差不多,但是在网络编程和云原生的更多一点。
03
Go 版本和环境
Go 1.13 vs others
因为在我们这一次调研的时候Go1.14版本还处于beta阶段,所以很多人还是在使用1.13版本,从调研发现 Go 开发者大部分人(60%)还是选择最新版本作为开发和部署的版本。从调研发现0.5%的同学居然还在用老版本,估计是老系统不愿意升级了。
使用的版本管理工具是什么
一直以来,Go的版本管理一直是Go开发者所诟病的点,但是直到最近推出Go Modules大家才逐步的转过来。不出所料,管理 Go 版本管理的 Go Modules 是最常用的版本管理工具。
04
框架、库和技术
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%。
05
开发工具
常用开发工具
工欲善其事必先利其器,在开发工具这一块,国内开发者基本上选择付费的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% 的受访用户很喜欢造轮子,打造自己的持续集成系统。
持续集成系统(多选)
Jenkins、Gitlab CI 和 自研 占据了持续集成系统中的前三名,其中 Jenkins 是最受欢迎的,比例高达 40.1%。从前三名也可以看出来有 16.2% 的受访用户很喜欢造轮子,打造自己的持续集成系统。
配置管理和运维(多选)
有超过一半的用户使用 SSH/脚本 的方式进行配置管理。而在开源的配置管理运维工具中,Ansible 则是最受欢迎的。有 26.1% 的用户使用自研系统,比持续集成系统的自研比例更高,由此可见配置管理和运维方面的定制化需求更多。
06
就业和工作
雇佣状态
大多数(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%的同学不便透露薪资,毕竟薪资是比较敏感的数据。
每种语言都有其适用的场景,不论是哪种语言,觉得喜欢和合适,那么就用吧~