2007年,Google的罗伯特·格里斯默(Robert Griesemer)、罗布·派克(Rob Pike)和肯·汤普森(Ken Thompson,Unix的创造者之一)发起了一个新语言项目。他们的动机来自Google面临的现实问题:
- 编译速度太慢:Google的大型C++项目编译时间长达数十分钟甚至数小时
- 并发编程困难:多核处理器的普及使得并发成为必须,但C++和Java的并发模型复杂且容易出错
- 语言太复杂:C++的特性过多,Java的面向对象有时过于繁琐
他们设计Go的目标是:
- 编译速度快(接近C的编译速度)
- 并发编程简单(基于CSP模型)
- 语言简洁(没有继承、泛型(最初)、异常)
- 自动内存管理(垃圾回收)
- 适合网络服务和云基础设施
Go于2009年11月公开发布,2012年发布1.0版本。