Go语言是Google公司的实验性语言,以BSD协议开放源代码。Go语言在Inferno操作系统相关的研究工作基础上开发,最初由Rob Pike等Google工程师在2007年9月启动设计工作,在2009年11月正式对外发布。
Go将动态语言易于编写的特性和静态语言的高效性相结合,具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计,同时在语言中包含并发构造体,以方便的帮助开发者创建并行任务。Go语言具有效率极高的编译器,目前Go编译器能在Linux、FreeBSD以及Mac OS X平台下运行,但暂时没有对Windows环境提供编译支持。Go开发团队曾在博客中表示,编译完成的Go程序运行速度接近C语言实现的程序。
在今年五月份举办的Google I/O大会上,Go语言背后的工程师Rob Pike和Russ Cox两人一同为开发者带来了Go语言编程讲座,解释Go语言的灵活设计和独到之处。Go语言的主要设计者Rob Pike是Google公司的资深工程师,在分布式系统、程序语言设计以及软件开发工具方面有着多年的经验。此前在贝尔实验室工作期间,Rob曾是网络操作系统Plan 9的设计者,同时也是Inferno 操作系统的设计者,Rob还曾与AWK 和AMPL编程语言的设计者Brian Kernighan一起合著有两本Unix环境下编程语言的书籍。同时,Rob Pike还给出一份可供参考的Go语言教程。
针对Google I/O大会上收集到开发者的提问,在Go开发团队博客上给出了常见问题的FAQ。在Android平台支持方面,Go编译器支持面向ARM处理器的代码生成,所以在Android平台上运行Go程序是可行的,Go语言开发团队也将积极推进Android平台上的开发工作。由于Go具备简洁的语法和语言本身的一致性,已有大学执教的老师表示将会在自己教授的编程语言课程中为学生开设Go语言选修项目。
目前在Google内部已有部分应用使用Go语言来实现,同时开发团队表示,Go已相对成熟,完全能够用于最终系统的开发和交付,甚至可以使用Go来开发Web应用。在后续工作中,Go开发团队将不断对语言进行改进提升,并随时欢迎开发者在社区中反馈Go语言开发时遇到的问题。目前在国内使用Go语言进行实际开发的公司还为数很少,尝试使用Go语言的开发者大多源自个人兴趣或技术预研,随着Go语言类库和成功案例的增多,将会有越来越多国内开发者在实际开发中尝试Go语言带来的效率和便捷。