Google的Rob Pike在2012年的主题演讲中说:“ Go的目的不是要对编程语言设计进行研究; 这是为了为其设计师及其同事改善工作环境。 与编程语言研究相比,Go不仅仅是软件工程。 换一句话,它与软件工程服务中的语言设计有关。” 演讲揭示了该编程语言的一些最大优势,即可读性,实用性和清晰度。 派克(Pike)声称,创建Go是为了解决Google在构建大型服务器软件时曾遇到的一系列软件工程问题。
澳大利亚程序员兼作者戴夫·切尼(Dave Cheney)在Gophercon India的闭幕演讲中表示 ,Go选择“不包括其他编程语言已习惯其用户认为必不可少的许多功能。或者如Rob Pike所说,“少即是多” '。”
“简单是终极的成熟”,这句话自远古时代就出现在我们眼里,但看起来好像是为Go创建的。
Go语言——出身名门的后起之秀
Go语言诞生于谷歌,由计算机领域的三位宗师级大牛Rob Pike、Ken Thomp son和 Robert Griesemer写成。由于出身名门,Go在诞生之初就吸引了大批开发者的关注。
但Go的语言优势确是其至今仍能拥有大批追随者的原因。
1,简单高效
Go语言作为后起之秀,在语言层面具有语法简洁 、执行效率高的特点 ;相比之下,Java和Python 、PHP都显得低效,C++则太过麻烦,而Go则可以做到简单与高效兼顾。
2,高并发
Go语言是主打并发、为并发而生的,其出发点即是瞄准大数据 + 云计算时代背景下的高并发、分布式应用场景。
3, 跨平台
可以在不同平台直接编译生成可执行程序,基础内存占用很少,小应用占用几M,大型应用占用个几十M就能很好运行,这使得golang可以在树莓派之类的小设备上很好的运行,这一点表现比java要好的多。
Golang语言的国内应用
今日头条,今日头条当前后端服务超过80%的流量是跑在Go构建的服务上。微服务数量超过100个,高峰QPS超过700万,日处理请求量超过3000亿,可能是业内最大规模的Go应用。
这些企业在用Go :
1、Google
这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上https://github.com/google/ 查看更多Google的Go开源项目。
2、Facebook
Facebook也在用,为此他们还专门在Github上建立了一个开源组织facebookgo,大家可以通过https://github.com/facebookgo访问查看facebook开源的项目,比如著名的是平滑升级的grace。
3、腾讯
腾讯作为国内的大公司,还是敢于尝试的,尤其是Docker容器化这一块,他们在15年已经做了docker万台规模的实践,具体可以参考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice 。
4、百度
目前所知的百度的使用是在运维这边,是百度运维的一个BFE项目,负责前端流量的接入。他们的负责人在2016年有分享,大家可以看下这个 http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend .
5、京东
京东云消息推送系统、云存储,以及京东商城等都有使用Go做开发。
6、小米
小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 。
此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
7、360
360对Golang的使用也不少,一个是开源的日志搜索系统Poseidon,托管在Github上,https://github.com/Qihoo360/poseidon.
为什么要学Go语言?
首先Golang具有简单高效、高并发、跨平台的优势,其次Golang的应用领域非常广泛。
1、服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
2、分布式系统,数据库代理器等。
3、网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。
4、内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。
5、云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。
6、游戏服务端的开发等等。
其次,随着Golang语言的发展,国内各大企业对Go语言从业人员的需求量也在急速增加。
Golang语言也成为程序员最想学的编程语言TOP1。
如何学怎么学?
基础
【马哥教育】2020Go运维架构师免费课程资源wx7dcc75bb5e655e9b.h5.xiaoe-tech.com1.go基础介绍
2.环境准备&HelloWorld3.变量4.常量&作用域5.布尔类型6.整数7.浮点数8.指针9.用户数据 输入
10.if表达式
11.switch表达式