Go语言是怎样诞生的?
Go语言的创始人有三位,分别是图灵奖获得者、C语法联合发明人、Unix之父肯·汤普森
(Ken Thompson)、Plan 9操作系统领导者、UTF-8编码的最初设计者罗伯·派克(Rob Pike)、
以及Java的HotSpot虚拟机和Chrome浏览器的JavaScript V8引擎的设计者之一
罗伯特·格瑞史莫(Robert Griesemer)。
他们可能都没有想到,他们三个人在2007年9月20日下午的一次普通讨论,
就这么成为了计算机编程语言领域的一次著名历史事件,
开启了一个新编程语言的历史。
Go是否值得我们学习?
1、基于21世纪互联网的C语言。
2、如今的Go语言已经逐渐成为了云计算时代基础设施的编程语言。
3、云计算基础设施软件的大部分流行和可靠的作品,比如:Docker、
Kubernetes、Prometheus、Ethereum(以太坊)、Istio、CockroachDB、
InfluxDB、Terraform、Etcd、Consul等等。
4、Go除了在云计算基础设施领域,拥有上面这些杀手级应用之外,
Go语言的用户数量也在近几年快速增加。
5、Go语言项目技术负责人罗斯·考克斯甚至还专门写过一篇文章,
全世界范围的Gopher数量从2017年中旬的最多100万,增长到2019年11月的最多196万,
大概每18个月翻一番。庞大的Gopher基数为Go未来的发展提供持续的增长潜力和更大的想象空间。
Go 语言的核心优势
1、 高速的效率
Go 语言在保证了快速编译的同时,也保证了高效的开发效率和程序运行性能。
开发过程中相较于 Java 和 C++ 呆滞的编译速度,Go 的快速编译时间是一个主要的效率优势。
2、 易学习,成本低
Go 语言语法简单,包含了 类C 语法。因为 Go 语言容易学习,所以一个普通的大学生,
只要有基础的 C 语言基础,花几个星期就能写出来可以上手的、高性能的应用。
3、 强大的标准库
Go 里面的标准库基本上已经是非常稳定了,特别是网络层、系统层的库非常实用。
Go 语言的 lib 库麻雀虽小五脏俱全。
Go 语言诞生在互联网时代,因此它天生具备了去中心化、分布式等特性,
具体表现之一就是提供了丰富便捷的网络编程接口。
4、 简单的高并发
Go 语言的 Goroutine 和 Channel 这两个神器简直就是并发和异步编程的巨大福音。
像 C、C++、Java、Python 和 JavaScript 这些语言的并发和异步方式太控制就比较复杂了,
而且容易出错,而 Go 解决这个问题非常地优雅和流畅。
5、 出身名门、血统纯正
从 Go 语言的创造者,到 Go 语言的富爸爸 Google 公司,那可以说是占尽了先机。
Google 在业界的知名度和实力自然不用多说,Google 公司聚集了一批牛人,
在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。
6、 规范性
Go 语言带来的代码规范之外,还有强大的编译检查、完整的软件生命周期工具,
具有很强的稳定性。Go提供了软件生命周期(开发、测试、部署、维护等等)
的各个环节的,如 go tool、gofmt、go test。
Go语言的使用者们
Google
这个不用多做介绍,作为 Go 语言的富爸爸,当仁不让。
Facebook-Facebook 也在用,为此他们还专门在 Github 上建立了一个开源组织 facebookgo,大家可以通过访问查看 facebook 开源的项目。
腾讯
腾讯作为国内的大公司,还是敢于尝试的,尤其是 Docker 容器化这一块,他们在 2015年 已经做了 docker 万台规模的实践。
阿里-阿里巴巴具体的项目不太清楚,不过听说其系统部门、CDN 等正在招 Go 方面的人。
京东-京东云消息推送系统、云存储,以及京东商城等都有使用 Go 做开发。
小米-小米对 Golang 的支持,莫过于运维监控系统的开源。
此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用 Golang。
360-360对 Golang 的使用也不少,一个是开源的日志搜索系统 Poseidon,托管在 Github 上。