吐槽过后,我为什么要夸夸 Go 语言
世上没有完美的软件,即便是一些看似很不错的软件也会有一些小问题。即使是我最心爱的软件项目 Plan 9 也有一些令人痛心的缺陷!对于某些项目,我忍不住想吐槽,但我是出于对它们的喜爱,恨铁不成钢,希望它们能够通过自己的努力赢得大家的尊重。
Go 编程语言就是一个这样的项目。我曾在我的博客和其他地方多次吐槽 Go,但我也经常在私下里赞美 Go。今天,我想来好好地夸一夸 Go,因为虽然我经常吐槽它,但 Go 仍然是我使用过的最好的编程语言之一,而且我对这门语言充满了敬意。
语言魅力
我最欣赏 Go 的地方在于,它能长期保持简单性、稳定性和健壮性。我觉得这些特质比软件设计的其他目标更为重要。Go 开发团队的工作态度非常严谨,每个功能都经过了深思熟虑,力求最简单且最完整的解决方案,而且他们小心翼翼地限制了实现范围,紧紧贴合这些解决方案。在这些方面,Go 几乎没有任何失误。
团队纪律为他们赢得了巨大的优势。我认为他们最大的成就在于,整个 Go 生态系统的质量都非常高。
首先,Go 提供了一门语言和标准库,且设计和实现都非常卓越,这本身就是一项了不起的成就;
其次,Go 语言提供了简单且优雅的设计,整个社区都可以利用 Go 语言设计出优秀的软件。很少有编程语言能够在整个生态系统内达到相同水平的统一性和高质量。
此外,Go 语言还创造了自己的小众市场,并帮助这些小众市场发展壮大,最终成为全新的软件设计类别。我认为 Go 并不是一种系统编程语言(C 和 Rust 之类的语言更加适合)。
Go 是新一代软件产品中的佼佼者,它是一种互联网编程语言。Go 的标准库高效、简洁、正确地实现了丰富的网络协议,并巧妙地结合了协作/抢占式多任务处理模型,因此使用 Go 编写可扩展的互联网软件非常容易。该领域还有其他几种编程语言(比如 Elixir),但是它们没能像 Go 这般成功。
优秀的开发团队
Go 团队的专业素养令我非常佩服。Go 与 Google 紧密相连,二者的关系导致Go 按照自己的方式进行权衡取舍,但由此而引起的项目领导权集中化却对项目有利。Go 社区的一些成员已经注意到了这种结构的缺点,Go 素来做不到及时响应社区的需求。但我认为,Go 的语言设计采用了保守的方式,因此这种脱节实际上对 Go 有好处,可能对项目本身来说还是一个优势。如果 Go 尽可能多地听取社区的意见,那么就有可能成为一个大杂烩,也会因此而失去其特有的魅力。
虽然 Go 没有做到对社区有求必应,但 Go 非常注重社区实际的需求。如果你指出 Go 中的某个问题,并引起他们的注意,则他们会认真对待。许多项目都希望表现出非常谦逊的姿态,一旦发现错误,他们就会主动承担下来。Go 始终能够遵循正常的工程流程:分析问题、提出解决方案、交付修复程序。
总的来说,虽然我经常吐槽 Go,但我还是非常欣赏 Go。我认为 Go 是有史以来最好的编程语言之一。Go 在编程领域达到了难以企及的状态,作为一种健壮的工程工具,在未来几十年中,使用 Go 编写的应用程序都能够正常且良好地运作。我认为 Go 是高水准的编程语言,希望它能够继续发光发彩。
各位 CSDN 的读者朋友,你觉得 Go 语言最大的魅力是什么?最想吐槽的地方又是哪里呢?
原文链接:https://drewdevault.com/2021/04/02/Go-is-a-great-language.html
声明:本文由CSDN翻译,转载请注明来源。