『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现( 五 )


『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

痛点
开发人员表示无法使用Go主要原因是他们在项目中使用另一种编程语言(56%) , 他们的团队更加喜欢使用另一种编程语言(37%) , 以及Go本身缺乏关键功能 (25%) 。
这个问题的备选答案今年也是随机显示的 , 因此尽管2016-2018年的趋势是正确的 , 但逐年比较没有意义 。 例如 , 我们很确定那些由于团队更喜欢另一种语言而无法更频繁地使用Go的开发人员的数量每年都在减少 , 但我们不知道这种减少今年是否会急剧加速 , 或始终低于2016–2018年估计的数字 。
『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

对于阻碍开发人员使用Go的两大因素(项目没有使用Go , 以及团队在使用其他编程语言) , 我们还没有直接的技术解决方案 , 但是我们可以解决其他阻碍因素 。 因此 , 今年我们在调查问卷中要求开发人员提供更详细的信息 , 以便我们了解如何更好地帮助开发人员增加对Go的使用 。 本节其余的图表都是我们根据开发人员自由输入进行了手动分类 , 因此类别数量较多 。 对于每个图 , 总计比例不到3%的类别都归入了“其他” 。 有的答案可能提到了多个主题 , 因此这些图的总和不等于100% 。
在说Go缺乏所需语言功能的25%开发人员中 , 有79%指出泛型是缺失的关键性功能 。 22%的开发人员指出错误处理有待改进(在Go 1.13的变化之上) , 还有13%的开发人员要求增加函数编程功能 , 特别是内置的map/filter/reduce功能 。 需要明确的是 , 这些数字的基数是那些说如果不是因为Go缺乏一个或多个关键功能他们就会使用Go的开发人员 , 而不是所有调查对象 。
『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

至于表示Go不是“真正意义上的编程语言”的原因和情况多种多样 。 最常见的是这些开发人员从事某种形式的前端开发(22%) , 例如Web、桌面或移动的GUI 。 另一种普遍的回答是 , 开发人员说他们已经使用一种主流的语言工作了很多年(9%) , 换成另一种语言的难度较大 。 有些开发人员还告诉我们他们更喜欢哪个领域(或简单地提到另一个领域 , 却没有提及另一种更常见的语言) , 我们通过下图“I work on [领域]”的部分表示 。 开发人员提到的另一个首要原因是他们需要更好的性能(9%) , 特别是对于实时计算 。
『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

开发人员报告的最大难题与去年基本一致 。 Go缺乏通用性和模块/软件包管理仍然是最主要的问题(分别占15%和12%) , 并且强调工具问题的比例有所增加 。 这些数字与上面的图表不同 , 因为这个问题都是由开发人员提出的 , 无论他们认为阻止他们使用Go的最大难题是什么 。 这三个方面都是今年Go团队关注的领域 , 我们希望在未来几个月中极大地改善开发人员的体验 , 尤其是在模块、工具和入门体验方面 。
『Go语言』调查了 10,975 位 Go 语言开发者,我们有了这些发现
本文插图

使用任何一种语言来诊断故障和性能问题都可能是一项难题 。 开发人员告诉我们 , 这两个问题的最大挑战都不是Go的实现或工具所特有的 , 而是一个根本的问题:开发人员对知识、经验或最佳实践的匮乏 。 我们希望在今年晚些时候 , 通过文档和其他教育材料来帮助解决这些知识上的问题 。 其他的主要问题则涉及工具 , 尤其是在学习/使用Go的调试和概要分析工具时 , 在成本/收益方面存在不利的取舍 , 以及工具在各种环境下工作的难度(例如 , 在容器中进行调试 , 或获取生产系统的性能概况) 。


推荐阅读