语法简单
关键字少,控制语句少,继承了C语言的有点,抛弃了复杂的部分。
并发简单
通过引入goroutine,搭配channel实现了csp模型,让并发处理变得异常的优雅。
垃圾回收
C语言让人头疼的就是垃圾的回收,如果处理不好,就会造成资源无法释放。而go语言通过三色标记和写屏障,很好的处理了垃圾回收。
完善的工具链
从编译,格式化,调试,错误检查,帮助文档,到包管理,go语言提供了非常好用的工具,有好用的单元测试工具,性能测试工具,代码覆盖率检查,可以说golang为开发者提供了一整套完善的开发链,可以让开发者全身心投入到业务开发。
够用的标准库
不借助第三方库,golang就可以提供一个高性能的webserver,golang的标准库虽然不是非常的丰富,但是对于日常开发,golang的标准库足够使用,并且足够高效。
静态链接
这样可以任意部署到各种运行环境,不用担心依赖库的版本问题。只是体积大一点而已,存储时占用了一点磁盘,运行时,多占用了一点内存。早期动态链接库的产生,是因为早期的系统的内存资源十分宝贵,由于内存紧张的问题在早期的系统中显得更加突出,因此人们首先想到的是要解决内存使用效率不高这一问题,于是便提出了动态装入的思想。也就产生了动态链接库。在现在的计算机里,操作系统的硬盘内存更大了,尤其是服务器,32G、64G 的内存都是最基本的。可以不用为了节省几百 KB 或者1M,几 M 的内存而大大费周折了。而 golang 就采用这种做法,可以避免各种 so 动态链接库依赖的问题,这点是非常值得称赞的。
网友评论