每年,Go 官方团队都会发布一份开发者年度调查报告,旨在了解社区动态与使用痛点。近日,2025 年的调查报告结果已经公布。根据官方博文《Results from the 2025 Go Developer Survey》显示,这项调查于 2025 年 9 月进行,最终收集了 5379 份有效问卷。

报告的核心发现可以概括为:开发者对 Go 语言本身的满意度保持高位,但对 AI 辅助编程工具的吐槽颇多,满意度因代码质量问题而受到抑制。另一个值得关注的发现是,有相当比例的开发者表示需要频繁查阅 go build、go run 等基础命令的文档,这提示 Go 工具链的帮助系统仍有改进空间。
谁在使用 Go?
数据显示,受访者中 87% 为职业开发者,其中 82% 的人在工作中使用 Go。这再次印证了 Go 是一门主要面向生产环境、为企业级应用服务的编程语言。
然而,一个数据值得关注:使用 Go 不足一年的新手开发者比例出现下降,从 2024 年的 21% 降至 2025 年的 13%。

报告分析认为,这并非 Go 语言本身吸引力下降,而是与全球招聘市场遇冷的大环境相关。初级岗位减少,更多是有经验的开发者进行技术栈转换。这也与另一个数据相呼应:80% 的受访者是在职业生涯开始后才学习的 Go,而非将其作为第一门编程语言。
这种背景导致了一个现实问题:大量开发者带着 Java、Python 或 Rust 等其他语言的思维模式和编程习惯进入 Go 生态,使得代码风格多样,有时甚至与 Go 的惯用写法(idioms)相悖。
Go 开发者的主要痛点是什么?
尽管有 91% 的开发者对 Go 表示满意(这一数据常年稳定),但开发者们依然有着明确的改进诉求。调查列出了最令开发者感到沮丧的三件事:
- 确保 Go 代码遵循最佳实践 / Go 惯用写法(33%)
- 其他语言中重视的某个特性在 Go 中缺失(28%)
- 难以找到值得信赖的 Go 模块和包(26%)

痛点一:何为 Go 最佳实践?
高达 33% 的受访者认为,确保代码符合 Go 的最佳实践是最大挑战。这对于从其他语言转来的开发者尤为突出。代码库中可能出现以下情况:
- 使用 Java 风格的深度接口继承层次。
- 以 Python 的思维模式处理 Go 的并发。
- 一个函数内充斥着大量重复的
if err != nil 错误检查,导致代码冗长。
虽然官方提供了《Effective Go》文档,但其更新速度有时跟不上语言和生态的演变。社区迫切需要更清晰、更权威的指南,来回答“怎么写才是地道的 Go 代码?”这个问题。
痛点二:“别人有,我也想要”
28% 的开发者吐槽 Go 缺少其他语言中好用的特性。通过开放文本反馈,几个被反复提及的功能浮出水面:
- 枚举(Enums)与和类型(Sum Types):开发者羡慕 Rust 中安全、表达能力强的枚举,认为 Go 使用
const 加 iota 的模拟方式既不安全也不优雅。
- 错误处理:无处不在的
if err != nil 依然是主要的吐槽点,开发者期望更简洁、更具表达力的错误处理模式。
- 空指针安全:Go 的 nil 虽然存在,但编译器不会强制进行空值检查,导致运行时 panic 仍是线上服务的潜在风险。

例如,开发者期望的枚举可能更接近以下形式(伪代码):
// 当前常见的模拟方式
const (
StatePending = iota
StateRunning
StateFailed
)
// 缺乏类型安全,传入任意整数编译器都不会报错
// 开发者期望的(类似Rust的)枚举
type State enum {
Pending
Running
Failed(reason string) // 甚至可以携带关联数据
}
痛点三:第三方模块的信任危机
26% 的开发者表示,“寻找值得信赖的 Go 模块和包” 是件难事。这是非常实际的担忧:在 GitHub 上找到一个功能合适的库,却发现它已多年未更新;或者一个库仅由单人维护,存在维护者突然弃坑的风险。
社区希望 pkg.go.dev 等官方索引能提供更明确的信号,例如标识出“官方推荐”、“活跃维护”或“生产就绪”的模块,帮助开发者做出更明智的选择。

AI 编程:普及度高,但满意度堪忧
AI 无疑是本年度的关键变量。报告显示,高达 53% 的 Go 开发者每天都在使用 AI 辅助工具(如 ChatGPT、GitHub Copilot 等)。
但是,开发者对这些工具的整体满意度仅为中等水平。只有 13% 的人表示“非常满意”,而“有些不满意”和“非常不满意”的比例合计达到 23%。

质量问题是核心槽点
导致满意度不高的核心原因在于 AI 生成代码的质量。53% 的受访者指出,AI 工具经常生成无法运行的(non-functional)代码;另有 30% 的人抱怨,即使代码能运行,其质量也“惨不忍睹”。

尤其在处理复杂的 Go 并发模式、context 上下文传递或涉及特定项目规范时,AI 工具容易“幻觉”(hallucinate),编造不存在的 API 或写出有问题的代码。例如,可能生成忘记调用 cancel() 函数而导致上下文泄露的代码:
// AI 可能生成的缺陷代码示例
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
// 遗漏了 defer cancel(),可能导致资源泄露
go func() {
// ... 业务逻辑
}()
因此,当前的主流使用方式是:利用 AI 生成单元测试、编写样板代码(Boilerplate)或辅助编写文档。但在核心业务逻辑上,开发者仍倾向于亲自把控。调查中一位拥有 10 年以上经验的开发者评论道:“审查 AI 生成的代码非常耗费心力,这种开销有时会抵消掉它带来的潜在生产力提升。”

一个有趣的反差是:虽然使用 AI 工具辅助开发的开发者比例很高,但真正将 AI 功能集成到自己产品中的开发者比例,却从去年的 39% 下降到了 22%。这表明大家更倾向于将 AI 用作个人生产力工具,而非交付给用户的产品特性。
开发工具链现状
编辑器选择
在代码编辑器方面,VS Code (37%) 和 GoLand / IntelliJ (28%) 依然占据主导地位,合计超过六成。新兴编辑器 Zed 和 Cursor 各自拥有约 4% 的使用者。

命令行工具的使用困惑
本次调查揭示了一个意料之外的问题:大量开发者需要频繁查阅 go build、go run 和 go mod 等基础子命令的文档。
除了 go test 因其参数繁多而难以记忆外,连最常用的构建和运行命令都需要反复查看帮助,这反映出 Go 命令行工具的帮助系统在可用性上存在提升空间。有资深开发者直接吐槽:“查看帮助文档的过程很痛苦。”("Accessing the help is painful.")

当执行 go help test 时,输出的是一大段未经良好格式化的纯文本,阅读体验确实不佳。官方也承认,这是一个值得改进的领域。
总结与展望
通览整份 2025 年 Go 开发者调查报告,我们可以得出以下几点核心观察:
- 生态基本盘稳固:91% 的高满意度表明 Go 语言及其生态依然健康、可靠。“Boring is good”(稳定胜过炫技)的哲学继续得到社区认可。
- 最佳实践指导需求迫切:随着更多有经验的开发者转入 Go 生态,社区亟需更清晰、更权威的编码风格与最佳实践指南,以避免项目代码库成为风格混杂的“万国造”。
- AI 工具尚处于“辅助”阶段:当前 AI 编程工具更像一个“懂一些 Go 但不够精通”的助手,擅长处理模式化任务,但在代码质量和逻辑正确性上仍需人工严格审查。其价值更多体现在提升局部效率,而非替代核心开发工作。
- 工具链体验有待打磨:从基础命令的帮助文档到模块的信任体系,工具链的用户体验仍有明显的优化点,直接影响着开发者的日常效率。
对于语言特性的演进,社区对枚举和空值安全的呼声持续高涨。至于错误处理,短期内可能不会出现范式级别的改变。在 AI 浪潮的冲击下,Go 社区正在实践中摸索与这类新工具的最佳协作方式,其应用模式仍在快速演变中。
你对这份调查报告的哪些发现感触最深?是 AI 工具的质量问题,还是寻找可靠模块的困难?欢迎在 云栈社区 的 Go 技术板块分享你的看法与实践经验。