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