第一讲 为什么要学习Golang

img

首先我们看一下官网的介绍:

Go 编程语言是一个开源项目,旨在提高程序员的工作效率。

Go 具有表现力简洁干净高效。它的并发机制可以轻松编写程序,充分利用多核和联网机器,而其新颖的类型系统可以实现灵活和模块化的程序构建。Go 可以快速编译为机器代码,且具有垃圾收集的便利性和运行时反射的能力。它是一种快速的、静态类型的、编译的语言,感觉就像一种动态类型的解释型语言。

1、背景

go是一个Google公司推出的一个开源项目(系统开发语言),它是基于编译、垃圾收集和并发的编程语言。并将其开源并在BSD许可证下发行。(多核CPU2005提出、Java是1995年发布的、C++是1985年、Python是1991年)

Go最初的设计由Robert Griesemer,Rob Pike 和Ken Thompson在2007年9月开始的,官方的发布是在2009年11月。2010年5月由Rob Pike公开的将其运用于google内部的一个后台系统。目前在google App Engine也支持go语言(目前仅支持三种:Java、Python和Go)

Robert Griesemer:

img

曾协助制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8

Rob Pike:

早年在贝尔实验室和Ken Thompson还是编程的小弟,如今已成长为业内的领军人物。UTF-8两个发明人之一。Go设计团队第一任老大。如今也退休并被谷歌尊养起来了。Rob Pike仍旧活跃在各个Go论坛组中,适当地发表自己的意见。

顺便说一句,Go语言的地鼠吉祥物是由Rob Pike的媳妇Renee French设计的。

顺便另说一句,Rob Pike曾获得1980年奥运会射箭银牌。

Ken Thompson:

大名鼎鼎、如雷贯耳,Unix操作系统的发明人之一(排在第一号),C语言前身B语言的设计者,UTF-8编码设计者之一,图灵奖得主。老爷子今年快78岁了(1943年生)。早年一直再贝尔实验室做研究,60多岁的时候被谷歌尊养起来。2007年,老爷子和Rob Pike、Robert Griesemer一起设计了做出的Go语言。老爷子目前基本不参与Go的设计和开发。

在2011年的一次采访中,老爷子幽默地谈到设计Go语言的初衷是他们很不喜欢C++,因为C++中充满了大量的垃圾特性。

2、目前哪些公司在使用Go

谷歌

作为golang语言的诞生地,谷歌应该是最早使用golang语言的公司了。公司很多的服务都采用golang.

盘点使用golang作为后台的科技公司

谷歌浏览器,youtube,谷歌地球等项目都使用到了golang,而且其他的一些小项目也都采用了golang,可以说golang正在一步步占据着谷歌后端的地位。

Twitch

作为全球最大的视频游戏直播平台,Twitich后台采用的语言就是golang,它不仅简单高效,而且在高平发的时候表现尤其优秀。

盘点使用golang作为后台的科技公司

通过golang和C++的组合,Twitch实现了将RTMP流转化成了HTML流。

由于高效的垃圾回收机制,Twitch有更大的内存来为用户提供高质量的视频流。

七牛

国外有Dropbox,国内就有七牛,作为国内最早的golang布道者,七牛从创建产品一开始就全部采用golang语言进行开发。实践证明,他们的选择是正确的,目前七牛的服务是非常稳定的,并且他们的开发效率也是很高的。

盘点使用golang作为后台的科技公司

知乎

我们都知道知乎最开始使用的是python语言,但是随着业务的发展,语言的瓶颈显得越来越明显,他们急需要找到一门静态语言来提高公司的发展速度,在java和golang的抉择中,他们选择了golang。

字节跳动

作为一个未上市的公司,字节跳动的发展不可不谓迅猛,短短几年之间他们的员工总数就已经破了10万人。

作为一家后起之秀,字节跳动在技术上也是走在时代的前列的。他们没有选择阿里的java系,也没有选择腾讯的c++系,而是决定使用了golang。

盘点使用golang作为后台的科技公司

字节跳动对golang的选择是非常彻底的,公司几乎所有的业务产品都采用golang语言进行开发,可以说字节跳动誓要golang一条路走到黑。

京东

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

img

小米

小米对Golang的支持,莫过于运维监控系统的开源

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

小米科技有限责任公司

Shopee

Shopee东南亚最大的电商平台,除了少部分服务仍用Java以外,其他大部分业务都是使用golang

Shopee

3、目前的编程语言市场

TIOBE 2016年7月编程语言排行榜

0?wx_fmt=png

TIOBE 2021年1月编程语言排行榜

img

4、Golang的性能如何

后面课程会补上Golang与Java的性能测试对比2:1~8:1

5、Go的前景

虽然golang不如java的生态圈成熟,但是我们都知道生态圈是由时间累积出来的,谁又能说十年后golang的生态圈会不如java呢?

就目前的中国互联网公司的行情来看,越来越多的互联网公司选择了golang作为业务的开发语言