Golang 还是 Python? 哪种语言更适合 AI?
近几年, AI 势头越来越猛, 许多创新型企业都开始涉入 AI 领域, 同时计算机硬件水平也突飞猛进, 为了加快产品应用开发效率及瓶颈问题, Google 所开发的 Golang 应运而生, 正在成为机器学习和 AI 的主流编程语言, 全球已有数百万用户. 那么很多 IT 技术人员肯定会有这样的疑问, 前些年火起来的 Python 在科学计算及 AI 领域也有广泛应用, 那么这两者今后谁才是 AI 的菜呢?
Python 很棒, 但是 Golang 也不逊色!
Golang 为并发而生
如今, 硬件制造厂商正在为处理器添加越来越多的内核以提高性能. 数据中心都在处理器上运行, 应用程序使用多个微服务来维护数据库连接, 消息队列和维护缓存. 因此, 编程语言和应用程序应该可以轻松地支持并发性, 并且应该能够随着 CPU 核心数量的增加而具备相应的扩展性.
但是, 大多数现代编程语言 (如 Java,Python 等) 都是来自 90 年代的单线程环境. 虽然一些编程语言的框架在不断地提高多核资源使用效率, 例如 Java 的 Netty 等, 但仍然需要开发人员花费大量的时间和精力搞懂这些框架的运行原理, 才能熟练的运用到生成开发中.
Golang 于 2009 年 11 月发布, 当时多核处理器已经上市, Go 语言在多核并发上拥有原生的设计优势, Go 语言从底层原生支持并发, 无须第三方库, 开发者的编程技巧和开发经验.
Golang 现在正成为机器学习和 AI 的主流编程语言, 全球已有数百万用户使用. 国内例如有阿里巴巴, 滴滴, 京东, 知乎, 七牛云, 小米等科技互联网公司, 国外有 Google,Facebook,Uber,Dropbox,Salesforce,Twitter 等等.
Golang 会淘汰 Python 吗?
Python 被广泛使用, 而且用途太多, 它可将数千个组件从单个模块编译为整个开发的程序包. Python 还有一个强大的社区, 它有望在未来几十年内保持活力. 经过多种环境的测试, 对于初学者来说, 使用 Python 编程很容易, 并且被认为是年轻开发人员的最爱. 在编写服务器端脚本时, Go 语言的性能优于 Python. 因此, 在寻找具有快速部署周期的超高性能并发服务时, Golang 将优于 Python.
然而, 最近, Golang 和 Python 被称为最适合 AI 开发者的流行语言. 当公司中同时存在使用这两种语言的团队时, 组织内部将会出现以下两个门派.
AI 工程师中的 Golang 粉
AI 即将席卷整个技术世界. 机器学习, 自我纠正和推理是一些可以模仿人类智能的应用程序. 人工智能驱动的应用程序现在使企业能够改善其资源的使用, 从而产生积极的影响.
高可扩展性和计算能力: 与 Python 相比, Golang 在可扩展性和性能方面具有更高的潜力. 使用 Go 的想法是因为与数学计算速度相比, 它具有较高的速度. 例如, 与 Python 相比, 它可以处理高达 20 至 50 倍且速度更快的复杂数学问题.
Golang 涵盖了广泛的 AI 用途: 尽管 Go 提供了小型库, 但它一直在不断增长, 从而解决了许多 AI 用途. Go 库 (例如 GoLearn(数据处理),Goml(传递数据) 和 Hector(二进制分类问题))是为 AI 及其应用程序服务的一些库.
提供了大量的代码可读性: Go 中使用的算法提供了一种极简主义的方法, 使开发人员可以轻松地创建可读代码.
Go 开发人员易于使用 Go 库: 大多数 Go 开发人员不需要选择用其他编程语言编写的库. 在 Go 中拥有库的核心优势在于, 它为 AI 专业人员提供了与 Go 一起进行编程的开发人员的便利.
AI 工程师中的 Python 粉
如今在 IT 行业中, 机器学习和 AI 这两种技术一直是 IT 行业的主流, 并将会有一个美好的将来.
多个库: 多个库可以帮助 AI 工程师构建新算法, 进行数据集处理, 进行模型处理, 处理最复杂的数据以及更多其他功能. 别忘了, TensorFlow 是最流行的库 (开源) 之一, 可用于 Google 的许多机器学习应用程序.
Python 是一种可访问性的语言: 从商业角度来讲, 语言的可访问性意味着拥有大量的 Python 编程市场. 此外, 正如我们所知, 这些编程语言已遍布全球.
强大的社区: Python 具有完善的强大社区. 据 GitHub 在 2019 年中的统计, 在全球范围内发送了近一百万次服务请求. 社区倾向于为创建新库以扩展工具集和更新文档做出贡献.
为什么是 Golang 而不是 Python?
编程语言的可伸缩性可以维护和帮助开发人员更大规模地解决问题. Golang 内在支持适当的并发流程通道, 而 Python 在并发方面将面临着巨大的挑战. 由于 Golang 提供了并发支持, 因此 Go 在群集计算和云计算中已被广泛接受.
如果涉及到可读性时, Python 肯定会被提名, 但是有时也会被夸大其词. Python 确实可以提供多种方法来实现不同的业务场景, 但是这常常会引起混乱. 然而, Go 在编程方面遵循严格的规则, 它不允许简单地导入不需要的库, 也不允许创建不必要的变量. 所以, 这意味着 Go 具有更好的执行优势, 保证代码风格的一致性, 可以在跨部门协作中提高团队开发的工作效率. 尽管有些人可能不同意, 只要代码可读即可.
得出哪种语言更好的结论可能是一件比较难的事, 尽管在大多数情况下, Golang 似乎占了上风. 目前, 它的火热程度可能还不如 Python, 但最终它将在某天到达. 根据记录, Python 花费了二十年才能达到今天的水平. 在最初的十年中, Python 的存在并未引起人们的注意, 直到 2001 年它才开始引起人们的注意. 因此, Go 一定会赶上.
生活如此艰难, Let's GO!
来源: http://developer.51cto.com/art/202002/610136.htm