一文让你知道为什么学了PHP的都要转学Go语言

很多人将Go语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西 。
发展历史2007年9月,Rob Pike在google分布式编译平台上进行C++编译,在漫长的等待过程中,他和Robert Griesemer探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新特性,会是更大的进步 。随后他们在编译结束之前说服了身边的Ken Thompson,觉得有必要为此做一些事情 。几天后,他们发起了一个叫Golang的项目,将它作为自由时间的实验项目 。
2008年5月 Google发现了GO语言的巨大潜力,得到了Google的全力支持,这些人开始全职投入GO语言的设计和开发 。
2009年11月 GO语言第一个版本发布 。2012年3月 第一个正式版本Go1.0发布 。
2015年8月 go1.5发布,这个版本被认为是历史性的 。完全移除C语言部分,使用GO编译GO,少量代码使用汇编实现 。另外,他们请来了内存管理方面的权威专家Rick Hudson,对GC进行了重新设计,支持并发GC,解决了一直以来广为诟病的GC时延(STW)问题 。并且在此后的版本中,又对GC做了更进一步的优化 。到go1.8时,相同业务场景下的GC时延已经可以从go1.1的数秒,控制在1ms以内 。GC问题的解决,可以说GO语言在服务端开发方面,几乎抹平了所有的弱点 。
在GO语言的版本迭代过程中,语言特性基本上没有太大的变化,基本上维持在GO1.1的基准上,并且官方承诺,新版本对老版本下开发的代码完全兼容 。事实上,GO开发团队在新增语言特性上显得非常谨慎,而在稳定性、编译速度、执行效率以及GC性能等方面进行了持续不断的优化 。
开发团队

一文让你知道为什么学了PHP的都要转学Go语言

文章插图
 
GO语言的开发阵营可以说是空前强大,主要成员中不乏计算机软件界的历史性人物,对计算机软件的发展影响深远 。Ken Thompson,来自贝尔实验室,设计了B语言,创立了Unix操作系统(最初使用B语言实现),随后在Unix开发过程中,又和Dennis Ritchie一同设计了C语言,继而使用C语言重构了Unix操作系统 。Dennis Ritchie和Ken Thompson被称为Unix和C语言之父,并在1983年共同被授以图灵奖,以表彰他们对计算机软件发展所作的杰出贡献 。Rob Pike,同样来自贝尔实验室,Unix小组重要成员,发明了Limbo语言,并且和Ken Thompson共同设计了UTF-8编码,《Unix编程环境》、《编程实践》作者之一 。
可以说,GO语言背靠Google这棵大树,又不乏牛人坐镇,是名副其实的“牛二代” 。
一文让你知道为什么学了PHP的都要转学Go语言

文章插图
 
大名鼎鼎的Docker,完全用GO实现,业界最为火爆的容器编排管理系统kubernetes,完全用GO实现,之后的Docker Swarm,完全用GO实现 。除此之外,还有各种有名的项目如etcd/consul/flannel等等,均使用GO实现 。有人说,GO语言之所以出名,是赶上了云时代,但为什么不能换种说法,也是GO语言促使了云的发展?
除了云项目外,还有像今日头条、UBER这样的公司,他们也使用GO语言对自己的业务进行了彻底的重构 。
GO语言关键特性GO语言之所以厉害,是因为它在服务端的开发中,总能抓住程序员的痛点,以最直接、简单、高效、稳定的方式来解决问题 。这里我们并不会深入讨论GO语言的具体语法,只会将语言中关键的、对简化编程具有重要意义的方面介绍给大家,跟随大师们的脚步,体验GO的设计哲学 。
GO语言的关键特性主要包括以下几方面:
  • 并发与协程
  • 基于消息传递的通信方式
  • 丰富实用的内置数据类型
  • 函数多返回值
  • defer机制
  • 反射(reflect)
  • 高性能HTTP Server
  • 工程管理
  • 编程规范

一文让你知道为什么学了PHP的都要转学Go语言

文章插图
 
在当今这个多核时代,并发编程的意义不言而喻 。当然,很多语言都支持多线程、多进程编程,但遗憾的是,实现和控制起来并不是那么令人感觉轻松和愉悦 。Golang不同的是,语言级别支持协程(goroutine)并发(协程又称微线程,比线程更轻量、开销更小,性能更高),操作起来非常简单,语言级别提供关键字(go)用于启动协程,并且在同一台机器上可以启动成千上万个协程 。
对比JAVA的多线程和GO的协程实现,明显更直接、简单 。这就是GO的魅力所在,以简单、高效的方式解决问题,关键字go,或许就是GO语言最重要的标志 。


推荐阅读