程序语言Go官方调查社群内,对近期语言改动的意见,发现目前Go开发者的主要挑战是错误处理与编写最佳实践程序代码,另外,官方也注意到模块难以维护的问题。

过去Go最被开发者诟病,甚至有高达8成受访者不满意的缺点—缺乏泛型(Generics),在Go 1.18正式推出泛型后,抱怨的声音已经逐渐消失,尽管社群内对官方所提供的泛型有各种意见,但是泛型现在已经不是开发者在使用Go上最主要的挑战。

在最新的开发者大调查中,显示当前社群认为Go开发最大的困难在于错误处理(Error Handling),不少开发者反馈Go的错误处理程序代码过于冗长,官方提到,这样的回应单就字面上来看,代表着开发者对于编写重复的错误处理程序代码感到无聊或是过于繁琐,探究其背后的意义,也可能表示错误处理会影响开发者的调试能力。官方引用开发者的意见,提到现阶段的错误处理,可能会造成混乱,如果处理不恰当,反而会掩盖真正的问题。

另一个Go开发者的挑战是写出最佳实践程序代码。Go是一个易学难精的程序语言,在之前的调查中,有超过70%的受访者认为,学习使用Go第一年就能很有效率的开发,但是学习Go的最佳实践,却也是Go开发者的主要挑战之一。

受访者认为,Go没有良好的最佳实践文件,缺乏程序代码结构、推荐工具以及函数库使用等相关记录,这使得初学者和团队很难保持程序代码的一致性。对于想学习写出符合Go惯用语法程序代码的开发者,增加了不少难度,尤其是对习惯其他程序语言开发范式的人来说更是如此。

Go 1.11的时候加入了模块的概念(Module),模块虽然为开发者带来许多程序开发的便利性,但是维护模块的工作本身,对模块开发者却不怎么友善。Go官方2023年计划对模块维护者进行研究改进组件生态,因此在这次的大调查中,也进一步了解模块维护者目前面临的挑战。

而调查结果显示,模块维护者认为目前最大的挑战,是维持依赖性更新以及版本控制方面的困难,像是避免、识别和掌握引入重大更改的时机,官方承诺,他们将基于这些意见,制定改进策略。