Go语言发展历史
阵容豪华的创使人团队
Ken Thompson
- 1966年:加入了贝尔实验室,在参与 Multics (多路信息计算)开发期间,创造出了B语言,并用一个月的时间用B语言开发了全新的操作系统UNICS,后来改名为我们所熟悉的UNIX 操作系统。
- 1971年:和丹尼斯·利奇(Dennis Ritchie)一起共同发明了C语言。
- 1973年:和丹尼斯·利奇(Dennis Ritchie)使用C语言重写了UNIX,并安装于PDP-11的机器之上。
- 1983年:美国计算机协会将图灵奖授予汤普森。
- 2000年:离开贝尔实验室,已退休的汤普森成为了一名飞行员。
- 2006年:加入Google工作。
- 2007年:64岁的高龄,与Rob Pike和Robert Griesemer主导了Go语言的开发。 Rob Pike
- Go语言项目总负责人。
- 贝尔实验室Unix团队成员,参与的项目包括Plan 9,Inferno操作系统和Limbo编程语言。
- UTF-8字符集规范唯二的发明人之一(另一位是Ken Thompson)。
- 《UNIX环境编程》和《程序设计实践》这两本书的作者之一。
- 第22届莫斯科夏季奥运会射箭项目的银牌得主。
- 业余天文学家,设计的珈玛射线望远镜差点被 NASA 用在航天飞机上。
- 他的媳妇Renee French 就是 Go 语言吉祥物的设计人。 Robert Griesemer
- 参与V8 JavaScript引擎的开发。
- 参与Java HotSpot虚拟机的研发。
起源
2007年,Google的几位大牛正在用C++开发一些比较繁琐但是核心的工作,主要是分布式集群,大牛觉得很闹心。此时C++委员会来他们公司做技术演讲,说C++将要添加35个新特性,大牛心里飘过一万个CNM,“C++特性还不够多吗”。于是Rob Pike说要不自己搞个简单一点的语言吧,首先名字得简单好记,大腿一拍就叫“go”。 把事情搞复杂很容易,把事情搞简单才更深刻。
发展
- 2007年9月21日,开始雏形设计。
- 2009年10月30日,Rob Pike宣布了Go语言的存在。
- 2009年11月10日,以完全开源的方式公布了Linux和Mac OSX上的版本,11月22日公布了Windows版本。
- 2010年1月8日,当选2009年年度语言。
- 2010年5月,谷歌投入使用。
- 2011年4月,谷歌开始抽调员工全职开发Go语言,并于5月宣布Google APP Engine支持Go语言。 参考网站www.test.tiobe.com/tiobe-index…。 参考网站madnight.github.io/githut/#/pu…。
Go语言的优劣
优势
- 语法简单,易于学习。类C的语法,同时比C/C++简洁和干净。
- 自带GC,方便使用。
- 快速编译,高效执行。
- 简单的依赖管理。
- 并发编程,轻松驾驭。
- 静态类型,同时有一些动态语言的特征(var声明)。
- 标准类库,规范统一。 劣势
- 不支持动态加载代码。
- 发展时间短,生态不及Java、C++庞大,但是够用。
应用场景总览
- 巨型中央服务器领域。
- 高性能分布式领域。
- 游戏服务端开发。
- 复杂事件处理。
- 对实时性要求很高的软件开发。
- 可以在Intel和ARM处理器上运行,因此也可以在安卓上运行。
go微服务开发
-
零依赖,让我们可以最小化我们的镜像,节省存储与拉取镜像带宽。
-
Runtime使用更小的内存,对比Java的JVM。
-
更好的并行能力,当你真的需求更多CPU的时候。
-
更高的性能,对比解释性语言,在处理数据已经并发方面优势明显。
-
简单,学习成本低,内部人员可以转入Go阵营。
-
使用Go能更接近云原生生态,比如docker,k8s, habor都是用Go开发的。