简单谈一下自己最近一段时间写 Go 的体会。
容易上手
这一点体会非常明显,甚至感觉 Go 是现在主流的编程语言中最容易上手的了。下面从几个角度具体谈一谈。
历史包袱轻
虽说计算机科学是一个进步非常快也相对年轻的学科,但是TIOBE排名靠前的语言也大都是上个世纪就出现的了。Go作为一个2009年才公开发布的语言,工具链之类的都很简单,没有历史积累的复杂性。与之相对的,C/C++可以说是历史包袱最重的语言了,语言不断升级带来各种新特性,同时为了保证向后兼容又必须支持一些本来不需要的特性,还有各种编译器、构建系统和调试工具很容易让初学者头大。
设计哲学
Go语言的设计哲学本身强调的就是简单和高效,没有太多花里胡哨的语法。这让我觉得 Go 甚至比 Python 还要好上手,因为不用学很多语法糖。
另外,Go语言的设计者对语言的升级持有一种比较保守的态度。像是范型这个呼声非常高的特性也是最近才加上的。很多时候,设计者会为了避免丧失语言的简洁性而拒绝一些升级。这种审慎的态度确保了语言的核心理念不会被破坏,也使得新手更容易理解和掌握。
生态
Go 的官方网站做的相当好,配套有很新手友好的丰富的教程。同时自带的命令行工具全面且强大,把环境变量管理,编译,包管理,格式化,测试等等对一个编程语言而言很关键的工具都打包了。其他语言也都有其各自的工具可以实现相同的功能,但是用着终归不如官方工具方便,而且不存在有多个同类工具需要选择的情况。
并发
Go 最重要的特性之一就是对并发的管理了,通过Goroutines,Channels,select语句等语言自带的特性可以非常简单的编写并发程序。