收藏文章 楼主
Python和Go,到底应该站哪边儿呢?
网友【chuang】 2020-05-06 08:48:24 分享在【时代发展的印记】版块    1    2

「人生苦短,我用 Python」是当下非常流行的一句口头禅。但你有没有想过,Python 就那么好吗?在某些方面,其他语言真的不香吗?本文作者对比了 Go 和 Python 的特点及测试结果,认为开发者应基于项目的属性和规模以及所需技能组合,合理地选择编程语言,而不是一味地将 Python 用在所有任务中。

网友分享在meiguo.com上的图片

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

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

但是,我们退后一步,放下个人偏见和喜好,从优点和功能的角度来评价两种语言。然后设置公平的竞争环境和技能水准。

现在,我们只有两个选择:Go vs Python。那么问题来了:哪种语言更适合你?

关于 Python

询问一些开发者后,你会发现 Python 是「空前绝后」的语言。Python 获得这么多人青睐的原因在于它是一门非常优秀的编程语言。互联网上到处都是用 Python 写就的奇迹。

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

网友分享在meiguo.com上的图片

还有大量以 Python 为基础创建的开源项目,因此在大多数情况下,你不需要从头开始。Python 可以很好地集成到企业级应用中,可用于机器语言和 AI 应用。但它也有缺点,比如,不适合内存密集型任务,执行速度略慢,不适合移动应用开发。

关于 Go 语言

Go 于 2009 年由谷歌开发完成。它解决了一个问题,创建出一种没有 C++等语言的过重包袱和过分设计的语言。这使得 Go 在性能和速度上都有极大提升,使用 Go 工作成为一件乐事。此外,大部分第一次使用 Go 语言的开发者不会感觉到不便,因为 Go 中的熟悉元素及其易用性构成了一项惊喜。

网友分享在meiguo.com上的图片

这并不是说 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。测试结果如下:

网友分享在meiguo.com上的图片

冒泡排序

首先生成整型列表(包含 10000 个随机数字元素),然后使用冒泡排序算法对这些元素进行排序。测试结果如下:

网友分享在meiguo.com上的图片

从文件中读取

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

网友分享在meiguo.com上的图片

HTTP 请求处理

创建 HTTP 服务器很简单,但是用 Python 搭建一个类似的服务器则需要花费一番功夫。我们来看二者对简单的「hello world!」消息的响应时间:

网友分享在meiguo.com上的图片

如何选择?

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 社区不会坐以待毙。这两种语言都在扩张和增长。这意味着,未来我们将看到更多功能和改进。

原文链接:https://medium.com/softkraft/golang-vs-python-which-one-to-choose-3c052ec324e6

出处:头条号 @机器之心Pro

meiguo.com 发布人签名/座右铭我已经有美国绿卡了,只差美果绿卡啦!
大家都在看
楼主新近贴
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

2   2020-05-06 08:48:24  回复

回复/评论:Python和Go,到底应该站哪边儿呢?

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. “TikTok难民”如何玩转中国社交网络?一夜间“小红书”刷屏全美
  2. 为何大火一直“不放过”洛杉矶?
  3. 以色列和哈马斯终于同意停火
  4. 警告川普和马斯克的?美军特种兵策划了Cybertruck爆炸案
  5. 川普总统在开工首日就向1300万非法移民动手了
  6. 中国企业在2025 CES“疯狂圈粉儿”
  7. 怪自己心善帮错人!美国华人在Costco购物后,被警察抄家!
  8. 川普总统公开表示美中联手可以解决世界上所有问题,当日还会见了TikTok首席执行官!
  9. 全美境内,非法移民“驱逐战”打响了!
  10. 美军再次增建两艘新航母
  11. “CEO杀手”或面临死刑?超级明星律师为其辩护,好莱坞的专题纪录片即将开机拍摄!
  12. 川普总统正式接任,成为美国第47任总统
  13. 十年了,马航MH370的新一轮探寻工作开启?
  14. 金牌讲师在洛杉矶的生存之道
  15. 中美关系的新篇章?中国的人民日报开始征集“中美友好合作故事”
  16. 川普总统在接任首日或将推上百项行政命令
  17. 美国最高法院“无视了”川普的延期请求?TikTok在下周关闭了!
  18. 态度“回归自然”了?川普胜选后首次接受电视访谈
  19. 罪犯也能当总统?美国的底线呢?
  20. 移民故事:在北美生活十年后的“回头路”
  21. 在美国买房的省税攻略“十个妙招”
  22. 川普总统“喜获”年度人物封面,商界CEO们开始“跪舔”!
  23. 中国电影市场的2025春节档 ~ 简直就是神仙打架
  24. 川普总统公开称赞中方领导人,认可中美可以友好相处!
  25. 重大胜利🤑川普总统“又赢了一把”
  26. 美国政府即将全面解除对华限制?
  27. 首次入境美国在旧金山机场遭遇了小黑屋
  28. 全美最昂贵房产分布的邮政编码榜单出炉
  29. TikTok在美国全面恢复了
  30. 最后期限了,TikTok将会卖给谁?伊隆·马斯克?
  31. 川普总统首次公开回应“TRUMP”数字货币项目
  32. 赴美生子的中国人在纠结剖不剖?美国人在寻思“移民鹤岗”呢!
  33. 针对纽约州指控,他提出无罪抗辩!
  34. 胃癌发病率和筷子🥢有关系?
  35. “复活版”TikTok“拿捏了”美国人的软肋?
  36. 周受资 ~ 真正强大的CEO

美国动态 · 美果转盘 · 美果商店

Your IP: 18.117.170.115, 2025-02-07 07:22:01

Processed in 0.62682 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(2) 分享
分享
取消