一、Go语言的主要特性:

①    开放源代码的通用计算机编程语言。开放源代码的软件(以下简称开源软件)更容易被修正和改进。

②    虽为静态类型、编译型的语言,但go语言的语法却趋于脚本化,非常简洁。

③    卓越的跨平台支持,无需移植代码。这里的跨平台主要是指计算架构和操作系统。

④    全自动的垃圾回收机制,无需开发者干预。Go语言程序在运行过程中的垃圾回收工作由go语言运行时系统负责。

⑤    原生的先进并发编程模型和机制。Go语言拥有自己的独特并发编程模型,其组成部分有Goroutine(也可称为Go程)和Channel(也可称为通道)等。

⑥    拥有函数式编程范式的特性,函数为一等代码。Go语言支持多种编程风格,包括面向对象编程和函数式编程。而对函数式编程的最有利的支撑就是Go语言将函数类型视为了第一等类型。

⑦    无继承层次的轻量级面向对象编程范式。Go语言中的接口与实现之间完全是非侵入式的。

⑧    内含完善、全面的软件工程工具。Go语言自带的命令和工具相当的强大。

⑨    代码风格强制统一。

⑩    程序编译和运行速度都非常快。

⑪    标准库丰富、及适合开发服务端和web程序。

 

二、Go语言的优劣

①相对于C/C++来讲,Go语言拥有清晰的依赖管理和全自动的垃圾回收机制,因此其代码量大大降低,开发效率大大提高。

②相对于Java来讲,Go语言拥有简明的类型系统,函数式编程模型。因此其代码块更小更简明、可重用性更高,并可在多核计算环境下更快的运行。

③对于PHP来讲,Go语言更具有通用性和规范性。这使得其更适合构建大型的软件,并能够更好的将各个模块组织在一起。在性能方面,PHP不可与Go同日而语。

④对于Python、Ruby来讲,Go的优势在于其简明的语法、非侵入式和扁平化的类型系统和浑然天成的多范式编程模型。与php一样,Python和Ruby是动态类型的解释型语言,这就意味着他们的运行速度会比静态类型的编程语言慢很多。

 

总而言之,Go语言对于当前大多数主流语言来讲,最大的优势在于具有较高的生产效率、现金的依赖管理和类型系统,以及原生的并发计算支持。因此,Go语言自发布以来就收到了各个领域开发者的关注和青睐。现在,我们来客观的看一下目前go语言需要加强或改进的地方

①    从分布式计算角度来看,go语言的成熟度不及erlang(现在已经出现了一些这方面的go语言代码包,我们已经可以看到光明的未来了)

②    从程序运行速度的角度来看,go语言虽然与Java不相上下,但还不及C(差距上正在不断缩小)

③    从第三方库的角度来看,go语言的库数量还远远不及其他几门主流语言(比如Java、Python、Ruby等)。不过与go语言的年纪相比,用它实现的第三方库已经相当多了,并且他们的数量在持续的增长中。

另外,在更深的层面,go语言标准库中也有些不尽如人意的地方。具体如下。

①    从语法角度来看,go语言语法的语法糖并不多。另外,变量赋值方式多的有点儿累赘了。

②    从并发的角度来看,go语言提供的并发模型很强大,但也有一些编写规则需要了解。否则,容易踩进“坑里”。

 

虽然go语言还有一些瑕疵,但从整体来看,他已经是一门非常优秀的通用编程语言了。并且,go语言在今后的发展上会关注性能、可靠性、可移植性和一些功能增强。

 

版权声明:本文为dingchengjie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dingchengjie/p/8528447.html