“人生苦短,我用Python”是当下非常流行的一句口头禅。但是你有没有想过,Python有那么好吗?在某些方面,其他语言真的不好吗?本文作者比较了Go和Python的特点和测试结果,认为开发者应该根据项目的属性和规模以及所需的技能组合合理选择编程语言,而不是盲目地使用Python来完成所有任务。Internet上有大量优质代码构成了多种基础设施的构建块。即使是托管这篇文章的站点也是为了创建出色的代码而创建的。虽然普通用户没有注意到这一点,但优秀的开发人员总是致力于优化他们的应用程序(和代码)。编写好的代码取决于开发人员的技能和他/她选择的编程语言。这不可避免地导致了开发人员之间的历史性冲突,不仅在技能水平上,而且主要是在开发人员选择的语言上。如果将Golang(Go)和Python两种编程语言并排比较,你很可能会得到这样的结果。然而,让我们退后一步,抛开个人偏见和偏好,从优点和功能的角度来评估这两种语言。然后设置公平的竞争环境和技能水平。现在,我们只有两个选择:GovsPython。那么问题来了:哪种语言更适合你?问过一些开发者有关Python的知识后,你会发现Python是一门“前无古人、未来”的语言。Python之所以受到这么多人的欢迎,是因为它是一种非常好的编程语言。互联网上到处都是用Python编写的奇迹。Python是一种“古老”的语言,其概念最早出现于1991年。Python的历史赋予它一些优势。Python的大量用户表明该语言是稳定的,并且具有广泛且编写良好的文档。在大多数情况下,您会找到几乎所有内容的库,以及几乎所有您能想到的内容的代码示例。对于开发人员和企业而言,这意味着使用Python会带来大量经验和代码,而这些经验和代码只需要进行评估。还有大量基于Python构建的开源项目,因此在大多数情况下,您不需要从头开始。Python很好地集成到企业应用程序中,可用于机器语言和AI应用程序。但它也有缺点,比如不适合内存密集型任务,执行速度稍慢,不适合移动应用开发。关于Go语言Go是Google在2009年开发的,它解决了一个问题,创造了一种没有像C++这样语言的沉重包袱和过度工程化的语言。这使得Go在性能和速度上有了巨大的提升,使使用Go成为一种乐趣。此外,大多数第一次使用Go语言的开发人员不会觉得不方便,因为Go中熟悉的元素及其易用性令人惊喜。这并不是说Go语言在所有情况下都是完美的。虽然它将速度和优雅提升到新的水平,但它也遗漏了用户期望的一些功能。例如,它没有大型库,不支持继承。此外,它没有GUI库,也不支持面向对象的编程。Go语言的特点表明它具有轻量级的线程实现(Goroutine)、智能的标准库、强大的内置安全性,并且可以用最少的语法进行编程。性能测试可以讲Go和Python的优缺点三天三夜,但最关键的还是他们的性能。因此,接下来本文将在Intel?Core?i7–9700KCPU@3.60GHz×8核上运行的实验配置中执行一些测试。代码地址:https://github.com/sekarasiewicz/go-python-benchmark二分查找创建一个整数列表(从1到100000),使用二分查找找到数字729,测试结果如下:Bubblesort首先生成一个整数列表(包含10000个随机数元素),然后使用冒泡排序算法对这些元素进行排序。测试结果如下:Readingfromafile本次测试是读取一个“loremipsum”文本文件,测试结果如下:HTTP请求处理创建一个HTTP服务器很容易,但是用Python构建一个类似的服务器需要一个大量的工作。让我们看看两者对一个简单的“helloworld!”的响应时间。留言:如何选择?Python是社区最流行的语言,在2019年第一季度“GitHub增长最快的编程语言”中排名第二(pullrequests增长了17%),但Golang也不甘落后,在这个排名中排名第4(拉取请求数量增加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社区并没有坐以待毙。两种语言都在扩展和成长。这意味着,我们将在未来看到更多功能和改进。【本文为栏目组织《机器之心》微信公众号《机器之心(id:almosthuman2014)》原文翻译】点击此处查看作者更多好文
