现在,我们只有两个选择: Go vs Python。那么问题来了:哪种语言更适合你?
0 1
关于python
询问一些开发者后,你会发现 Python是「空前绝后」的语言。 Python 获得这么多人青睐的原因在于它是一门非常优秀的编程语言。互联网上到处都是用 Python 写就的奇迹。
Python是一门「古老」的语言,其概念首次出现于 1991 年。 Python的历史积淀赋予了它一些优势。 Python的使用者众多,这表示这门语言稳定,且具备大量编写完备的文档。
在大部分案例中,你能找到几乎所有事物的库,以及关于你所思考的所有事物的代码示例。对于开发者和企业来说,这意味着使用 Python 伴随而来的是大量经验和代码,只需要评估即可。
还有大量以 Python 为基础创建的开源项目,因此在大多数情况下,你不需要从头开始。
Python 可以很好地集成到企业级应用中,可用于机器语言和 AI 应用。但它也有缺点,比如,不适合内存密集型任务,执行速度略慢,不适合移动应用开发。
02
关于GO语言
Go 于 2009 年由谷歌开发完成。它解决了一个问题,创建出一种没有 C++等语言的过重包袱和过分设计的语言。
这使得 Go在性能和速度上都有极大提升,使用 Go 工作成为一件乐事。此外,大部分第一次使用 Go 语言的开发者不会感觉到不便,因为 Go中的熟悉元素及其易用性构成了一项惊喜。
这并不是说 Go 语言在所有情况下都是完美的。虽然它将速度和优雅度提升到新的层次,但也舍弃了一些用户期望的功能。比如,它不具备大量库,也不支持继承。
此外,它没有 GUI库,也不支持对象导向的编程。 Go语言的特点表明它具备轻量级线程实现 (Goroutine)、智能标准库、强大的内置安全性,且可使用最简语法进行编程。
0 3
性能测试
关于 Go和 Python 的优缺点能说上三天三夜,但最关键的一点还是它们的性能。
因此接下来本文在基于 Intel® Core™ i7–9700K CPU @ 3.60GHz × 8 cores 运行的试验配置中执行一些测试。
二分搜索
冒泡排序
首先生成整型列表(包含 10000 个随机数字元素),然后使用冒泡排序算法对这些元素进行排序。测试结果如下:
从文件中读取
该测试是关于读取「lorem ipsum」文本文件,测试结果如下:
HTTP请求处理
0 4
如何选择?
Python是社区最受欢迎的语言,在 2019 年第一季度「GitHub 发展最快的编程语言」中名列第二位 (pull requests 数量增长 17%),但 Golang 也没落后多少,在该排名中名列第四 (pull requests 数量增长 8%)。
在 Golang和 Python中做出选择变得更加艰难。然而,在选择适合自己的语言时,你需要考虑以下事项:
可扩展性: Golang在创建之初就考虑到了可扩展性。其内置并发性允许同时处理多项任务。 Python 也使用并发性,但并非内置,它通过线程实现并行化。这意味着如果你打算处理大型数据集, Golang 似乎是更适合的选择。
性能:众所周知, Python 并非 内存/CPU友好的语言,但它具备大量库,可以高效执行基础的开发任务。 Golang具备内置功能,更适合微服务软件架构。
应用: Python 适合人工智能、数据分析、深度学习和 web 开发任务,而 Golang 适用于系统编程,执行云计算和集群计算应用的开发者喜欢使用 Golang。
社区与库:如前所述, Python的历史赋予它一定优势。其中之一就是它具备大量库,拥有大型支持社区。而 Golang语言仍在增长期,没有那么多库和社区支持。但是我们不应因此判定 Go 语言出局。其增长率和采用率非常惊人,每天都在扩张。
执行:如果速度是王道,那么 Golang遥遥领先。
考虑以上事项后,具体使用案例将成为采用哪种语言的决定性因素。假如你的开发团队要创建微服务,那么 Golang是更合理的选择,因为它速度快、易于编程、可扩展性优异。而 Python更适合 AI、ML和数据分析任务。
从直接测试结果来看, Go 在大部分案例中领先,被认为是 Python 的有效替代方案。开发者在选择编程语言时,应考虑开发项目的性质和规模,以及所需的技能组合。
好消息是,不管选择了哪种语言, Go和 Python都在持续演进。尽管在大多数情况下 Golang可能是更好的选择,但 Python 社区不会坐以待毙。这两种语言都在扩张和增长。这意味着,未来我们将看到更多功能和改进。
人工智能物联网班火热招生中
我们的课程从 入门到实战项目 ,让你 快速掌握 企业所需 前沿技术 ,职坐标 助你在6个月 挑战高薪入职。
▼
职坐标在线∣一个有用的公众号
戳 “阅读原文”一起来充电吧!