Go 语言现状

来源: OSCHINA
编辑: 局长
2021-02-19

JetBrains 官方博客发表了一篇题为"The state of Go"的文章,他们通过深入研究有关 Go 的信息,发现了不少鲜为人知的事实,并提供了翔实的数据作为支撑。此外,JetBrains 还邀请到了知名的 Go 语言专家 Florin Pățan 针对各项数据发表了自己的见解。

一、Go 开发者

数量 & 所处地区

全球大约有 110 万名职业 Go 开发者(特指在工作中专门将 Go 作为主力编程语言的群体),如果把主要使用其他编程语言但同时兼职使用 Go 的专业开发者计算在内,这个数字可能接近 270 万。

从 Go 开发者在全球地区的分布来看,生活在亚洲的职业 Go 开发者最多,大约有 57 万。

Go 语言专家 Florin 表示这在他的预期之内。他认为亚洲的 Go 开发者数量之所以高居榜首是因为那里有大量的开发者来自腾讯、阿里巴巴和华为等大型公司,这些公司一般都会雇佣许多开发者。

如果再细分下去,以国家为维度查看使用 Go 作为主力编程语言的开发者分布情况,中国所占的比例最高,全球有 16% 的 Go 开发者来自中国。

Florin 对此同样不感到意外,不过他表示本以为俄罗斯会排第二,美国会进入前五,然而事实却是日本的 Go 开发者数量排名第二,美国排到了第七。谈及中国位居榜首的原因,Florin 认为最重要的是中国拥有数量相当庞大的开发者,根据他自己所认识的公司来看,诸如 PingCAP、腾讯、和华为都拥有大量开发者帮助构建与微服务相结合的内部工具、基础设施和后端服务。

Florin 提到了俄罗斯的 Go 社区非常活跃,Go 在那里也非常流行,不过他对 Go 开发者在日本和乌克兰的分布情况感到意外,因为他本以为德国和印度会更高,Florin 表示自己四五年前在柏林的时候,所认识的每家初创公司都使用了 Go。

二、使用 Go 开发的软件类型

根据 JetBrains 2020年开发者生态调查的结果Web 服务是使用 Go 进行开发的最受欢迎的领域,所占份额为 36%。其次分别是实用程序、IT 基础设施、工具库和系统软软件开发。

Florin 认为,对于 Web 服务,首要任务是创建速度足够快的 API 服务器。他们不一定需要框架,因此开发者可以使用 Go 快速启动并运行。他希望未来这张图不会发生大变化,希望看到 Web 服务获得更多的分享,因为使用 Go 入门很简单。

三、使用 Go 的热门行业

根据 JetBrains 2020年开发者生态调查的结果,Go 开发者主要从事 IT 服务行业,其次是金融和金融科技,云计算/平台、大数据、移动开发和其他行业。

Florin 表示没想到 Go 在移动开发行业也能占有一席之地,毕竟它的移动开发历史比较匮乏。人们可能会使用 Go 来为移动应用程序提供 Web 服务或后端,但是仅此而已。

四、Go 工具

Go Web 框架 Top5

包管理器

Go routers

测试框架

五、讨论度最高的 Go 工具和其他语言

讨论的高频词:JSON、goroutine、PostgreSQL、MySQL、Dockers……

六、行业见解

根据 JetBrains 2020年开发者生态调查的结果,Go 是十大主要编程语言之一,被专业开发者采用的所占比例为 7%。Florin 认为,许多人并不倾向于以 Go 作为其第一门学习的编程语言,通常是从其他语言(例如 PHP 和 Ruby)迁移过来,据他所知主要是从 C++ 和 C# 迁移到 Go。

Florin 表示,Go 相对 PHP 的优势在于类型安全,因为 Go 是静态类型语言,而 PHP 是动态语言。这意味着编译器会帮助开发者完成大部分工作,以确保他们编写的代码能够正确编译和运行,并在运行时不会出现问题。Go 与 C++ 相比的优势是简单。在 Go 中,一切都非常简单。此外在不进行任何特殊优化的情况下,使用 Go 还会获得性能方面的提升,这对公司来说是重要的生产力优势。

Florin 还提到了 Go 采用率持续增长的另一个原因,由于许多流行的 IT 基础设施都是用 Go 编写,例如 Kubernetes、Docker 和 Vault,因此尽管许多公司的主力技术栈可能是 Java 或者其他语言,但他们也会配置针对 Go 的团队,尤其是在维护和修补此类基础设施项目方面。

展开阅读全文
60 收藏
分享
加载中
精彩评论
亚洲用户比欧美大洋洲加起来的用户还多,这就不寻常.
说明了什么,说明程序员中,无脑粉Google技术的人就是多.
Go,没有严谨的OOP,没有泛型,引以为傲的chan也并没有简化并发编程,说实话,泛善可陈.
2021-02-19 17:58
29
举报
golang语法比较蹩脚, 注释型的注解最甚. 相反, kotlin是真香, 看起来就赏心悦目.
2021-02-19 09:26
21
举报
I_I
有点好奇,亚洲人口远多于欧美大洋洲人口总和,而且经济发展也比那些地方有活力,怎么就“不寻常”了?还固化在欧美中心论里?
需要严谨的OOP和范型为啥不用C++、JAVA或C#之类的呢?go一开始的目标也不是再造一个C++或JAVA。
chan只是在多个go routinue之间传递数据,并发时可能会用到,也可能不会用到,它不是主角,主角是go routinue。
另外,有没有“简化并发编程”是跟以前主流的语言相比,而不是你会不会用。
2021-02-20 09:05
19
举报
跟 php 比还有不少差距
2021-02-19 13:44
13
举报
划重点:由于许多国内大厂流行的 IT 基础设施都是用 Go 编写,例如 Kubernetes、Docker、Prometheus、etcd 和 Vault,因此尽管许多公司的主力技术栈可能是 Java 或者其他语言,但他们也会配置针对 Go 的团队,尤其是在维护和修补此类基础设施项目方面。
2021-02-19 10:33
11
举报
最新评论 (50)
读Go的代码是挺好读的,比较过程式,不像Java那种依赖注入、面向切面等增加复杂性的玩意,不去单步调试都不知道代码跳去哪里。
2021-02-27 14:15
0
回复
举报
依赖注入和切面也没怎么复杂吧?调试大部分情况都是关注自身的业务代码,而不是框架代码,如果切面什么的是自己写的,调试切面处理类也很容易,你说的情况其实是很少发生的
2021-02-28 08:24
0
回复
举报
那是因为代码刚好是你写的
2021-02-28 10:43
0
回复
举报
我也维护了几个别人写的项目了,可能你遇到的比较糟糕吧
2021-02-28 22:24
0
回复
举报
母以子贵, 即使go语言很垃圾,如果 IT 基础设施都是用 Go 编写,例如 Kubernetes、Docker、Prometheus、etcd 和 Vault,则go的前途不可限量。
2021-02-26 23:33
0
回复
举报
写多了面向对象就知道go是半面向对象,像分片都是slice1= append(slice1,1)这样的写法,比比皆是。最近学了些,这也是我感觉最有问题的,另外go的主旨就是打着高性能的旗号,却在用gc,这样的语言,如果swift出个gc版,直接就能干掉go。另外很多人都说java转go的最多,其实php转go的才是最多。
2021-02-24 09:25
0
回复
举报
有gc的语言性能不一定就差
2021-02-25 11:57
0
回复
举报
有stop the world一定就会影响性能,go现在存在c++和java之间的交界,到目前而至打的也是高性能gc,但已知的是他还在努力的向java的方向发展,如果像java开始走精简,go开始变得臃肿时,到时候谁比谁的优势大就不得而知了。如果graalvm在未来能得到发展,go和java只会是语法上的区别。
2021-02-26 20:31
0
回复
举报
毕竟国内面向工资编程,好不好不知道,大厂就是编程主流方向
2021-02-20 15:47
2
回复
举报
Java简单还是GO简单?不出意外, 这些评论的大多是java的
2021-02-20 13:36
1
回复
举报
各路大佬齐发功,无数语言学到疯。
2021-02-20 09:02
2
回复
举报
还是继续用java和python,另外学习点rust
go不打算研究,最多简单了解一下
2021-02-19 21:35
5
回复
举报
亚洲用户比欧美大洋洲加起来的用户还多,这就不寻常.
说明了什么,说明程序员中,无脑粉Google技术的人就是多.
Go,没有严谨的OOP,没有泛型,引以为傲的chan也并没有简化并发编程,说实话,泛善可陈.
2021-02-19 17:58
29
回复
举报
I_I
有点好奇,亚洲人口远多于欧美大洋洲人口总和,而且经济发展也比那些地方有活力,怎么就“不寻常”了?还固化在欧美中心论里?
需要严谨的OOP和范型为啥不用C++、JAVA或C#之类的呢?go一开始的目标也不是再造一个C++或JAVA。
chan只是在多个go routinue之间传递数据,并发时可能会用到,也可能不会用到,它不是主角,主角是go routinue。
另外,有没有“简化并发编程”是跟以前主流的语言相比,而不是你会不会用。
2021-02-20 09:05
19
回复
举报
别和**论长短
2021-02-20 10:23
0
回复
举报
不好意思,你这一家之言,除了缺个泛型有点难受,其他的,一定需要oop么?你一个外行,说多了没用,市场会选择
2021-02-21 20:28
0
回复
举报
嗯,好在中国的程序员都不像你这么可悲,自己停留在石器时代,还在嘲笑新式武器。
2021-02-23 10:01
0
回复
举报
你们都不要争了 php才是最好的语言
2021-02-23 16:18
0
回复
举报
go不管在哪方面想要追上php 都还有很长的路要走
2021-02-19 17:19
1
回复
举报
I_I
go的目标不是取代php,web只是go应用的一个领域,这一部分刚好跟php重合而已。其他64%的部分很多php都干不了,或者不适合干
2021-02-20 09:10
1
回复
举报
go-frame 都没上榜 gin上了
2021-02-19 15:46
0
回复
举报
更多评论
50 评论
60 收藏
分享
返回顶部
顶部