Go语言学习之路——Go语言简介

Go语言学习之路——Go语言简介

很多人将GO语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。

GO语言的历史

Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。

在学习Go语言之前,明白设计者的动机以及语言要解决的问题很重要。Go语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。
1) Ken Thompson
图灵奖获得者,贝尔实验室 Unix 团队成员,C语言、Unix 和 Plan 9 的创始人之一,在 20 世纪 70 年代,设计并实现了最初的 UNIX 操作系统,仅从这一点说,他对计算机科学的贡献怎么强调都不过分。他还与 Rob Pike 合作设计了 UTF-8 编码方案。

2) Rob Pike
Go语言项目总负责人,贝尔实验室 Unix 团队成员,除帮助设计 UTF-8 外,还帮助开发了分布式多用户操作系统 Plan 9、Inferno 操作系统和 Limbo 编程语言,并与人合著了《The Unix Programming Environment》,对 UNIX 的设计理念做了正统的阐述。

3) Robert Griesemer
就职于 Google,参与开发 Java HotSpot 虚拟机,对语言设计有深入的认识,并负责 Chrome 浏览器和 Node.js 使用的 Google V8 JavaScript 引擎的代码生成部分。

这些计算机科学领城的重量级人物设计Go语言的初衷是为了满足 Google 的需求——当时的谷歌内部主要使用 C++ 语言构建各种系统,但 C++ 的巨大复杂性、编译构建速度慢以及在编写服务端程序时对并发支持的不足,让三位大佬觉得十分不便,他们就想着设计一门新的语言。在他们的初步构想中,这门新语言应该是能够给程序员带来快乐、匹配未来硬件发展趋势并适合用来开发谷歌内部大规模程序的。

经过2007年对多次讨论,Go语言的三位作者在语言设计上达成初步一致,之后便开启了Go语言迭代设计和实现的过程。以下是Go语言的发展历程:

2007年,谷歌工程师Rob Pike,Ken Thompson和Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。
2009年11月10日,Google将Go语言以开放源代码的方式向全球发布。
2012年3月28日 go1 —— 稳定版版的发布
2015年8月19日 go1.5 —— 实现的架构变化,同时保留了和旧版本的兼容性,本次更新中移除了”最后残余的C代码”—》自举
2018年8月24日 go1.11 —— modules支持,摒弃掉go path的包管理
2020年2月 go 1.14— — 现在 Go Module 已经可以用于生产环境
2022年2月 go 1.18 开始支持泛型

GO语言的特性

Go语言之所以被称为21世纪的C语言,不仅在于它精简的语法和高效的开发,更在于它具有原生支持和易于使用的高并发的特性。

  • 简单好记的关键词和语法。轻松上手,简单易学。
  • 更高的效率。比Java,C++等拥有更高的编译速度,同时运行效率媲美C,同时开发效率非常高。
  • 生态强大,网络上库很丰富,很多功能使用Go开发非常简单。
  • 语法检查严格,高安全性。
  • 严格的依赖管理,go mod命令。
  • Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。
  • 跨平台交叉编译,windows就可以编译出mac,linux上可执行的程序。
  • 异步编程复杂度低,易维护,GO 语言中 Channel 设计,异步程序写起来非常自然。
  • 语言层面支持并发,go关键字(协程)使得go的并发效率极高。
  • 严格的语法规范,所有程序员写出来的代码都是一样的,对大团队来说,非常友好。
  • Go 的并发、性能、安全性、易于部署等特性,使它很容易成为“云原生语言”。容器和云的使用上非常广

Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发速度和易维护性。有人形容Go语言:Go = C + Python, 说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发。

GO语言的使用

Go语言主要用于服务端开发,其定位是开发大型软件,常用于:

  • 服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
  • 分布式系统,数据库代理器等。
  • 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。
  • 内存数据库,如google开发的groupcache,couchbase的部分组建。
  • 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。

目前国内外使用Go语言的公司非常多,比如Google、微软、facebook、paypal、uber、amazon、字节跳动、阿里巴巴、百度等。

小结

Go 拥有 C/C++ 一样的高性能,Java 一样的超高效并发处理,Python/Perl 一样的有趣语法。现在就开始你的Go语言学习之旅吧!人生苦短,let’s Go.

0
认证、授权、鉴权、权限控制 理解六边形架构-一个简单的Sp…

没有评论

No comments yet

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注