Go 编程语言,有时被称为 Google 的 golang,其受欢迎程度正在强劲增长。虽然 Java 和 C 等语言继续在编程领域占据主导地位,但新的模型已经出现,它们更适合现代计算,尤其是在云端。Go 语言使用量的增加部分归因于它是一种轻量级的开源语言,适合当今的微服务架构。容器领域的宠儿 Docker 和 Google 的容器编排产品 Kubernetes 都是使用 Go 构建的。Go 语言在数据科学领域也越来越受欢迎,它在整体性能以及从“分析师的笔记本电脑到全面生产”的能力方面具有数据科学家所寻求的优势。
作为一种工程化的语言(而不是随着时间推移演变而来的语言),Go 语言在多个方面使开发人员受益,包括垃圾回收、原生并发以及许多其他原生功能,这些功能减少了开发人员编写代码来处理内存泄漏或联网应用程序的需求。Go 还提供了许多其他功能,这些功能非常适合微服务架构和数据科学。
正因为如此,Go 语言正在被有趣的公司和项目采用。最近,Tensorflow 的 API 已经添加,并且像 Pachyderm(下一代数据处理、版本控制和存储)这样的产品正在使用 Go 构建。Heroku 的 Force.com 和 Cloud Foundry 的部分也使用 Go 编写。越来越多的名字正在定期添加。
日益增长的普及度和使用率
在 2017 年 9 月的 TIOBE Go 语言指数中,您可以清楚地看到 Go 语言自 2016 年以来人气的惊人跃升,包括被评为 TIOBE 2016 年度编程语言名人堂的获奖者,成为年度评分增长最高的编程语言。目前,它在月度榜单上排名第 17 位,高于一年前的第 19 位和两年前的第 65 位。

opensource.com
Stack Overflow 2017 年的调查也显示了 Go 语言普及度上升的迹象。Stack Overflow 对 64,000 名开发人员进行的全面调查试图通过询问“最喜爱、最讨厌和最想要的语言”来了解开发人员的偏好。这份榜单由较新的语言主导,如 Mozilla 的 Rust、Smalltalk、Typescript、Apple 的 Swift 和 Google 的 Go。但连续第三年,Rust、Swift 和 Go 都进入了“最喜爱”编程语言的前五名。

opensource.com
Go 语言的优势
一些编程语言是随着时间的推移拼凑而成的,而另一些则是在学术界创建的。还有一些是在不同的计算时代设计的,面临着不同的问题、硬件和需求。Go 是一种明确设计的语言,旨在解决现有语言和工具的问题,同时原生利用现代硬件架构。它的设计不仅考虑到了开发团队,还考虑到了长期可维护性。
Go 语言的核心是务实的。在 IT 的现实世界中,复杂的大型软件是由大型开发团队编写的。这些开发人员的技能水平通常各不相同,从初级到高级。Go 语言很容易上手,并且适合初级开发人员工作。
此外,拥有一种鼓励可读性和理解性的语言非常有用。鸭子类型(通过接口)和诸如“:=”之类的简便功能(用于简短的变量声明)的结合,使 Go 语言具有动态类型语言的感觉,同时保留了强类型语言的优点。
Go 语言的原生垃圾回收功能消除了开发人员进行自己的内存管理的需求,这有助于消除两个常见问题
- 首先,许多程序员已经开始期望内存管理将为他们完成。
- 其次,内存管理对于不同的处理核心需要不同的例程。手动尝试考虑每种配置可能会大大增加引入内存泄漏的风险。
Go 语言的原生并发是网络应用程序的福音,这些应用程序的生死取决于并发性。从 API 到 Web 服务器再到 Web 应用程序框架,Go 项目倾向于专注于网络、分布式功能和/或服务,而 Go 的 goroutine 和 channel 非常适合这些领域。
适合数据科学
从大型数据集中提取商业价值正迅速成为公司的竞争优势,并且是编程领域非常活跃的领域,包括人工智能、机器学习等专业领域。Go 语言在这些数据科学领域具有多重优势,这正在增加其使用和普及率。
- 卓越的错误处理和更简单的调试正在帮助它超越 Python 和 R,这两种最常用的数据科学语言。
- 数据科学家通常不是程序员。Go 语言有助于原型设计和生产,因此它最终成为将数据科学解决方案投入生产的更强大的语言。
- 性能非常出色,这对于大数据爆炸式增长和 GPU 数据库的兴起至关重要。Go 语言不必调用基于 C/C++ 的优化来获得性能提升,但它确实为您提供了这样做的能力。
Go 语言扩展的种子
软件交付和部署发生了巨大的变化。微服务架构已成为释放应用程序敏捷性的关键。现代应用程序被设计为云原生,并利用云平台提供的松耦合云服务。
Go 是一种明确设计的编程语言,专门为满足这些新需求而设计。Go 语言专为云而编写,由于其对并发操作的掌握和其构造之美,普及度不断提高。
不仅 Google 在支持 Go,其他公司也在帮助市场扩张。例如,Go 代码通过企业级发行版(如 ActiveState 的 ActiveGo)得到支持和扩展。作为一个开源运动,golang.org 网站和年度 GopherCon 会议构成了强大而现代的开源社区的基础,该社区允许将新想法和新能量带入 Go 的开发过程。
15 条评论