Skip to content

Latest commit

 

History

History
24 lines (15 loc) · 3.01 KB

File metadata and controls

24 lines (15 loc) · 3.01 KB

1.1 Go 大纲

如果你读过这本书,很可能你已经对 Go 深信不疑。因此,让我们简短地提醒我们是什么让 Go 成为一种强大的语言。

在过去的几十年中,软件工程发生了巨大的变化。大多数现代系统不再由一个人编写,而是由多个程序员组成的团队编写,有时甚至数百甚至数千人。如今,代码必须具有可读性、表达性和可维护性,以保证系统多年来的耐用性。同时,在瞬息万变的世界中,最大限度地提高敏捷性并缩短上市时间对于大多数组织而言至关重要。编程也应遵循这一趋势,并确保软件工程师在阅读、编写和维护代码时尽可能高效。

为了应对这些挑战,谷歌在 2007 年构思了 Go 编程语言。从那时起,许多组织采用该语言来支持各种用例:API、自动化、数据库、CLI(命令行接口)等。同时,今天的许多组织将 Go 视为云的语言。

在特性方面,Go 没有类型继承、没有异常、没有宏、没有偏函数、不支持惰性变量评估或不变性、没有运算符重载、没有模式匹配等。为什么语言中缺少这些特性?官方 Go FAQ 为我们提供了一些见解:

为什么 Go 没有功能X?您最喜欢的功能可能会因为不适合而缺失,因为它会影响编译速度或设计的清晰度,或者因为它会使基本系统模型变得过于困难。

-- Go FAQ

通过功能数量来判断编程语言的质量可能不是一个准确的指标。至少,这不是 Go 的目标。

相反,在组织规模采用语言时,Go会利用一些基本特征,包括:

  • 稳定性:尽管Go收到频繁的更新(包括改进和安全补丁),但在过去几年中它仍然是一种非常稳定的语言。人们甚至可以将其视为该语言的最佳功能之一。
  • 表达能力:我们可以通过编写和阅读代码的自然和直观程度来定义编程语言中的表达能力。减少的关键字数量和解决常见问题的有限方法使Go成为大型代码库的表达语言。
  • 编译:例如,作为开发人员,还有什么比必须等待构建来测试我们的应用程序更令人恼火的呢?以快速编译时间为目标一直是语言设计者有意识的目标是提高生产力。
  • 安全性:Go是一种强静态类型语言。因此,它具有严格的编译时规则,可确保代码编写在大多数情况下是类型安全的。

同时,Go 是从头开始构建的,具有可靠的特性,例如具有 goroutine 和通道的出色并发原语。没有强烈需要依赖外部库来构建高效的并发应用程序。观察这些天并发的重要性也说明了为什么 Go 是现在如此强大的语言,也可能在未来也是如此。但是,人们也可以将Go视为一种简单的语言。从某种意义上说,这不一定是错误的。例如,一个新手可以在不到一天的时间内学习该语言的主要特征。那么,如果 Go 很简单,为什么还要阅读以错误概念为中心的书呢?