为何必定要学Go语言

Go语言是谷歌2009发布的第二款开源编程语言。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序能够媲美C或C++代码的速度,并且更加安全、支持并行进程。前端

 

为何要选择学习Go语言呢?与其余语言的应用相比,它有什么优势呢?

一、学习曲线

它包含了类C语法、GC内置和工程工具。这一点很是重要,由于Go语言容易学习,因此一个普通的大学生花一个星期就能写出来能够上手的、高性能的应用。在国内你们都追求快,这也是为何国内Go流行的缘由之一。git

二、效率

Go拥有接近C的运行效率和接近PHP的开发效率,这就颇有利的支撑了上面你们追求快速的需求。程序员

三、出身名门、血统纯正

之因此说Go语言出身名门,是由于咱们知道Go语言出自Google公司,这个公司在业界的知名度和实力天然不用多说。Google公司汇集了一批牛人,在各类编程语言称雄争霸的局面下推出新的编程语言,天然有它的战略考虑。并且从Go语言的发展态势来看,Google对它这个新的宠儿仍是很看重的,Go天然有一个良好的发展前途。咱们看看Go语言的主要创造者,血统纯正这点就可见端倪了。github

四、自由高效:组合的思想、无侵入式的接口

Go语言能够说是开发效率和运行效率两者的完美融合,天生的并发编程支持。Go语言支持当前全部的编程范式,包括过程式编程、面向对象编程以及函数式编程。程序员们能够各取所需、自由组合、想怎么玩就怎么玩。golang

五、强大的标准库

这包括互联网应用、系统编程和网络编程。Go里面的标准库基本上已是很是稳定了,特别是我这里提到的三个,网络层、系统层的库很是实用。redis

六、部署方便:二进制文件、Copy部署

我相信这一点是不少人选择Go的最大理由,由于部署太方便了,因此如今也有不少人用Go开发运维程序。docker

七、简单的并发

它包含了下降心智的并发和简易的数据同步,我以为这是Go最大的特点。之因此写正确的并发、容错和可扩展的程序如此之难,是由于咱们用了错误的工具和错误的抽象,Go能够说这一块作的至关简单。数据库

八、稳定性

Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具备很强的稳定性,稳定压倒一切。那么为何Go相比于其余程序会更稳定呢?这是由于Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test。编程

Go语言适合用来作什么?

服务器编程:之前你若是使用C或者C++作的那些事情,用Go来作很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
分布式系统:数据库代理器等。
网络编程:这一块目前应用最广,包括Web应用、API应用、下载应用、内存数据库。
云平台:google开发的groupcache,couchbase的部分组建云平台,目前国外不少云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监本身出来搞的apcera云平台。缓存

Go语言成功的项目:

nsq:bitly开源的消息队列系统,性能很是高,目前他们天天处理数十亿条的消息
docker:基于lxc的一个虚拟打包工具,可以实现PAAS平台的组建
packer:用来生成不一样平台的镜像文件,例如VM、vbox、AWS等,做者是vagrant的做者
skynet:分布式调度框架
Doozer:分布式同步工具,相似ZooKeeper
Heka:mazila开源的日志处理系统
cbfs:couchbase开源的分布式文件系统
tsuru:开源的PAAS平台,和SAE实现的功能如出一辙
groupcache:memcahe做者写的用于Google下载系统的缓存系统
god:相似redis的缓存系统,可是支持分布式和扩展性
gor:网络流量抓包和重放工具

哪些大公司在用go语言?

Google
这个不用多作介绍,做为开发Go语言的公司,当仁不让。Google基于Go有不少优秀的项目,好比:https://github.com/kubernetes/kubernetes ,你们也能够在Github上 https://github.com/google/ 查看更多Google的Go开源项目。

Facebook
Facebook也在用,为此他们还专门在Github上创建了一个开源组织facebookgo,你们能够经过 https://github.com/facebookgo 访问查看facebook开源的项目,好比著名的是平滑升级的grace。

腾讯
腾讯做为国内的大公司,仍是勇于尝试的,尤为是Docker容器化这一块,他们在15年已经作了docker万台规模的实践,具体能够参考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice

百度
目前所知的百度的使用是在运维这边,是百度运维的一个BFE项目,负责前端流量的接入。他们的负责人在2016年有分享,你们能够看下这个http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

阿里
阿里巴巴具体的项目不太清楚,不过据说其系统部门、CDN等正在招Go方面的人。

京东
京东云消息推送系统、云存储,以及京东商城等都有使用Go作开发。

小米
小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/

此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。

360
360对Golang的使用也很多,一个是开源的日志搜索系统Poseidon,托管在Github上,https://github.com/Qihoo360/poseidon

Go语言前景:

相关文章
相关标签/搜索