为什么要学习Go语言
Go语言简介
Go语言(或 Golang)是Google开发的开源编程语言,诞生于2007年,并于2009年11月开源,2012年发布Go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。
Go语言是编程语言设计的又一次尝试,它的主要目标是兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性,对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。
Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。
并发编程
经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。
Go语言的并发是基于 Goroutine 的,Goroutine 类似于线程,但并非线程。可以将 Goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 Goroutine,并将 Goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个Goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个Goroutine。
Goroutine 的特点
- Goroutine 具有可增长的分段堆栈, 这意味着它们只在需要时才会使用更多内存。
- Goroutine 的启动时间比线程快。
- Goroutine 原生支持利用channel安全地进行通信。
- Goroutine 共享数据结构时无需使用互斥锁。
Go 是编译型语言
Go 使用编译器来编译代码。编译器将源代码编译成二进制(或字节码)格式;在编译代码时,编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件。要创建并运行 Go 程序,程序员必须执行如下步骤。
- 使用文本编辑器创建 Go 程序;
- 保存文件;
- 编译程序;
- 运行编译得到的可执行文件。
这不同于 Python、Ruby 和 JavaScript 等语言,它们不包含编译步骤。Go 自带了编译器,因此无须单独安装编译器
为什么要学习Go语言
如果你要创建系统程序,或者基于网络的程序,Go语言是很不错的选择。作为一种相对较新的语言,它是由经验丰富且受人尊敬的计算机科学家设计的,旨在应对创建大型并发网络程序面临的挑战。
在Go语言出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言呢?显然,Go语言在这 3 个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。
Go语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发可以在 Windows 上运行的应用程序。这是第一门完全支持 UTF-8
的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的 UTF-8
编码。Go语言做到了真正的国际化!