Go 语言是编程语言设计的又一次尝试,是对类 C 语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go 语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。 Go 语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等 优势,目前国内诸多IT 公司均已采用 Go 语言开发项目。 Go 语言有时候被描述为“C 类似语言”,或者是“21 世纪的 C 语言”。Go 从 C语言继承了相似的表达式语法、控制流结构、基础数 据类型、调用参数传值、指针等很多思想,还有 C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。 因为 Go 语言没有类和继承的概念,所以它和 Java 或 C++看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说 Go 语言是一门混合型的语言。
从垃圾回收角度看,Go 语言的垃圾回收采用的是并发的标记清除算法(Concurrent Mark and Sweep,CMS)。虽然是并发的操作,时间比串行操作短很多,但是还是会在垃圾回收期间停止所有用户程序的操作。这一点多少会影响到对实时性要求比较高的应用。 不过,在 Go 语言 1.3 之后的版本中,这方面的问题已经得到了极大的改善。 虽然 Go 语言还有一些瑕疵,但从整体来看,它已经是一门非常优秀的通用编程语言了。并且,Go 语言在今后的发展上会关注性能、 可靠性、可移植性和一些功能增强,所以上述缺憾会随着版本的推进而逐渐减弱和消失。
Go语言的Logo是地鼠 Go 语言有一个吉祥物,在会议、文档页面和博文中,大多会包含下图所示的 Go Gopher,这是才华横溢的插画家 Renee French 设计 的,她也是 Go 设计者之一 Rob Pike 的妻子。 地鼠的特点是速度快、成群结队、头脑简单 而Go语言的特点正好也是编程速度快、并发性好、简单易学