Go语言经常被称为“Golang”,据官方的说法是因为最初无法注册到“go.org”这个域名,而只好使用了“golang.org”这个域名的原因。
Go语言大约从2007年开始构想,最初是由谷歌公司的几位工程师设计的。Go语言的设计初衷是为了解决当时较流行的C++、Java等开发语言过于复杂而低效的问题。
2009年11月10日,Go语言被正式转为开源项目,这一天也被认为是Go语言正式的诞生日。
2012年,Go语言发布了第一个正式版本1.0。到2019年2月,Go语言发布到了1.12版。到目前为止,Go语言最新的版本是1.13。与此同时,Go语言的大版本2从2017年开始已经在构思和讨论中。
2018年,Go语言排入了最受欢迎的计算机语言中的前5名;并获评“最有前途的计算机语言”之一。
Go语言的主要特点包括:
* 轻量级、性能优异,编译运行,代码运行效率接近于C,书写难易度确接近于C++/Java等高级语言;
* 内置丰富的标准库;
* 完全免费并开源;
* 真正的跨平台,并且都是原生代码运行,无需虚拟机或解释器;支持跨平台编译;Go语言主要支持Windows、MacOS、LinuxGo这几个操作系统平台;
* 语法简约而严谨,可以有效避免程序员很多常见的书写错误;
* 语言层面上就支持的原生高效的并发处理机制;
* 用心设计的指针操作,可以避免C/C++等语言常见的指针用法错误和内存泄漏;
* 独特的内存管理和自动垃圾回收机制,据说效率比其他一些语言更高;
* 用特殊方式完整支持面向对象编程,既保留了面向对象编程中最重要的一部分,又避免了较为复杂导致的效率不高的问题;主要的面向对象编程的特性在Go语言中都可以用较轻巧的方式实现;
* 具备丰富的网络编程功能,尤其是服务器端的开发支持;
* 独具一格的异常处理机制,这一点有一定的争议,但无论如何是一种解决传统异常处理方式的思路;
* Go语言的其他一些特性包括:通过“空接口”类型支持类似对象基类的概念;支持函数作为参数传递;支持匿名函数和闭包;支持反射;支持通过Cgo方式直接调用C语言函数库等;
* Go语言也有一些不足之处,例如对图形界面编程支持不够好,这是因为Go语言设计之初就是以解决服务器端处理的问题为主的。另外,对某些程序员来说,Go语言过于严格的代码书写要求,也导致了一些不满,但总的来说,带来的避免常见代码书写错误的好处还是值得的。
有疑问加站长微信联系(非本文作者)