本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

Go语言介绍

一、GO语言简介

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

2009年11月10号Go语言正式成为了我们开源编程语言中的一员,同时Go语言又被称为云时代的C语言,其地位可以想象,此时肯定会有同学会问:世界上这么多编程语言难道还不够吗?我们程序员就要掌握几十种编程语言或者上百种吗?
其实不是的,Go语言的产生主要是为了能让我们程序员再编程上有更高的一个效率,举例:

如果我们现在要开发一个爬虫,但是我们用c语言的话代码可能要写几百行,这样的话代码量太多,用python的话虽然代码量少但是执行速度慢,我们执行这个程序,c语言执行可能只要0.5秒,python的话可能要用到5秒或者10秒,所以就有了这个Go语言。
Go语言拥有了c语言的执行速度又拥有了python的快速开发。

二、作者介绍

相信大家肯定很好奇到底是什么样的人才能开发的出来Go语言,接来下我就来给大家介绍一下。

99999.jpg

从左到右分别是 :

  1. 罗伯特·格瑞史莫(Robert Griesemer): 曾为谷歌的V8 JavaScript引擎和Chubby开发代码。现任Go作者之一一职。作为行业享有盛名的大咖,Robert Griesemer行事低调,对工作热情饱满,多次受邀作为嘉宾出席各类大会,并发表了精彩演讲。
    2015年04月25日,Robert Griesemer受邀参加了在浦东新区博云路2号浦东软件园的《GOPHER CHINA 2015上海大会》,并发表了精彩演讲

  2. 罗勃·派克(Rob Pike): 罗布·派克是Unix的先驱,是贝尔实验室最早和Ken Thompson以及 Dennis M. Ritche开发Unix的猛人,UTF-8的设计人。他还在美国名嘴David Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞机上。Rob Pike AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统。

  3. 汤普逊(Ken Thompson): Ken Thompson图灵奖得主,C语言前身B语言的作者,Unix的发明人之一, 操作系统Plan 9的主要作者。 共同开发了UTF-8。

三、为什么设计GO语言?

既然都已经有了这么多编程语言为什么还要开发一个Go语言呢?

当时设计Go的目标是为了消除程序各种缓慢和笨重、改进各种低效和扩展性,解决这些当时Google开发遇到的问题。

  • 大量的C++代码,同时又引入了JavaPython
  • 成千上万的工程师。
  • 数以万计行的代码。
  • 分布式的编译系统。
  • 数百万的服务器。

四、为什么选择使用Go语言,或者说Go语言有哪些特点?

在编程界,编程语言可谓是百花争鸣,追求运行速度可以用C,追求开发速度可以用Python。作为一个新起之秀,Go语言究竟有哪些优势,能让吸引这么多忠诚的追随者?以下从几个部分来谈谈Go语言的优势。

1. 上手难度低:

Go语言的语法有CPython的影子,如果你之前学习过其中一种语言,你会发现他们是非常相像的,所以只要有过编程基础的朋友,学习Go语言基本上没有什么技术难点。

2. 快:

快是指执行效率和开发效率。作者在开发Go语言时候,就有意把Go的执行效率和C语言进行比较,因此执行效率是除C以外其他语言难以媲美的。另外,在语法设计方面,也尽量设计得和Python是非常相像,所以开发效率也是极高。在国内,已经有很多中小型公司的技术栈就是基于Go语言实现的,因为他的开发效率可以满足创业公司产品快速迭代的需求,并且性能也是很高的。

3. 出身名门:

Go语言是由谷歌公司负责牵头,召集了三位人类巅峰的计算机大牛负责开发,其中Robert Griesemer参与开发Java HotSpot虚拟机,Rob Pike贝尔实验室Unix团队成员,Ken Thompson贝尔实验室Unix团队成员,C语言创始人之一。阵容豪华,背景强大,可以大胆放心的在公司中使用。

4. 组合:

支持当前所有的编程方式,过程式编程,面向对象编程,函数式编程,开发起来自由高效。任何语言的程序员转Go,都可以找到自己喜欢的编程方式。

5. 工具箱:

拥有超多超好用的第三方库,如果你用Go语言写爬虫,能拥有C语言的爬行速度又能拥有Python那样的少量代码。也是借鉴了Python的那句:人生苦短,快用Go

6. 技能释放:

在辛辛苦苦写完一套项目后,如何部署又是一个大问题。而我们的Go语言项目在编译后会生成一个可执行的文件,当我部署时只要把这个文件放上去即可,极为方便,大大的提高了运维的效率,技能释放更加迅速。

7. 天生神力:

天生就支持并发,相比于PythonPHP等编程语言来说,Go天然的就更适应大型项目的开发。

五、GO语言的应用范围

  1. 服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。

  2. 分布式系统、数据库代理器等,例如Etcd为分布式系统而生
    这一点,在那些用Golang打造的工具和软件中显而易见。Docker,作为一种微服务的容器,也是用 Golang打造。

  3. 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用,而且Go内置的net/http包基本上把我们平常用到的网络功能都实现了。

  4. 内存数据库。

  5. 云平台,目前国外很多云平台在采用Go开发。

  6. 区块链,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用。(区块链的服务器云存储那部分就是使用go开发的)
    201803131537439596278181.png

六、哪些公司在使用GO语言?

随着Go语言的发展趋势越来越好现在国内国外很多知名公司都有使用Go语言,那到底有哪些公司呢?以下做一个简短描述:

  1. 国外的有:

    • Google
    • Docker
    • Facebook
  2. 国内的有:

    • 腾讯
    • 百度
    • 阿里云CDN
    • 京东
    • 小米
    • 360

现在很多公司都开始尝试Golang,除了上面提到的,还有美团、滴滴、新浪以及七牛等。一般的选择,都是选择用于自己公司合适的产品系统来做,比如消息推送的、监控的、容器的等,Golang特别适合做网络并发的服务,这是他的强项,所以也是被优先用于这些项目。

6566人已阅读,今天你学习了吗?

12条回复
添加新回复