一. Golang 语言发展历史

Golang 语言 (简称 Go) 的三个作者分别是:
- Robert Pike (罗伯・派克): Unix, UTF-8, plan9 的作者
- Ken Thompson (肯・汤普森): B 语言, C 语言的作者, 同时也是 Unix 之父
- Robert Griesemer (罗伯特・格利茨默): Google V8 JS Engine (V8 引擎, Chrome 用的就是 V8 引擎) 作者, Chubby, Hot Spot JVM 的主要贡献者
- 2007 年, Google 准备推出一种既不损失性能又可以降低代码复杂性的编程语言
- 同年 9 月, Robert Pike 将这门编程语言正式命名为 Go
- 2008 年 5 月, Google 全力支持 Go 编程语言的研发
- 2009 年 11 月, Google 将代码全部开源, 并被评为当年的年度语言
- 2012 年 3 月 28 日, Go 发布第一个正式的稳定版本, 与此同时, Go 团队承诺新版本都会兼容旧版本.
- 截止 2020 年 2 月, Go 语言版本更新到 1.14
二. Golang LOGO

Our logo follows the brand’s core philosophy of simplicity over complexity. Using a modern, italicized sans-serif typeface combined with three simple motion lines forms a mark that resembles two wheels in rapid motion, communicating speed and efficiency. The circular shape of the letters hints at the eyes of the Go gopher, creating a familiar shape and allowing the mark and the mascot to pair well together.
我们的徽标遵循该品牌的核心理念, 即简单而非复杂. 使用现代的斜体无衬线字体和三个简单的运动线组合而成的标记, 类似于两个轮子的快速运动, 传达了速度和效率. 字母的圆形形状勾勒出 Go gopher 的眼睛, 创造出熟悉的形状, 并使商标和吉祥物很好地配对.
三. Golang 的吉祥物
Go 的吉祥物是 Gopher (蓝色土拨鼠), 由 Renee French 设计. 好可爱有木有.


The Go gopher was designed by Renee French.
四. Golang 语言特性
- 静态类型, 编译型语言
- 跨平台支持, 无需移植代码
- 相对于 C/C++, 有着更快的编译速度
- 拥有原生的先进并发编程模型和机制, 其组成部分有 Goroutine 和 Channel, 这是 Go 语言最重要的特性之一
- 无继承层次的面向对象编程, Go 开发者使用组合的设计模式
- 全自动垃圾回收机制(GC)
- 支持多种编程风格, 包括面向对象编程和函数式编程
- 自带完善, 全面的软件工程工具, 包括获取, 编译, 测试, 安装, 运行, 分析等一系列操作
- 标准库丰富
五. Go 语言学习资源
- Go 语言官网: 里面有所有的规范和细节
- Go 代码包文档: 可查询到从标准库到几乎所有第三方库中的代码包的文档和使用示例
- Golang 中国: 国内较早的 Go 社区,汇聚各类信息与服务
- Go 语言中文网: 国内 Go 社区先驱,同样汇聚各类信息与服务
- Go Walker: 这是一个可以在线生成并浏览基于 Go 语言的项目的 API 文档及黑客视图的 Web 服务器, 目前已支持包括 Bitbucket, GitHub, Google Code, Launchpad 和 Git@OSC 在内的五大代码托管平台.
- 在国内著名的开发者技术社区 SegmentFault 上开设有 Go 语言的专栏: 在那里可以提交与 Go 语言有关的各种问题.
- Awesome Go : 精选的Go软件包,框架和资源的精选清单
- GitHub 上 Go 资源:
- 更多: Google 搜索
六. 知名的 Go 语言开源框架
- Docker: 一个软件部署解决方案, 也是一个轻量级的应用容器框架, 可以轻松打包, 发布和运行任何应用.
- Beego: 国产 HTTP 框架. 可用于在 Go 中快速开发 RESTful API, Web 应用程序和后端服务. 它的灵感来自 Tornado, Sinatra and Flask. beego 具有一些特定于 Go 的功能, 例如接口和结构嵌入.
- Gogs: 国产自助 git 托管服务, 用它搭建自己的 git 服务器.
- Skynet: 一个分布式服务框架. 它可以帮助我们构建起大规模的分布式应用系统.
- NSQ: 一个实时的分布式消息平台. 它拥有很高的可伸缩性, 并能够每天处理数以十亿计的消息.
- etcd: 一个高可用的键值存储系统. 它可被用于建立共享配置系统和服务发现系统. 它的灵感来自于 Apache ZooKeeper.
- Groupcache: 著名的内存缓存系统 Memcached 的作者用 Go 语言编写的一个与前者功能类似的函数库. 作者想用它作为 Memcached 的替代者.
- Gobot: 一个非常有意思的开源项目. 它旨在成为下一代自动机工程学框架. 换句话说, 我们可以用它来控制机器人! 它已经支持了 10 个不同的硬件平台. 这其中包括已经被国内的计算机硬件发烧友所熟知的 Arduino.
参考资料
- Go-wiki: https://github.com/golang/go/wiki
- Go-gopher-Vector: https://github.com/keygx/Go-gopher-Vector
- Go’s New Brand, Steve Francia, 26 April 2018: https://blog.golang.org/go-brand
- The Go Gopher, Rob Pike and Andrew Gerrand, 24 March 2014: https://blog.golang.org/gopher
- GopherCon 2016: Renee French - The Go Gopher A Character Study: https://www.youtube.com/watch?v=4rw_B4yY69k
- Go 语言实战, 威廉·肯尼迪 (William Kennedy) / 布赖恩·克特森 (Brian Ketelsen) / 埃里克·圣马丁 (Erik St.Martin), ISBN: 9787115445353
- Go并发编程实战, 郝林, ISBN: 9787115373984

