目录
缘起
Golang 诞生于 2007 年,于 2009 年 11 月正式开源,2012 发布了 Go 1.0 稳定版本,是谷歌的第二款开源编程语言。Golang 针对多处理器计算平台的应用程序编程进行了优化,使用 Golang 编译的程序可以媲美 C/C++ 的执行效率,而且实现更加简单,运行更加安全,并且原生支持并行进程。
Golang 的创始人:
- Ken Thompson(肯·汤普森):贝尔实验室 Unix 团队成员,C 语言、Unix 和 Plan 9 的创始人之一。
- Rob Pike:Golang 项目总负责人,贝尔实验室 Unix 团队成员,合著了《The Unix Programming Environment》,对 UNIX 的设计理念做了正统的阐述。
- Robert Griesemer:就职于 Google,负责 Chrome 浏览器和 Node.js 使用的 Google V8 JavaScript 引擎的代码生成部分,对语言设计有深入的认识。
后来还加入了 Ian Lance Taylor、Russ Cox 等人。这些计算机科学领城的重量级人物设计 Golang 的初衷是满足 Google 的需求:在不损失应用程序性能的情况下降低代码的复杂性,具有 “部署简单、并发性好、语言设计良好、执行性能好” 等优势。
计算机软件经历了数十年的发展,形成了多种学术流派,例如:面向过程编程、面向对象编程、函数式编程、面向消息编程等。此外,近年来也出现了一些小众的编程哲学。
Golang 对这些思想亦有所吸收。例如:Golang 接受了函数式编程的一些想法,支持匿名函数与闭包;Golang 接受了以 Erlang 语言为代表的面向消息编程思想,支持 Goroutine 和 Channel,并推荐使用消息而不是共享内存来进行并发编程。
在 Golang 出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言(如:Python)呢?
在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的:“我们做了大量的 C++ 开发,厌烦了等待编译完成,尽管这是玩笑,但在很大程度上来说也是事实。”
显然,Go 语言在这 3 个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。