Go开发者大调查:8成受访者不满意Go不支持泛型

继新兴语言Rust之后 , Google力推的程序语言Go , 也发布了自家的开发者大调查 , 这次Go官方总共收到了10,975份回复 , 总数接近去年的两倍 。 这次他们增加了许多有关用户统计问题 , 以更好地了解受访者的轮廓 , 官方表示 , 他们这次做的调查结果 , 与程序设计问答网站StackOverflow所做的2019年度调查结果相近 。
Go开发者大调查:8成受访者不满意Go不支持泛型
文章图片
这此问卷调查的受访者56%使用Go不到两年 , 整体用户年资偏短 , 将Go用在工作中的比例占所有受访者72% , 而有62%的人把Go用在工作之外的项目 , 官方表示 , 在2018年的时候 , 将Go用在工作或是工作外项目的比例 , 都较前一年大幅增加 , 但是今年得到的结果与之前不同 , 也就是说这次受访者较倾向在工作外使用Go , 而在工作使用另一种语言 , 官方提到 , 他们在这份调查中的不同问题 , 看到了相似的异常值 。
构建API/RPC和CLI仍是Go最多见的用法 , 比例分别为71%以及62% , 问卷调查也询问了受访者使用Go的领域 , 有66%的人将Go用于网页应用程序开发 , 其他常见的应用领域还有数据库、网络程序、系统程序和DevOps任务等 。
Go开发者大调查:8成受访者不满意Go不支持泛型
文章图片
图片来源/GoTeam
在组件管理上 , 绝大多数的受访者(89%) , 都已经通过Go命令使用Modules , 官方提到 , 改变组件管理方法对于开发人员来说 , 是一个巨大的转变 , 而此时整个社群正同时经历这样的改变 。
由于Go在设计时 , 考虑了现代分布式运算 , 因此Go可以说是一个云计算语言 , 今年官方在问卷增加了有关云计算开发的问题 , 以更全面了解Go开发者和云计算供应商的关系 。 这次的调查可以明显看到两个趋势 , 三大全球云计算供应商AWS、GCP和Azure , 在受访者的使用率都上升 , 其他的供应商每年使用率皆只有一小部分 , 且大部分都衰退 , 另外 , 企业自有或是本地部署的比例持续减少 , 已经和AWS的市场占有比例相去不远 。
开发者在不同云计算平台以不同的方式部署Go工作负载 , 将工作负载部署到AWS和Azure的受访者 , 有很大比例直接使用虚拟机 , 分别为65%和51% , 而部署到GCP的受访者 , 则有64%的人使用Kubernetes平台 , 几乎是虚拟机35%的两倍 。 受访者使用GCP和Azure的无服务器平台比例低 , 仅有17%和7% , 而AWS却有33% 。
Go开发者大调查:8成受访者不满意Go不支持泛型
文章图片
图片来源/GoTeam
大致所有的受访者 , 对于三大主要云计算供应商的Go使用体验都感到满意 , 排序分别是AWS有80%的满意度 , GCP也有78% , 而Azure较低只有57% , 受访者反应 , Azure并没有优先支持Go , 也就是说没有持续支持最新的Go版本 , 使得开发人员无法使用到最新的功能 。
Go开发者大调查:8成受访者不满意Go不支持泛型
文章图片
图片来源/GoTeam
针对Go的痛点 , 有79%的受访者认为Go缺乏关键功能泛型(Generics) , 而有22%的受访者认为官方应该继续改进Go的调试功能 , 另外还有13%的人要求更多的函数程序语言功能 , 特别像是map、filter和reduce等 , 官方特别指出 , 当Go提供了这些关键程序语言功能 , 则开发者将能够更广泛地使用Go 。
在开源的表现上 , Go虽然是一个开源项目 , 但是不代表Go的开发者也都会用Go来开发自由或是开源项目 , 从问卷的资料看起来 , Go社群参与开源项目的比例正在缩小 , 不常与不曾参与开源项目的受访者百分比 , 从2016年的71%逐年增加 , 到2019年达到75%;而受访者中 , 仅有约7%到8%的受访者 , 是稳定的开源项目贡献者 , 会每天参与开源贡献 , 每周与每月开源贡献者比例皆逐年降低 。
【Go开发者大调查:8成受访者不满意Go不支持泛型】Go开发者主要在Linux和macOS上开发Go程序 , 分别有66%与53% , 而Windows只有20% , 而在编辑器选择上 , GoLand增长非常快速 , 从24%的使用率上升到34% , 虽然VSCode增长速度减缓 , 但仍然位居Go开发者最爱IDE , 有41%受访者使用 , 第3与第4名分别为Vim和Emacs , 前四名使用率占受访者四分之三 , 且除了前两名 , 其他编辑器使用率都在衰退 。
官方提到 , 根据这次的调查 , 受访者对于泛型、组件管理和工具三个领域最不满意 , 因此在今年 , 这三个领域将会是Go团队的重点关注项目 , 接下来几个月内 , 他们会大幅改善模块、工具和开发者入门的体验 。


    推荐阅读