最近一直在用一些基于GO语言开发的开源项目,也看了一些源代码,感觉相比其他语言有不小的优势。
go语言方面
go语言本身是一个开源框架,不像java,javac的代码是不开源的,jvm框架,你也是不能修改的,但是go的工具可以,都是开源的。go的编译器可以自己修改定制,同时go的运行是没有vm之类概念存在的。
go代码是编译后再运行的。
类库方面
类库方面已经很全了,各种net框架、内置函数、http功能、加密解密,基本上可以和业界其他的譬如java、c++、ruby、nodejs之类的类库持平,都在一个水平上。
而且,go语言引用外部的代码库很方便,可以直接编写 import github.com/xxx/aaa 之类的指令,从互联网上直接引用类库,方便类库使用和管理。
代码编写
go语言有自己的一些语法,类似c的一些语法糖。也有很好的IDE编辑器。可以用很少的代码,直接编写一个http服务器,socket之类的需求。
开发调试
go语言有自己的logger类库,配置文件标准方案,容易写出质量较好的产品代码,容易排错。利用dalve工具,也可以启用单步调试。
编译
一次代码编写,多个平台编译,是go语言的一大特色,可以编译出各个主流操作系统,cpu架构上的可执行代码。编译后执行的代码,其性能也很高。
部署
go语言编译处理的代码,可以直接在目标操作系统上运行,不需要预先安装譬如jvm之类的工具。
优势
比较nodejs, ruby, php, python
- go语言会编译代码到exe,方便源代码保护
- go语言最终编译出适合各类os、cpu架构的代码,直接可以在目标机器上执行
- 性能更好
比较java
- go语言编译的exe,可以直接在目标操作系统上运行,不需要jvm之类的工具支持
- go的代码编译器是开源的,执行时候不需要vm
- 性能更好
劣势
- 不是纯的面向对象的语法,只能通过公开函数和内部函数来仿面向对象
- 各类语法糖感觉有些别扭,譬如map、array之类的
总结
综上,go语言还是可以投入一些精力的,在快速应用开发中,也有一席之地。同时,开源界大量存在的优秀go项目,也是入门者学习的很少的样例。