作者 | Pawel Dziubałka, Sebastian Karasiewicz
译者 | 泓技
出品 | AI科技大本营
互联网上有非常多的精彩代码,它们成了构建各种基础设施的基础。你正在阅读的这个平台同样也在致力于创建出色的代码。尽管普通用户一般不会注意到这一点,但另一方面,优秀的开发人员始终在寻求使他们的应用程序(以及他们的代码)有更好的方法。
编写出色代码的基础取决于开发人员的技能及其选择的语言。这不可避免地导致开发人员之间的冲突,而冲突不仅关乎技能水平,而且主要关乎他们偏爱的语言(甚至有可能发生史诗般冲突)。当你将两种出色的编程语言(例如Golang(Go)和Python)放在一起时,最有可能出现这种情况。
现在让我们退后一步,消除个人偏见和偏好,单纯地从优点和功能的角度评估这两种语言,熟练地平整好比赛场地。现在,我们剩下的只有两个不错的选择:Go vs Python。现在的问题变成,哪个编程语言更适合你?
Python的故事
如果去询问一些开发人员,你会听到Python诞生之前的都不值一提,而Python之后的也都不值一提之类的话。多年来,由于它是一种非常好的编程语言,已成功赢得了庞大关注。互联网上充满了使用Python创建的酷炫应用。
就编程年限而言,Python算是元老。它于1991年首次被概念化。随着年龄的增长,逐渐具备了一定的优势。它拥有广泛的支持者,这意味着它是稳定的,并且文档丰富。在大多数情况下,你会找到几乎所有内容的库以及几乎所有可以想到的任何代码示例。对于开发人员和企业而言,这意味着使用Python的选择会带来丰富的经验和编码。
有很多使用Python作为基础的开源项目,因此在大多数情况下,你不是从头开始的。它很好地集成到企业应用程序中,并且可以在机器语言和AI应用程序中使用。但是它确实有缺点,一方面,它对于内存密集型任务不是理想的选择,对于执行而言有点慢,另一方面,它不适合移动应用程序开发。
说到Golang(Go)
Google于2009年开发了Go语言。Go的初衷是解决实际问题。它的目标是创建一种语言,以消除C++等语言中发现的所有负担和多余的东西,这给它带来了性能和速度上的提升。另外,大多数第一次接触Go的开发人员不会体会到语法的高门槛,因为Go里面熟悉的元素和易用性会令人惊喜。
这并不是说该语言在所有情况下都是完美的。尽管将速度和优雅提升到了一个新的高度,但它确实留下了一些需要改进的地方。首先,它没有扩展库,也不支持继承。此外,没有GUI库或面向对象的编程支持。它要做的就是创建一个轻量级线程(Goroutines),智能标准库,强大的内置安全性,并且易于使用最少的语法进行编码。
性能测试
我们可以无休止地谈论Golang或Python的优缺点,但是当我们考虑部署使用时,我们都期待它们能有卓越性能。因此,我们在Intel®Core™i7–9700KCPU @ 3.60GHz × 8核的测试设备上进行了一些测试。测试代码可以从这里获得https://github.com/sekarasiewicz/go-python-benchmark。
1.二分搜索
我们创建了一个整数列表(从1到100000),然后使用二分搜索查找始终相同的数字729。结果是:
2.冒泡排序
再次,我们生成了一个整数列表(这次是随机的,共10000个元素),并使用冒泡排序算法对其进行了排序。
3.文件读取
读取“ lorem ipsum”文本文件的简单测试。
4. HTTP请求处理
编写HTTP服务器确实很容易,但是我们为在Python中进行有效的模拟付出了很多努力。我们检查了一个简单的“hello world!” 信息需要多长时间响应。
选Golang还是Python?
尽管Python一直是社区中的最爱,在2019年第一季度就成为GitHub上最快的编程语言排行榜上(按拉取请求数计算+17%)的第二名,但Golang并没有落后很多,位于紧随其后的第四位(+ 8%)。Golang与Python之间的选择变得更加模糊。无论如何,在选择哪一项适合你时都需要考虑一些事项。
1.可扩展性:Golang在创建时就考虑了可扩展性。它具有内置的并发性,可以同时处理多个任务。Python同样可以使用并发,但不是内置的。它通过线程实现并行性。这意味着,如果你要处理大型数据集,那么Golang似乎是一个更合适的选择。
2. 性能:众所周知,Python不是内存或CPU友好型的编程语言,但由于它拥有大量的库,Python可以有效执行基本的开发任务。Golang具有内置功能,它更适合于微服务软件体系结构。
3. 应用程序:Python非常适合编写用于人工智能、数据分析、深度学习和Web开发的代码。Golang已普遍用于系统编程,并且受到云计算和集群计算应用程序的开发人员的喜爱。
4. 社区和库:如前所述,Python的时代赋予了它一定的优势。其中之一是它拥有的库数量以及支持它的大型社区。另一方面,Golang虽然没有Python提供的大量库和社区支持,但仍是一种增长中的语言。我们不应该将Golang踢出局。它的增长和采用率令人难以置信,并且每天都在增长。
5. 执行性能:如果只关注速度,那么Golang肯定会赢。
考虑所有这些因素后,你的用例将成为采用哪种语言的决定因素。在你要建立开发团队来创建微服务的情况下,Golang将是更合理的选择,因为它既快速,易于编码,又可以很好地扩展。另一方面,Python更适合于AI、ML和数据分析。
因此,一对一地比较,在大多数情况下,Go会脱颖而出,被认为是使用Python的有效替代方案。开发人员需要选择一种编程语言,要考虑其开发项目的性质和规模以及所涉及人员的技能。
好消息是,无论选择哪种语言,两种语言都在不断发展。尽管在大多数情况下,Golang似乎是一个显而易见的选择,但Python社区不会闲坐而不采取任何行动。两种语言都在扩展和增长。这意味着将来我们将看到更多的功能和改进。
原文链接:
https://www.softkraft.co/golang-vs-python/
近期精彩内容推荐:
10个Redis使用技巧,很多人不知道的
如何从Windows切换到Linux
史上最污技术解读,我竟然秒懂了
一文洞悉Python必备50种算法
在看点这里好文分享给更多人↓↓