What is Go
官方的介绍很简单:
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
翻译过来就是:
Go 是一个开源的编程语言,它能够让我们更加容易地构建简单、可靠、高效的软件。
从这个非常简短的介绍中,我们能够知道:
- 首先,Go 是开源的,也就是说任何人都可以查看 Go 语言的源代码,并且,它采用的协议是 BSD ,这是一个相对自由的协议,对商业友好。
- 其次,Go 语言的目标是用来构建简单、可靠、高效的软件。在接下来的 “旅程” 中,我们不妨以此为参照,从各个方面来考量一下它,看看它是否能够兑现自己的承诺。
发展轨迹
Go 语言从正式发布第一个版本,至今已经快有 6 年头了。
6 岁,对于人类而言,还是一个乳臭未干的年龄。
事实上,在编程语言界,这也相差无几。
如果我们按照年龄,把目前还比较活跃的语言来排个序,大概是这样子的:
序号 | 编程语言 | 出生 | 年龄(2015) |
---|---|---|---|
1 | C | 1972 | 43 |
2 | C++ | 1983 | 32 |
2 | Objective-C | 1983 | 32 |
4 | Python | 1991 | 24 |
5 | Java | 1995 | 20 |
5 | Javascript | 1995 | 20 |
5 | PHP | 1995 | 20 |
5 | Ruby | 1995 | 20 |
9 | C# | 2000 | 15 |
10 | Node.js | 2009 | 6 |
10 | GO | 2009 | 6 |
12 | Swift | 2014 | 1 |
可以看出来,Go 还算是非常年轻的 :-)
以下是 Go 发展过程中几个比较重要的里程碑:
- 09/2007:开始设计。
- 11/2009:正式对外发布第一个版本(发布后不久就获得了 TIOBE Hall of Fame ,也就是年度编程语言)。
- 03/2012:发布第一个正式版本 Go 1 。
目前(09/2015)最新的版本是 Go 1.5.1 。
其在 TIOBE 排名是:第 44 位,份额为:0.254% 。
Why Go
计算机技术发展到今天,被开发出来的编程语言已经非常之多,各种语言之争在社区中也屡见不鲜。
那么,我们为什么还需要 Go 这样的一门语言呢?或者说,我们为什么要选择 Go ?
对于这个问题,Go 语言的设计者之一——罗布·派克( Rob Pike ,也是 Unix 小组的成员 )曾说道:
我们开发 Go ,是因为近 10 年来开发系统程序之难让我们有点沮丧。这时候 Go 来拯救我们啦!
这句话背后的野心很大,很明显,Go 语言的设计者希望 Go 能够取缔现在主流的编程语言,一统江湖。
但这最终能否实现,还有待时间去证明。
作为一名开发者,我们更关心:Go 究竟能解决什么问题?
在介绍 Go 的资料里面,我们经常会看到各种各样的关键词。而这些关键词则体现了 Go 语言的特性、设计思想。
下面就以一些常见的关键词为例,并针对它们做了一点粗浅的思考,接下来,我们会一直带着这些问题来学习 Go 。
- Easy
Go 的语法和语义设计是否足够清晰、简洁,易于上手?
库的实现是否足够丰富,便于使用?
编译生成的程序是否容易部署运行? - Fast
是否具有更快的编译速度?
是否具有更高的运行效率? - Fun
它的趣味性体现在什么地方? - Productive
它是如何使程序员更具生产力的? - Reliable
在安全方面,Go 都做哪些考虑?具体的解决方案是什么? - Concurrent
对并发编程的支持,相比现在主流的编程语言有什么不同? - Garbage-collected
在内存管理方面,它的垃圾收集机制又有什么特别之处? - Build fast at scale
它的编译机制是怎么样的?
环境配置
说了这么多,还是在纸上谈兵。
要想真正了解 Go 还是得老老实实地码几行代码才行。
在这之前,我们首先要配置好 Go 语言的开发环境。
- 下载 Go 发行版
对于初学者而言,从源码安装 Go 还是有一点难度的,因此,我们首选下载二进制包。
以 Windows 用户为例:
在 Go 官方网站下载相应的 zip 包后,解压至:C:\Go
目录。 配置环境变量
新建系统变量 GOROOT
变量值:C:\Go
(即 Go 的安装目录)编辑系统变量 path
在变量值头部插入:%GOROOT%\bin;
(不要漏掉末尾的分号“;”)
测试
在 cmd 窗口中执行:1
go verson
如果配置正确,则会显示正确的 Go 版本信息。
第一个 Go 程序
可以使用任意一种文本编辑器,编写 Go 源代码,这里取名为 hello.go
:
1 | package main |
接着,就可以在 cmd 中调用 go 工具去运行它:
1 | go run hello.go |
屏幕中会显示:
1 | Hello, world! |
目前看起来还是挺简单的吧。
就开发工具的使用而言,Go 相比 Java 要略微简单一些,因为它“没有”编译( javac )的步骤。并且,在当前工作目录下,我们也看不到任何的中间文件和最终的可执行文件。
实际上,这只是 go 的 run
命令把编译、链接和运行 3 个步骤合并成 1 步了。
如果只是想编译而不运行,可以使用 go 工具的 build
命令。
更多内容
- Go 官网地址:https://golang.org/ (需要翻qiang)
- Go GitHub 地址:https://github.com/golang/go
- Go 中文文档:http://zh-golang.appspot.com/
- Go 中文指南:http://go-tour-zh.appspot.com/welcome/1