1. Go语言是什么
“Go 是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件”(来自 go 官网 golang.org)
Go 语言是 Google 开发的开源编程语言,于 2006年1月2日15点4分5秒 诞生,2009年11月 开源,2012年发布 go 稳定版。
go 的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
我们程序员在开发程序,开发软件时都会选择一门编程语言,那么我们应该怎样进行选择呢?可能有同学会说,我们要选择一门简单的,容易学习的,而且开发效率高的,能够在很短的时间内开发完成一个软件,这样老板会非常的满意,能够升职加薪,Python 语言或者 Ruby 语言就非常适合这种快速开发。
但是问题是,用这种语言开发的软件,当用户量多了,运行的速度会非常慢,给人的感觉就是非常卡,大家想一下这种软件还有人愿意使用吗?那可能又有同学说了,我们要学习运行速度快的编程语言,例如 C 或者是 C++,但是这类编程语言学习难度是非常大的。
那么有没有一种编程语言,学习非常简单,开发速度非常快,开发出的软件电脑运行速度非常快呢?有,就是我们今天开始学习的 GO 语言。GO 语言借鉴了 Python 等其它编程语言简单,易学,生产效率高,同时 GO 语言专门针对多处理器系统的程序进行了优化(让每核 CPU 都能够执行 GO 语言开发的程序),这样使用 GO 语言开发的程序运行的速度可以媲美 C 或 C++ 开发程序的速度。
2. Go 语言优势
1、运行速度快,开发效率高,简单易学
2、跨平台
3、丰富的标准库(指令),Go 目前已经内置了大量的库,特别是网络库非常强大
4、垃圾自动回收
5、Go 代码里面也可以直接包含 C 代码,利用现有的丰富的 C 库
6、语言层面支持并发。这个就是 Go 最大的特色,天生支持并发。所谓并发,就是所有正在运行的程序轮流使用 CPU,每个程序允许占用 CPU 的时间非常短(比如 10 毫秒),这样用户根本感觉不出来 CPU 是在轮流为多个程序服务,就好象所有的程序都在不间断地运行一样。并发好处就是可以运行多个程序,并不卡顿。
3. Go 语言的应用领域
1、WEB 开发。net/http、Gin、Echo、Beego。
2、服务端开发。日志处理,文件系统、监控服务、大并发后台。
3、容器虚拟化。Docker、k8s
4、存储。etcd、TiDB、groupcache
5、区块链。以太坊、Fabric
。。。
4. 众多知名开源项目
Docker、Kubernetes、Lantern、Etcd、Hugo、InfluxDB、Grafana、prometheus、open-falcon、TiDB