|
|
51CTO旗下网站
|
|
移步端
创造专栏

Python和Go都很火,我要怎么选?

「人生苦短,我用 Python」是那时非常流行的一句口头禅。但你有没有想过,Python 就那么好吗?在少数地方,其它语言真的不香吗?本文作者对比了 Go 和 Python 的性状及测试结果。

笔者:机械的心编译| 2020-02-18 13:55

「人生苦短,我用 Python」是那时非常流行的一句口头禅。但你有没有想过,Python 就那么好吗?在少数地方,其它语言真的不香吗?本文作者对比了 Go 和 Python 的性状及测试结果,认为开发者应基于项目的习性和范围以及所需技能组合,客观地选择编程语言,而不是一味地将 Python 用在一切任务中。

互联网上有恢宏优秀的编码,它们构成了多种基础架构的内核。甚至本文所在网站的创造初衷也是创造优秀代码。虽然普通用户并没有注意到这一点,但可以的开发者总是致力于优化其使用(以及代码)。

编纂优秀代码的根基在于开发者的技艺以及它/他所选取的编程语言。这必然导致开发者之间出现历史性的冲突,这冲突不仅存在于技术层面,重点还在于开发者所选取的语言。如果你把两种编程语言(如 Golang (Go) 和 Python)放在一起对比,大概率会得到这样的结果。

但是,咱们退后一地,耷拉个人偏见和喜欢,副优点和作用的力度来评价两种语言。下一场设置公平的竞争条件和技术水准。

如今,咱们只有两个选择:Go vs Python。这就是说问题来了:哪种语言更适于你?

关于 Python 

刺探一些开发者后,你会发现 Python 是「空前绝后」的语言。Python 拥有这么多人口刮目相看的由来在于他是一门非常良好的编程语言。互联网上随处都是用 Python 写就的奇迹。

Python 是一门「古老」的语言,他概念首次出现于 1991 年。Python 的历史积淀赋予了他一些优势。Python 的使用者众多,这表示这门语言稳定,且具备大量编写完备的文档。在多数案例中,你能找到几乎全部事物的库,以及关于你所思考之一切事物的编码示例。对于开发者和企业来说,这意味着使用 Python 陪伴而来之是大量经验和代码,只要求评估即可。

Python和Go都很火,我要怎么选?

还有大量以 Python 为基础创建的正本求源项目,故此在大部分情况下,你不需要从头开始。Python 可以很好地融会到企业级应用中,可用于机器语言和 AI 使用。但他也有缺陷,比如,不适宜内存密集型任务,推行速度略慢,不适宜移动应用开发。

关于 Go 语言

Go 于 2009 年由谷歌开发形成。他消灭了一番问题,创造出一种没有 C++等语言的过重包袱和过分设计的语言。这使得 Go 在性能和速度上都有大幅度提升,采用 Go 上班成为一件好事。另外,大多数第一次采用 Go 语言的开发者不会感觉到不便,因为 Go 中的熟悉元素及他易用性构成了一项惊喜。

Python和Go都很火,我要怎么选?

这并不是说 Go 语言在一切情况下都是完善的。虽然他将速度和优雅度提升到新的层次,但也舍弃了部分用户期望的效应。比如,他不具备大量库,也不支持继承。另外,他没有 GUI 库,也不支持对象导向的编程。Go 语言的性状表明它具备轻量级线程实现(Goroutine)、智能标准库、强有力的放开安全性,且可采取最简单语法进行编程。

性能测试

关于 Go 和 Python 的得失能说上三天三夜,但最主要的少数还是它们的性质。故此接下来本文在基于 Intel® Core™ i7–9700K CPU @ 3.60GHz × 8 cores 运作的考试配置中实施一些测试。

代码地址:https://github.com/sekarasiewicz/go-python-benchmark

二分搜索

创造整型列表(副 1 到 100000),采用二分搜索找出数字 729。高考结果如下:

Python和Go都很火,我要怎么选?

冒泡排序

第一生成整型列表(包含 10000 个随机数字元素),下一场使用冒泡排序算法对那些要素进行排序。 高考结果如下:

Python和Go都很火,我要怎么选?

副文件中读取

该测试是关于读取「lorem ipsum」文本文件,高考结果如下:

Python和Go都很火,我要怎么选?

HTTP 呼吁处理

创造 HTTP 传感器很简单,但是用 Python 搭建一个类似之蒸发器则要求花费一番功夫。 咱们来看二者对简单的「hello world!」信息的响应时间:

Python和Go都很火,我要怎么选?

如何选择?

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 镇区不会坐以待毙。这两种语言都在扩充和增强。这意味着,前途我们将看到更多功能和改善。

【本文是51CTO专栏机构“机械的心”的原创译文,微信公众号“机械的心( id: almosthuman2014)”】

戳这里,瞧该作者更多好文

【编纂推荐】

  1. 开发者撰文:.NET 副昨天辉煌到今天逐渐没落
  2. 2020年2月编程语言排行榜
  3. Python开发者小工具,可视化py转exe
  4. 在数量科学领域,为什么 Python 比 R 更好?
  5. 震情之下,这是你也能上手的Python新冠病毒传播建模教程(附代码)
【义务编辑: 张燕妮 TEL:(010)68476606】

点赞 0
  • Python   付出  编程语言
  • 分享:
    大家都在看
    猜你喜欢
  • 视频课程+更多

    华为HCNA总体精通必备教程-Wakin产品

    华为HCNA总体精通必备教程-Wakin产品

    教授:谢斌64984人口学习过

    kali linux 安全测试

    kali linux 安全测试

    教授:艾海涛636人口学习过

    玩转JAVA八:JAVA Web

    玩转JAVA八:JAVA Web

    教授:夏昊3593人口学习过