2018 Go 开发者调查结果

未匹配的标注

本文为官方 Go Blog 的中文翻译,详见 翻译说明

Todd Kulesza, Steve Francia
2019 年 3 月 28 日

谢谢大家

这篇博文总结了我们 2018 用户调研的结果,同时和 2016 还有 2017 的调研结果进行了比较。

这一次,我们收到了来自 103 个国家的 5,883 调查结果。我们很感谢能能够在调研之中给我们反馈、为将来 Go 语言塑形作出贡献的大家。谢谢你们。

总述

  • 头一回,调研结果之中有一半表示使用 Go 语言成为了他们的日常。同时今年我们也看到了在工作之中使用 Go 和在工作责任之外使用 Go 的调查结果数量的可观提高。
  • 普遍的 Go 语言应用还是在 API/RPC 服务和命令行工具。任务自动化尽管不如前两者普遍,但是是一个快速发展的领域。
  • Web 开发 仍然是 参与调研的用户们主要活动的领域。但是 DevOps 领域呈现出史上最高的年增长,当前是第二普遍的领域。
  • 大多数调研参与者表示 Go 是他们最喜欢的程序语言之一,尽管总体上觉得相比其他至少一门语言,对 Go 并没有那么娴熟。
  • VS Code 和 GoLand 的受欢迎程度暴涨,在调研参与者之中已经是最受欢迎的编辑器。
  • 许多 Go 开发者主要使用的 OS 不止一种,这很好的展现了 Go 在开发上的可移植性。Linux 和 macOS 尤其受欢迎,大多数参与调研者使用其中一种或者同时使用这两者来写 Go 代码。
  • 大多数调研结果呈现出 从及时部署的 Go 开发迁移到 容器和无服务器云部署上。
  • 大多数受调查者称感觉自己在 Go 社区受到欢迎,同时,大多数对于提高 Go 社区的建议都偏向关注 提高新手的体验

更多的细节请继续阅读。

编程背景

今年的结果表明,在自己的工作中获得报酬而撰写Go语言的调查受访者数量显着增加(68%→72%),延续了自2016年首次调查以来的逐年增长趋势。 。我们还发现,在工作之外编程的受访者数量有所增加(64%→70%)。首次将Go列为日常工作的调查受访者人数首次达到50%(2016年为44%)。这些发现表明,公司将继续以一致的速度接受Go的专业软件开发,并且Go在开发人员中的普遍知名度仍然很高。

2018 Go 开发者调查结果

为了更好地了解开发人员在何处使用Go,我们将响应分为三类:1)在工作场所内外都使用Go的人; 2)在工作场所内而非专业范围内使用Go的人; 3)仅编写代码的人超越他们的工作职责。将近一半(46%)的受访者以专业方式和自己的时间编写Go代码(自2017年以来增加了10分),而其余受访者之间的区别是:只在工作中编写Go或仅在工作之外编写Go 。大部分在工作中使用Go并选择在工作之外使用Go的受访者表示,该语言吸引了那些不将软件工程视为日常工作的开发人员:他们还选择在工作职责范围之外修改代码,并且(有85%的受访者表示他们希望下一个项目使用Go,请参见对Go的态度一节)Go是他们更喜欢在这些与工作无关的项目中使用的主要语言。

当被问及使用Go已有多长时间时,参与者的答案会随着时间的流逝呈明显上升趋势,每年2-4年和4年以上的用户中,回答的比例更高。这是一种更新的编程语言所期望的,并且我们很高兴看到刚接触Go的受访者的下降速度比使用Go 2年以上的受访者的增长速度要慢,这表明最初学习语言后,开发人员不会退出生态系统。

与往年一样,Go在受访者偏爱的语言和他们拥有专业知识的语言中排名第一。大多数受访者(69%)声称拥有5种不同语言的专业知识,突显了他们对Go语言的态度受其他编程堆栈经验的影响。下面的图表按将每种语言列为最受欢迎/最容易理解的受访者数量(最深的蓝色条)进行了排序,其中突出了三个有趣的方面:

-虽然大约有1/3的受访者认为Go是他们拥有最多专业知识的语言,但很多受访者认为Go是他们最喜欢的编程语言。因此,即使许多受访者认为他们没有像其他语言一样熟练使用Go,他们仍然经常喜欢使用Go进行开发。
-很少有调查受访者将Rust视作具有专业知识的语言(6.8%),但仍有19%的受访者将Rust视作首选语言,这表明该人群对Rust的兴趣很高。
-只有三种语言的答卷人说他们更喜欢该语言而不是说自己拥有该语言的专业知识:Rust(偏好率:专家的比例为2.41:1),Kotlin(1.95:1)和Go(1.02:1)。优先级高于专业知识意味着对一种语言有兴趣,但很少有直接经验,而优先级低于专业知识的数字则意味着熟练使用语言存在障碍。接近1.0的比率表明大多数开发人员能够使用给定的语言有效地愉快地工作。 Stack Overflow的2018年开发人员调查证实了这些数据,该发现还发现Rust,Kotlin和Go将会成为在最受欢迎的编程语言中。

读取数据:参与者可以对他们的前5种语言进行排名。颜色编码从最上层的深蓝色开始,对于每个连续的层级变浅。这些图表按将每种语言列为首选语言的参与者的百分比进行排序。

开发域

受访者表示,他们在三个不同领域的中位数工作,其中绝大多数(72%)在2-5个不同领域中工作。 Web开发最为普遍,达到65%,并且随着主要领域调查受访者的工作(从去年的61%上升)而增强了其主导地位:Web开发自2016年以来一直是Go开发的最常见领域。今年DevOps值得注意从36%的受访者增加到41%的受访者,占据了系统编程的第二名。我们没有发现2018年使用率低于2017年的任何域,这表明受访者正在采用Go进行更多项目,而不是将使用范围从一个域转移到另一个域。

自2016年以来,Go的头两种用途是编写API / RPC服务和开发CLI应用程序。尽管CLI的使用率三年来一直稳定在63%的水平,但API / RPC的使用率已从2016年的60%增加到2017年的65%,到今天的73%。这些领域发挥了Go的核心优势,并且都是本地云软件开发的核心,因此我们希望它们在未来仍然是Go开发人员的两个主要方案。随着API / RPC使用率的增加,编写直接返回HTML的Web服务的受访者的百分比稳步下降,这表明向Web服务的API / RPC模型进行了一些迁移。另一个同比趋势表明,自动化也是Go的一个增长领域,现在38%的受访者将Go用于脚本和自动化任务(2016年为31%)。

为了更好地了解开发人员使用Go的环境,我们添加了一个关于跨行业采用Go的问题。对于一种相对较新的语言而言,也许不足为奇,超过一半的调查受访者在 Internet / Web服务软件类别的公司(即科技公司)工作。仅有> 3%的其他行业是金融,银行或保险媒体,广告,出版或娱乐。 (在下表中,我们将响应率低于3%的所有类别都归纳为“其他”类别。)我们将继续跟踪Go在各个行业的采用情况,以更好地了解技术公司以外的开发人员需求。

对围棋的态度

今年,我们添加了一个问题,询问“您推荐朋友或同事的可能性有多大?”来计算我们的净发起人得分。该分数试图衡量产品具有的“促进者”多于“破坏者”,其范围是-100到100;正值表示大多数人可能会推荐使用某种产品,而负值表示大多数人可能会建议不要使用该产品。我们在2018年的得分为61(促进者为68%-反对者为7%),它将作为基准来帮助我们评估社区对围棋生态系统的长期态度。

除了NPS,我们还问了几个有关开发人员对Go满意度的问题。总体而言,被调查者表示满意,与往年一致。多数人表示对Go感到满意(89%),更喜欢将Go用于其下一个项目(85%),并认为它对他们的团队运作良好(66%),而多数人则认为Go处于至少对他们公司的成功至关重要(44%)。尽管所有这些指标在2017年都有所增长,但今年它们基本上保持稳定。 (第一个问题的措辞在2018年从“ 我建议使用Go to others ”更改为“ *总体而言,我对Go 感到满意”,因此这些结果不能直接比较。)

鉴于强烈倾向于使用Go进行未来开发的想法,我们希望了解阻止开发人员这样做的原因。自去年以来,这些内容在很大程度上保持不变:大约1/2的调查受访者从事以其他语言编写的现有项目,而⅓则从事更喜欢使用其他语言的团队或项目。缺少语言功能和库是回答者不使用Go more的最常见原因。我们还询问了开发人员在使用Go时面临的最大挑战;与我们大多数调查问题不同,受访者可以输入希望回答该问题的任何内容。我们通过机器学习对结果进行了分析,以识别出常见的主题并计算支持每个主题的响应数。我们确定的三大挑战是:

-包管理(例如,“跟进供应商”,“依赖关系/数据包[原文]管理/供应商不统一”)
-与较为熟悉的编程语言的区别(例如,“接近C语言的语法,语义稍有不同,使我查找引用的程度超出了我的期望”,“来自非Go背景的同事试图将Go用作他们以前的语言版本,但带有频道和Goroutines”)
-缺少泛型(例如,“缺乏泛型使说服那些没有尝试过Go的人很难找到有效的方法。”,“很难建立更丰富的抽象(想要泛型)”)

今年,我们增加了一些有关开发人员对Go各个方面的满意度的问题。受访者对Go应用程序的CPU性能(46:1,表示对每1个表示不满意的受访者感到满意),构建速度(37:1)和应用程序内存利用率(32: 1)。但是,对应用程序可调试性(3.2:1)和二进制大小(6.4:1)的响应表明仍有改进空间。

对二进制文件大小的不满意主要来自开发CLI的开发人员,其中只有30%的人对Go生成的二进制文件的大小感到满意。但是,对于所有其他类型的应用程序,开发人员的满意度> 50%,二进制大小始终位于重要因素列表的底部。

相反,当我们查看受访者如何评价各个方面的重要性时,可调试性就很突出。 44%的受访者将可调试性作为他们最重要或第二重要的方面,但只有36%的人对Go调试的当前状态感到满意。始终将可调试性评为与内存使用和构建速度同等重要,但满意度却大大降低,并且无论受访者所构建的软件类型如何,这种模式都适用。最新的两个Go版本Go 1.11和1.12都对可调试性进行了重大改进。我们计划在今年调查开发人员如何更深入地调试Go应用程序,以改善Go开发人员的整体调试体验。

开发环境

我们询问了受访者在编写Go代码时主要使用哪些操作系统。与去年相同,大多数(65%)的受访者表示他们使用Linux,50%的用户使用macOS,18%的用户使用Windows。今年,我们还研究了有多少受访者在多个OS上开发单个操作系统。 Linux和macOS仍然是领先者,有81%的受访者在这两种系统的某种组合上进行开发。只有3%的受访者将时间平均分配给所有三个操作系统。总体而言,有41%的受访者使用多种操作系统进行Go开发,这凸显了Go的跨平台本质。

去年,VS Code在调查受访者中超越了Vim,成为最受欢迎的Go编辑器。今年,它显着扩大了领先优势,成为超过⅓受访者的首选编辑(去年为27%)。 GoLand也经历了强劲的增长,现在以22%的增长率成为第二受欢迎的编辑器,与Vim交换位置(降至17%)。 VS Code和GoLand的迅速普及似乎是以牺牲Sublime Text和Atom为代价的。 Vim也看到将其排在第一位的受访者数量有所下降,但仍然是最受欢迎的第二选择编辑器,为14%。有趣的是,我们发现受访者为他们选择的编辑报告的满意程度没有差异。

我们还询问了受访者在他们首选的编辑器中最能改善Go支持的内容。就像上面的“最大挑战”问题一样,参与者可以自己写答案,而不是从多项选择列表中进行选择。对响应的主题分析表明,改进的调试支持(例如,“实时调试”,“集成调试”,“甚至更好的调试”)是最常见的请求,其次是改进的代码完成(例如,“自动填充效果和质量”,“更智能的自动填充”)。其他要求包括与Go的CLI工具链更好的集成,对模块/软件包的更好支持以及总体性能改进。

今年,我们还添加了一个问题,询问哪种部署架构对Go开发人员最重要。毫不奇怪,被调查的受访者绝大多数将x86 / x86-64视为他们的顶级部署平台(76%的受访者将其列为最重要的部署架构,而84%的受访者将其列为前三名)。但是,第二选择架构和第三选择架构的排名非常有用:ARM64(45%),WebAssembly(30%)和ARM(22%)引起了人们的极大兴趣,而其他平台则很少。

部署和服务

对于2018年,我们看到Go和non-Go部署从本地部署到云托管的趋势将继续存在。将Go应用程序部署到本地服务器的调查受访者比例从43%→32%下降,反映了非Go部署报告的46%→36%的下降。同比增长最快的云服务包括AWS Lambda(Go的4%→11%,非Go的10%→15%)和Google Kubernetes Engine(Go的8%→12%,5%→ 10%的用户无法使用),这表明无服务器和容器正成为越来越流行的部署平台。这项服务的增长似乎是由已经采用云服务的受访者推动的,但是,由于我们发现今年部署至少一项云服务的受访者的百分比没有显着增长(55%→56%)。自2016年以来,我们还发现Go部署到GCP的部署稳步增长,从受访者的12%→19%增长。

也许与本地部署的减少有关,今年我们看到云存储成为受访者使用量第二高的服务,从32%→44%上升。身份验证和联合身份验证服务也有了显着增长(26%→33%)。从Go访问的主要服务调查受访者仍然是开源关系数据库,从61%→65%的受访者中增加。如下图所示,服务使用率全面提高。

Go社区

寻找Go问题答案的社区顶级资源仍然是Stack Overflow(23%的受访者将其标记为他们的顶级资源),Go网站(godoc.org为18%,golang.org为14%)和阅读源代码(通常8%的源代码,特别是GitHub的4%)。该订单与往年基本保持一致。 Go新闻的主要来源仍然是Go博客,Reddit的r / golang,Twitter和Hacker News。这些也是该调查的主要分配方法,因此,此结果可能会有些偏差。在下面的两个图表中,我们将少于<5%的受访者使用的来源归为“其他”类别。

今年,有55%的受访者表示他们已经或有兴趣为Go社区做出贡献,比去年的59%略有下降。由于两个最常见的贡献领域(标准库和官方Go工具)需要与Go核心团队进行互动,因此我们怀疑这一下降可能与同意以下说法的参与者比例下降有关:具有问题和反馈的围棋项目领导者”(30%→25%)和“我对围棋的领导者充满信心(54%→46%)。

社区的一个重要方面是帮助每个人,特别是来自传统上代表性不足的人口群体的人都受到欢迎。为了更好地理解这一点,我们问了一个有关跨几个代表性不足的组的标识的可选问题。在2017年,我们看到了整体同比增长。对于2018年,我们看到类似比例的受访者(12%)被确定为代表性不足的群体的一部分,这与未**确定为不合格群体的一部分的受访者的百分比显着下降-代表组。在2017年,对于被确定为代表性不足的群体的每个人,有3.5人被确定为代表性不足的群体的一部分(3.5:1的比例)。在2018年,该比例提高到3.08:1。这表明Go社区至少保留了相同比例的代表性不足的成员,甚至可能还在增加。

维持健康的社区对于Go项目至关重要,因此在过去三年中,我们一直在评估开发人员在Go社区中受到欢迎的程度。今年,我们同意“我在围棋社区中感到受欢迎”这一说法的受访者比例从66%→59%下降。

为了更好地了解这种减少,我们更仔细地研究了谁感到不受欢迎。在传统上人数不足的群体中,2018年表示感到不受欢迎的人减少了,这表明该领域的外展活动有所帮助。取而代之的是,我们发现有人使用Go的时间长短与他们的欢迎程度之间存在线性关系:与拥有1-2年经验的开发人员(62%)相比,新的Go开发人员的欢迎程度(50%)明显更少。与拥有几年经验的开发人员(73%)相比,turn感到不那么受欢迎。对数据的解释得到对以下问题的回答的支持:“哪些变化将使围棋社区更加受欢迎?”。受访者的评论大致可分为四类:

-减少对精英主义的认识,尤其是对于刚上任的新来者(例如,“较少的轻蔑”,“较少的防御和自负”)
-提高领导层的透明度(例如,“未来方向和计划讨论”,“减少自上而下的领导”,“更加民主”)
-增加介绍性资源(例如,“对投稿人的介绍更加清晰”,“学习最佳做法的有趣挑战”)
-更多活动和聚会,重点是覆盖更大的地理区域(例如,“更多聚会和社交活动”,“更多城市的活动”)

这些反馈非常有帮助,为我们提供了我们可以专注的具体领域,以改善成为Go开发人员的体验。尽管它在我们的用户群中所占的比例并不高,但我们非常重视此反馈,并正在努力改善每个领域。

结论

我们希望您喜欢我们2018年开发人员调查的结果。这些结果正在影响我们的2019年计划,在接下来的几个月中,我们将与您分享一些想法,以解决社区为我们强调的特定问题和需求。再次感谢所有对此调查做出贡献的人!

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-blog/survey2...

译文地址:https://learnku.com/docs/go-blog/survey2...

上一篇 下一篇
Summer
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~