1.1.2 Go语言的特点与优势
Go语言是对C、C++等类似语言的一次重大改进,它不但可以开发基于底层的操作系统,还为应用系统开发提供了强大的网络编程、并发编程等支持。
1.简单易学
当读者面对C、C++、Java、C#、PHP、R、Python、Ruby、Perl等一长串编程语言清单时,选择一款易学且功能强大的编程语言是首要任务,也是罗伯特·格瑞史莫他们深入思考的问题。于是,他们在设计Go语言时,充分吸收了C、C++语言的优点,如快速编译执行,并采用了它们的语法格式风格,保留了它们强大的面向操作系统的开发功能;避免了让人头疼的古怪指针的用法,将手动处理内存垃圾转变为自动处理,进一步统一并保证了语法的简练性;同时,根据最新发展趋势,增加了简单易用的并发处理、网络开发功能等。
如果学习C、C++语言需要花费半年的时间,才能进入项目开发状态,那么学习Go语言只需要花费两个月的时间,这就是Go语言吸引人的地方。
2.功能强大
这里仅对Go语言的功能特点进行简单罗列,其详细、强大的功能将在后续各章中逐步得到体现。
1)自带垃圾回收(Garbage Collection,GC)功能
程序员无须关心在内存里执行完的代码如何被清理,因为Go语言自带垃圾回收功能。而在C、C++语言中,这是需要程序员考虑并处理的,很容易出错,是这类编程语言的一大缺陷。
2)快速编译功能
Go语言自带编译器,用于一次性把代码转换为二进制(或字节)形式的可执行命令包。在Windows下,编译器是指扩展名为“.exe”“.dll”的可执行程序。先编译再执行软件功能的过程叫作编译执行。边把代码翻译成机器码边执行代码功能的过程叫作解释执行。显然,在软件功能执行效率上,解释执行不如编译执行。另外,Go语言的编译速度要快于Java这样的编译语言(Java最早是脚本语言,后续增加了编译器)。
显然,Go语言吸收了C、C++编译器的优点。
3)简洁的设计思路
Go语言的语法简洁,没有对象、类等复杂的概念和实现要求,这显然是针对C、C++来说的。它借鉴了Python简洁的语言设计风格,但是语法简洁并不等同于功能简单,很多强大的功能都可以通过新方法来体现。例如并发功能,只需要使用一个关键字就可以实现,这在其他编程语言中是不可想象的。
4)突出最新发展需求——并发
在大数据、云平台、人工智能、物联网技术快速发展的情况下,利用并发技术提高运算力是当前的一种需求和趋势。罗伯特·格瑞史莫他们抓住了这个细分市场需求,确定了Go语言在多核CPU并发运行方面的设计优势,使其从底层支持并发,而且简单易用,可以说“Go语言为并发而生”。
5)提供快速Web开发功能
网站(Web)是针对当今业务系统的一种主流开发模式。Go语言提供了强大的Net/HTTP功能开发模块,只需要几行语句,就可以实现一个高性能的网站后台服务功能,非常具有吸引力。
6)支持交叉编译
所谓交叉编译,就是使用Go语言开发的代码可以在不同类型的操作系统下编译并运行。例如,在Windows下开发的代码可以在Linux下编译并运行。
7)第一门完全支持UTF-8的编程语言
UTF-8可以兼容全球不同语言,如中文、日文、蒙古语等。Go语言对其提供了完整的支持,真正做到了国际化。
3.应用领域广泛
Go语言的应用领域非常广泛,如Web开发、分布式和微服务开发、网络编程、数据库系统及容器虚拟化开发、人工智能、云平台开发、游戏开发、爬虫开发、数据分析及科学计算、系统运维等。