本文是「vangoleo的Go语言学习笔记」系列文章之一。
官网: http://www.vangoleo.com/go/hello-golang/golang
我在2015年第一次接触Go语言,完成了Hello World,随后也一直在关注这门新语言。至今,Go语言发展已通过去十年多了,愈来愈受到广大开发者的关注,并且随着云原生、IoT、区块链的流行,Go彷佛要成为21世纪的第一语言。Docker、Kubernetes、以太坊等重量级的项目都是基于Go开发。编程
Go语言是Google公司在2009年开源的一门高级编程语言,它为解决大型系统开发过程当中的实际问题而设计,支持并发、规范统1、简单优雅,性能强大,被不少Go语言传道者誉为“云计算时代的C语言”。网络
近期,我在系统地学习Go语言,并整理了一些学习笔记。后续会和你们进行分享。今天先和你们聊聊Go语言的发展史和Go语言的特色。并发
这是一封由Rob Pike在2007年9月25日,下午3:12发送给Robert Griesemer和Ken Thompson的有关编程语言讨论主题的邮件,邮件正文大意为:框架
我在开车回家的路上获得了些灵感:编程语言
- 给这门编程语言取名为“go”,它很简短,易书写。
- 工具类能够命名为:goc、 gol、goa。
- 交互式的调试工具也能够直接命名为“go”。
- 语言文件后缀名为 .go 等等。
和不少伟大的公司诞生于车库同样,Go语言的命名也和汽车有关。以上就是Go语言名字的来源。我我的是很喜欢Go这个命名的,看似很随意的一个想法,却很精准。有着Google的纯正血统,又体现了语言简单,优雅的特色。并且Go里面开启一个协程的关键字就是go。函数式编程
自此以后Robert、Rob和Ken三我的开始在Google内部进行了研发,一直到了2009年,Go正式开源了,Go项目团队将2009年11月10 日,即该语言正式对外开源的日字做为其官方生日。源代码最初托管在http://code.google.com
上,以后几年才逐步的迁移到 GitHub上。
谷歌的“20%时间”工做方式,容许工程师拿出20%的时间来研究本身喜欢的项目。语音服务Google Now、谷歌新闻Google News、谷歌地图Google Map上的交通讯息等,全都是20%时间的产物。
Go语言最开始也是20%时间的产物。函数
邮件中提到的就是Go语言最重要的3位创始人:
让咱们来认识一下这3位大佬:高并发
编程语言的发展,和物种进化相似。每种编程语言都会从先前的语言吸收精华,再进行创新和改进。下图展现了Go从它的前辈们继承了哪些优势,Go正是站在这些巨人的肩膀上,在云时代,发挥愈来愈大的做用。
Go语言从前辈们继承的特色:工具
以下是列举的一些Go语言的重量级应用:
若是现实世界须要我可以在几天内对一个生产系统进行原型设计、测试和部署,并且在每秒能处理比原来多5倍请求,CPU和内存的开销还都很小。我想大概只有Go语言能够胜任了。
Go语言有以下优势:
人们说,每当你学习一门新的口语时,你也会沉浸在说这种语言的人的某些文化中。所以,您学习的语言越多,您可能会有更多的变化。
编程语言也是如此。不管您未来如何应用新的编程语言,它总能给你带来新的编程视角或某些特别的技术。
不管是函数式编程,模式匹配仍是原型继承,一旦你学会了它们,你就能够随身携带这些编程思想,这扩展了你做为软件开发人员所拥有的问题解决工具集。它们也改变了你阅读高质量代码的方式。
而Go在这方面有一项了不得的财富。Go文化的主要支柱是保持简单,脚踏实地的代码,而不会产生许多冗余的抽象概念,并将可维护性放在首位。大部分时间花费在代码的编写工做上,而不是在修补工具和环境或者选择不一样的实现方式上,这也是Go文化的一部分。
Go文化也能够总结为:“应当只用一种方法去作一件事,并保持简单,高效”。
一点注意事项。当你须要构建相对复杂的抽象代码时,Go一般会妨碍你。好吧,我会说这是简单的权衡。
本文由 www.vangoleo.com 发布