在当今最流行的编程语言排行榜中,Go语言一直位居榜首。我们都知道现在Go语言很流行,写Go代码也很有趣。Go在社区中也很受欢迎,主要是因为Go语言的速度快,效率高。除了这些众所周知的优势,我们期待发现更多关于围棋的未知信息。为了发现更多的事实,我们根据现有的关于围棋的资料进行了深入的研究。我们邀请了Go语言专家、Goland开发倡导者FlorinP??an,分享了他对Go语言发展趋势的看法。大约110万Go开发人员在哪里总体而言,大约有110万专业Go开发人员使用Go作为他们的主要开发语言。如果我们把那些使用其他语言作为主要开发语言,但将Go作为爱好的开发者算进去,这个数字可能会接近270万。从全球分布来看,亚洲的Go开发者人数最多,约有570,000名开发者使用Go作为主要开发语言。专家分析:这是我最期待用Go开发的地方。就围棋用户数量而言,亚洲位居榜首。我觉得主要是因为有大量来自腾讯、阿里巴巴、华为等大公司的开发者。这些公司一般都有很多开发人员。具体在哪里?下图显示了我们在2020年开发者生态调查中调查的每个国家中使用Go作为主要语言的开发者分布(受访者最多可以选择3种主要语言)。中国的开发者最集中,16%的中国开发者使用Go。专家分析:中国位居榜首,我一点也不意外。我原以为俄罗斯会排在第二位,而美国会更高一些,可能会排在前五位。中国位居榜首,可能正是因为他们拥有最多的开发者。而我认识的很多公司,比如PingCAP、腾讯、华为,都有很多开发者去支持和搭建他们内部的工具、基础设施和后端服务,这些都是和微服务相结合的。这似乎是中国位居榜首的一个关键原因。我知道俄罗斯的Go社区很棒,难怪Go在那里很受欢迎。我对日本和乌克兰很好奇,因为我没想到他们会这么高,我以为德国和印度会更高。我记得四五年前我在柏林的时候,我认识的每家初创公司都在使用Go。IndustryInsightsGo依然保持着开发者主要使用的前10种语言。根据2020年开发者生态调查,Go的份额约为9%。专家分析:我认为Go会一直成长。人们通常不会以Go作为入门语言开始编程,而是从其他语言迁移而来,比如PHP、Ruby,但据我所知,主要是从C++、C#迁移而来。Go相对于PHP的优势是类型安全,因为Go是静态类型语言,而PHP是动态类型语言。这意味着编译器在运行时做了很多工作,以确保你编写的代码能够正确编译和运行。Go优于C++的优点是简单。在Go中,一切都那么简单。总的来说,Go的特点是它与生俱来的速度,无论是写代码还是运行。总的来说,在不做任何特殊优化的情况下,使用Go可以获得5-10倍的性能提升,这对公司来说是一个非常重要的生产优势。同时,Go也是一门简单的语言,易于使用,易于替换现有项目中的微服务。许多IT基础设施工具,如Kubernetes、Docker和Vault(举几个大例子)都是用Go构建的。所以虽然很多公司都用Java,但还是会有团队会用Go,尤其是维护和打补丁这些项目。这可能是Go的采用率持续增长的另一个原因。这项技术在公共技术设施和部署中使用得越多,Go的发展速度就会越快。我认为在未来几年将会有越来越多的人采用Go,我们将看到大约15%-20%的开发人员会使用Go。特别是考虑到开发者生态调查中提出的问题“您是否计划在未来12个月内采用或迁移到另一种语言?”,13%的受访者回答了Go。根据2020年开发者生态调查,Go开发的软件类Web服务是使用Go的最热门领域,占总数的36%。专家解析:为什么是WebServices,我觉得主要原因是构建一个API服务非常快。他们不需要框架,可以使用Go快速启动和运行框架。我不认为这张图在未来会发生太大变化,我真的希望看到更多关于web服务的分享,因为在Go中启动一个web服务真的很简单。对于实用小程序,我见过很多类似的,因为Go可以很容易地快速编写一个小应用程序来帮助您处理大量数据,编写一个小实用程序或消耗大量资源的一次性任务。采用Docker和Kubernetes的人越多,使用Go的人就越多,仅仅是因为它们是用Go编写的。任何类型的DevOps工作都可以从Go中受益,因为它提供类型安全和速度。与云基础设施(谷歌、亚马逊、Azure等)交互很容易,因为它们都有很好的SDK。我认为在接下来的几年里,当泛型到来时,我们也可以期待“库/框架”的一些改进。系统软件——我认为随着越来越多的人开始使用像Rust这样的语言编写系统软件,这个数字会下降。数据库也是如此。所以这大约是6%的市场,这在未来可能会变成一个商机。编程工具——我很惊讶它在列表中占有如此高的份额,我很想知道有哪些编程工具可用于Go。使用Go的热门行业根据2020年开发者生态系统调查,Go程序员主要从事IT服务,其次是金融和金融科技、云技术/云平台等行业。专家分析:金融和金融科技。这是我希望看到的,因为我知道有相当多的银行已经开始采用Go或正在将Go广泛用于其基础设施。例如,来自英国的Monzo使用Go构建了他们的整个银行系统。云计算和云平台也很有意义,因为它们很适合用Go编写的应用程序。移动开发,这是意想不到的。Go没有良好的移动开发历史。如果有的话,我希望人们使用Go来为移动应用程序提供Web服务或后端服务,但仅此而已。在几个行业中,我认为Go的使用不会很快增加。比如,任何基于机器学习的东西,因为那仍然是Python的领地。人们正在努力让机器学习在Go中变得流行和更好,但我认为至少在几年内不会有任何结果。GoToolkitManagementGoModules是Go开发者中最流行的包管理工具。根据2020年开发者生态调查,其使用率从2019年的41%上升到2020年的82%。专家分析:我认为在某个时候我们可能不得不停止问这个问题,因为GoModules已经被定为标准默认模型,Go团队希望弃用GOPATH。到那时,所有其他包管理工具都将过时。Go路由根据2020年和2018年开发者生态调查,Gorilla/Mux和标准库是2018年以来使用最多的Go路由。专家分析:标准库之所以如此受欢迎,可能是因为每当你去Reddit时,Slack或其他地方,人们通常建议您坚持使用标准库,只有在真正需要时才使用其他东西。我使用gorilla/mux是因为它比标准库有更多的抽象,而不会牺牲太多的性能。可能是因为它是最接近标准库的东西,而且它使编写服务器更容易。总体而言,这种分布可能是我希望看到的。根据2020年和2018年开发者生态系统调查,Gin使用量自2018年以来几乎翻了一番,而其他Web框架则基本保持稳定。专家分析:Gin之所以在网络上如此流行,是因为它是一个快速的框架,也很值得推荐。它也是最古老的框架之一。因为那里会有很多文档,而且很多用户已经在使用它并推荐它。使用内置测试框架的测试框架比例从2018年的64%下降到2020年的44%,而使用其他测试框架的比例则略有上升。专家分析:内置测试框架比例高是因为Go标准库有非常好的开箱即用的测试库。内置测试可能会下降,主要是因为越来越多的人从其他语言(如PHP)转向这种语言,他们试图复制他们已有的测试习惯。MostDiscussedGoToolsandOtherLanguagesGo在IT社区中经常被讨论,StackOverflow就是其中之一。我们从其问答单元中获取数据,以找出哪些标签与“Go”共现最多。有23种工具和两种语言(MySQL和PostgreSQL)。除了这些工具之外,还有与其他顶级语言的共存。纵轴表示主题标签的总出现次数,而横轴表示带有“Go”的主题标签的提及次数。专家分析:我预计JSON会出问题。将Go的数据结构序列化反序列化成JSON,确实不容易。这可能就是JSON如此引人注目的原因。来自其他语言的人通常很难理解结构体,除非他们来自C++或C。基于AWS本身的流行,我认为AmazonWebServices会有很多问题。现在为GoogleAppEngine开发Go应用程序更容易了,但以前不是这样的,这就是为什么会出现这么多问题的原因。总而言之,Go社区是一个非常有趣且包容的社区,您可以成为其中的一员。永远不要排斥新人,鼓励他们提出问题和探索语言。在一般话题方面,泛型,以及某些语言的改进,编译器的改进等都是经常讨论的话题。尤其是泛型,因为它是该语言最受欢迎的特性之一,并且有大量工作负载将从中受益。
