朝着错误的方向发展」的摘要信息

这是 Aliaksandr Valialkin 昨天刚写的一篇文章, 心有戚戚焉,所以特意翻译成中文,个人感觉,自从Rob Pike退休后,Go在大方向迷失了,正如老貘(Go101)所说,目前Go的开发就像完成KPI一样,也许, 大师不会再回来了。 Aliaksandr Valialkin是fasthttp的作者,也是VictoriaMetrics开发者,一位资深的Go程序员。 以下是译文。 以下是对原文的地道中文翻译: Go编程语言以易于使用而闻名。得益于经过深思熟虑的语法、特性和工具,Go允许编写任意复杂度的易读易维护的程序(参见GitHub上的这个列表)。 有些软件工程师称Go为"无聊"和"过时",因为它缺乏其他编程语言的高级特性,如单子、Option类型、LINQ、借用检查器、零开销抽象、面向方面编程、继承、函数和运算符重载等。虽然这些特性在特定领域可能可以简化编码,但它们除了好处之外还有非零的成本。这些特性通常对锻炼大脑有好处。但是在处理生产代码时,我们不需要额外的精神负担,因为我们已经很忙于解决业务任务了。所有这些特性的主要成本是增加了结果代码的复杂性: 仅仅通过阅读代码就变得更难理解正在发生的事情; 调试此类代码变得更加困难,因为您需要跳过数十个非平凡的抽象才能到达业务逻辑; 由于这些特性施加的限制,为此类代码添加新功能变得更加困难。 这可能会显著减慢甚至阻碍代码开发的进度。这就是Go一开始就没有这些特性的主要原因。 不幸的是,一些这样的特性开始出现在最新的Go版本中: 泛型已在Go1.18中添加。许多软件工程师希望Go有泛型,因为他们认为这将大大提高Go的生产力。Go1.18发布已经两年了,但没有迹象表明生产力有所提高。Go中泛型的整体采用率仍然很低。为什么?因为大多数实际的Go代码根本不需要泛型。另一方面,泛型显著增加了Go语言本身的复杂性。例如,尝试理解...