编程语言
1003
Go语言简介
Go语言又称为Golang , 在2009年发布,当年就被选为 TIOBE 年度语言,并在若干年后的今天 ,再度当选为TIOBE年度语言。
这有力地证明了Go语言在工业界和开发者社区的良好口碑,以及与时俱进的生命力
1 Go语言的诞生
Go 语言诞生于谷歌,由计算机领域的三位宗师级大牛 Rob Pike、Ken Thompson 和 Robert Griesemer 写成。由于出身名门,Go 在诞生之初就吸引了大批开发者的关注。诞生十年以来,已经涌出了很多基于 Go 的应用。他已经在很多任务中使用 Go 语言替代了 Python。那么 Go 语言到底有着什么样的独特魅力?让我们一起来了解一下吧。
2 Go语言的特性
- Go是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
- Go语言天生内置并发编程支持,使用 goroutine 协程,使得高并发编程降低了很多难度,很容易掌握,这个几乎是无敌的设计
- Go语言丰富的网络编程的接口,被称为 21世纪的C
- Go语言函数返回多值
- Go语言支持指针,但又去掉了指针容易出错的操作
- Go语言支持延迟函数调用(defer)。
- Go语言支持自动垃圾回收
- Go语言有简洁的语法 ,非常容易上手
- Go 语言内嵌支持 C 语言,你甚至可以直接在 Go 语言里面写 C 语言代码
3 Go语言的使用场景
- 服务器编程
- 分布式系统,微服务
- 网络编程,这一块应用的最多,包括 web 应用,API接口,下载应用等
- 云计算平台
4 Go语言开发的项目
- Docker , 无人不知的非常有名的虚拟化平台,开源的应用容器引擎
- Golang ,Go语言本身也是用Go语言实现的,包括它的编译器
- Kubernetes , Google出品,用于调度和管理docker的开源容器管理系统,利用他,可以方便的管理你的docker实例 哪怕非常多,也是目前最流行的docker管理系统。
- etcd , 一款分布式的,可靠的K-V存储系统,使用简单,速度快,又安全。
- beego , 国产开源的高性能Web框架,让你快速开发Go Web 应用服务
- nsq , 一款开源的实时的,分布式的消息中间件系统。
5 为什么要学习Go语言
- 简洁的语法,非常的容易学习
- 效率高,不管是开发效率还是程序的执行效率,都非常的高
- 出身名门,血统纯正 Go语言出自Google公司,这个公司在业界的知名度和实力自然不用多说。 Google公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑
- 自由高效:组合的思想、无侵入式的接口
- 强大的标准库:包括互联网应用,系统编程和网络编程
- 简单的并发 它包含了降低心智的并发和简易的数据同步,我觉得这是Go最大的特色。 之所以写正确的并发、容错和可扩展的程序如此之难,是因为我们用了错误的工具和错误的抽象,Go可以说这一块做的相当简单。
- 部署方便:二进制文件,扔到服务器上跑起来就行了。不需要装一堆软件 我相信这一点是很多人选择Go的最大理由,因为部署太方便了,所以现在也有很多人用Go开发运维程序。
- 稳定性 Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。 那么为什么Go相比于其他程序会更稳定呢? 这是因为Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如go tool、gofmt、go test。
6 有哪些公司在用 Go 语言
- Google :这个不用多说了,作为开发Go语言的公司,肯定要用的非常多。 Google基于Go语言开源的项目非常多。大家可以在 github 上查看更多的Google的 Go项目 https://github.com/google/
- 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
- 头条 : 作为APP工厂,头条的推荐系统,微服务都是由Go语言开发。
- 小米 : 小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
- 360 : 360对Golang的使用也不少,一个是开源的日志搜索系统Poseidon,托管在Github上,https://github.com/Qihoo360/poseidon
7 Go语言的 “hello,world”
我们依然从永恒的 Hello,World
开始。接下来我们看下,Go 语言是怎么问候世界的。
package main import "fmt" func main(){ fmt.Println("hello,world") }
输出:hello,world
8 小结
Go语言是一门简洁的,强大的,容易学习的,天生支持并发编程,尤其适合服务端的一门语言
出身名门,血统纯正,创始人都是技术界的牛人。
所以Go语言是一门十分受欢迎并且很有前途的一门语言
关于面向对象编程章节部分, 自接口interface小节, 以后均摘于开源项目go-tutorial