大家好,我是煎鱼。
在这个月的月初,Go 官方公布了 1 月、2 月做的 Go 开发者调查结果。本次调查的主要关注点是:开发人员如何开始将 Go(或其他语言)用于 AI(人工智能)相关场景。以及正在学习 Go 或希望扩展 Go 技能的开发人员面临的特殊挑战有哪些。
老样子,我会摘取其中我认为有了解意义的 TOP3 分享给大家。
使用 Go 最大的挑战
在本轮调查中,我们引入了封闭式问题,提供了往年最常见的回答作为选择。在形式上,我们会随机向受访者展示开放式或封闭式问题。
在封闭式问题中,选择最多的是:
1、学习如何有效地编写 Go(15%)。
2、处理错误处理的冗长(13%)。
封闭式问题
有趣的是,13% 的受访者表示他们在使用 Go 时没有遇到任何困难的挑战。
图片
这与我们在开放式问题中看到的情况一致:
1、11% 的受访者在回答中提到学习 Go、学习最佳实践或文档问题是他们面临的最大挑战。
2、另有 11% 的受访者提到了错误处理问题。
Go + AI 系统的使用情况
在使用生成式人工智能(GenAI)系统的 Go 开发者中,绝大多数(81%)表示使用了 OpenAI 的 ChatGPT 或 DALL-E 模型。
开源模型的使用率也很高,大多数受访者(53%)至少使用了 Llama、Mistral 或其他开源软件模型中的一种。
图片
受访者正在构建的最常见服务包括:摘要工具(56%)、文本生成工具(55%)和聊天机器人(46%)。
图片
用户表示这些 AI 用例中有许多是面向内部的,例如:根据企业内部文档训练的聊天机器人,旨在回答员工的问题。对面向外部的人工智能功能提出了一些担忧,其中最主要的是可靠性、准确性、法律法规等问题。
另外有证据表明,Go 已经被用于 GenAI 领域,而且似乎还有更多的需求。大约 1/3 正在构建人工智能功能的受访者告诉我们。
图片
他们已经在使用 Go 完成各种 GenAI 任务,包括:新功能原型开发和与 LLM 集成服务。
在我们认为 Go 是特别合适的工具的两个领域:ML/AI 系统(37%)和托管 ML/AI 模型的 API 服务(41%)。这一比例略有上升。
Go 团队工作优先级
在以往过去收集的 Go 开发者反馈中,大家最关心的是:最关心的是资源成本和安全问题。
如下图:
图片
为了解决对资源成本的担忧,Go 团队将会继续优化 Go 和增强配置文件引导优化 (PGO)。
在安全方面的担忧,受访者最担心的问题是:不安全的编码实践(42%)和系统配置错误(29%)。
如下图:
图片
Go 团队的主要结论是:开发者对在编写代码时帮助发现和修复潜在安全问题的工具特别感兴趣,将会在这一块领域继续加大研究和投入。
调查报告的亮点
- 开发人员对 Go 语言的满意度仍然很高,93% 的受访者表示在过去一年中对 Go 语言感到满意。
- 大多数受访者(80%)表示,他们相信 Go 团队在维护和发展 Go 语言时,会为像他们这样的开发人员 "做最好的事"。
- 在构建人工智能驱动的应用程序和服务的受访者中,他们普遍认为 Go 是在生产中运行此类应用程序的强大平台。
- 例如:大多数使用 AI 应用程序的受访者已经使用 Go 开发,或者希望将其人工智能驱动的程序迁移到 Go,而开发人员遇到的最严峻挑战与库和文档生态系统有关,而不是核心语言和运行时。
- 目前最常见的记录入门路径都是以 Python 为中心的,这导致许多组织在转向更适合生产的语言之前,都先用 Python 开始人工智能驱动的工作。
- 受访者正在构建的最常见的人工智能驱动服务包括摘要工具、文本生成工具和聊天机器人。都是面向内部使用为主。
- 实现 Go 相关学习目标时最常提到的挑战是:缺乏时间或机会。
- 这表明在没有具体目标或业务案例的情况下,语言学习很难被优先考虑。
- 最常见的挑战是学习新的最佳实践、概念和成语,这些都是围棋所特有的,因为大多数开发者来自其他语言生态系统。
总结
其实和平时工作接触到的情况差不多,大家都会用惯用语言先去开发 AI 相关程序,例如:Go。然后开发着开发着,发现很多东西和轮子都在 Python 那里,尴尬得很。
面向今年(2024 年),Go 团队应该会在 Go 最佳实践、高级方面的教程使用上继续发力。而功能方面,安全和资源成本已经列上了日程。
最头疼的 Go 错误处理的问题和改善,虽然一直在高呼。但 Go 团队显然在 issues 清单上还没想好怎么做。