Go语言发展历史

193 阅读3分钟

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处理器上运行,因此也可以在安卓上运行。 image.png

go微服务开发

  • 零依赖,让我们可以最小化我们的镜像,节省存储与拉取镜像带宽。

  • Runtime使用更小的内存,对比Java的JVM。

  • 更好的并行能力,当你真的需求更多CPU的时候。

  • 更高的性能,对比解释性语言,在处理数据已经并发方面优势明显。

  • 简单,学习成本低,内部人员可以转入Go阵营。

  • 使用Go能更接近云原生生态,比如docker,k8s, habor都是用Go开发的。