阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

下一个十年,Python 的“王者”地位还保得住吗?

  • 2020-10-31
  • 本文字数:2618 字

    阅读完需:约 9 分钟

下一个十年,Python的“王者”地位还保得住吗?

本文最初发表在 Medium 博客上,经原作者 Bharath K 授权,InfoQ 中文站翻译并分享。


甭管唱反调的人怎么唱衰,Python 在下一个十年仍然很重要,并且会与时俱进。


Python 是一门了不起的编程语言,它改变了游戏规则,将编程的格局提升到了一个完全不同的层次。Python 的迅速崛起对整个行业来说都是极其有利的,但是当它越来越受欢迎时,却总是受到批评。


最近,我看过一些文章和视频,它们似乎都在表明,Python 的辉煌时代行将终结。


由 Python 引发的批评经常有:“它是一种缓慢的语言”、“全局解释器锁”、“动态类型”,“移动应用程序缺乏支持”等。


所有的批评都正确吗?它们真的重要吗?


在这个十年的剩余时间里,Python 还能如此重要以及保持完整性吗?


今天,我们将对事实进行分析,破除一些误解。


闲话少叙,言归正传!

Python 三大主要槽点,但所有的批评都正确吗?

(一)、Python “非常缓慢”

不可否认的是,与 C、C++、Java 等编程语言相比,Python 的速度的确非常缓慢。那些编程语言之所以速度更快,主要原因之一是,它们是静态类型的,而 Python 是一种动态类型的编程语言。


这些语言是在运行之前就进行编译的,而 Python 是在运行时编译。


Python 还从其他编程语言(而不是本机代码)导入外部库。


简单地说,这些因素是导致 Python 速度缓慢的主要原因,但是这确实是个问题!


很重要吗?


对于最终用户来说,这几乎没有什么区别。不管程序是以 0.0001 秒还是 0.001 秒的时间运行,都不重要。


此外,如果你的计算速度是一个重要的因素,那么值得注意的是,汇编级语言将比 C、C++ 甚至 Java 都要快得多,但几乎并没有什么人使用它们。


然而,Python 更快的开发速度和整体简单性弥补了它在速度上的不足。


也就是说,可以对 Python 代码进行优化,使其执行速度稍微快一些。即使改善并不显著,但对于大多数情况而言,应该也不会有太大的问题。

(二)、全局解释器锁

Python 全局解释器锁(Global Interpreter Lock,GIL)是 Python 处理进程时使用的一种进程锁。通常,Python 只使用一个线程来执行一组编写的语句。全局解释器锁限制了 Python 开箱即用的并行编程。


这意味着在 Python 中,每次只能有一个线程。对于 Python,单线程进程和多线程进程的性能是相同的。造成这个问题的原因就是全局解释器锁。


很重要吗?


全局解释器锁是 Python 的一个有争议的特性。它的引入是为了避免内存泄漏和死锁问题。


它对整个计算过程的负面影响大于正面影响。不过,这在一定程度上可以通过 Python 中的多处理来解决这一问题。


多处理可以使你同时运行多个不相关的进程。多处理比多线程更适用于 CPU 密集型任务,也更值得推荐。

(三)、对移动应用开发贡献不足

在移动开发行业中,Java 和其他编程语言占据了主导地位。像 Android Studio 之类的应用程序使用 Java 和 XML 这样的编程语言。


Python 为计算机和服务器端系统提供了各种各样的开发。但遗憾的是,Python 并不适合开发移动应用程序。实际上,Python 甚至被认为对于基于移动设备的应用程序来说是一种较弱的编程语言。


很重要吗?


智能手机、平板电脑和其他小型设备的普及程度正在上升。Python 在这方面的不足,可能会妨碍它作为一门优秀的编程语言在未来的存在和发展。


不过,事情可能并不会像预期的那样“黯淡”,因为随着 Python 的发展以及对语言和框架的不断更新,它甚至可能会为移动应用程序开发开辟出一个市场。


重要的是要认识到 Python 缺乏亮点。但是,了解这些因素对普通程序员的影响程度也很重要。


现在让我们来看看让 Python 变得强大的因素,以及为什么它未来几年将会如此重要。

为什么 Python 在下一个十年依然如此重要?

(一)、最适合初学者学习的编程语言

对于没有编程经验的初学者来说,Python 是一种很棒的入门编程语言。Python 简单易学。它还有助于对面向对象编程的基本概念的理解。


对于任何人来说,即使是没有编程或编码经验的人,尤其是那些打算在数据科学、人工智能、机器学习等领域进一步发展的人来说,Python 都是最佳的入门方式。


它为所有人提供了一种简单的途径来接触到这门语言。Python 的通用性极强,具有平台独立性。这意味着 Python 也可以导入在其他编程语言中构建的基本模块。


总而言之,Python 是一种很棒的入门编程语言,完全值得学习。它还可以在需要的时候帮助转换到其他语言。

(二)、人气和社区支持

Python 是世界上第二流行的语言,在撰写本文时,仅次于 JavaScript。这种人气似乎不会很快下降。


要深入了解 2020 年及以后 Python 和其他编程语言的流行情况,我强烈推荐阅读我之前写过的一篇文章《2020 年及以后最流行的十种编程语言》(10 Most Popular Programming Languages For 2020 and Beyond)。


Python 还有一个很棒的社区,提供了持续性更新和新版本。一般来说,Python 社区有很多大咖,为了改进 Python,他们不断地进行更新。


为了跟上编程世界的发展,社区成员积极参与新模块的开发,他们不断开发与各种库和框架相关的大量资源。

(三)、在人工智能 / 数据科学领域占主导地位

Python 的专长在于执行可视化任务、探索性数据分析,当然,在机器学习、深度学习、神经网络等方面的人工智能领域也是如此。


可以通过 Python 模块和库访问的各种框架,有助于解决机器学习和深度学习复杂的问题。


“Python 在人工智能和数据科学领域的能力非常出色,几乎无后来者能及”,此时此刻,如果给出这样的评价相信也无可非议。


不过,有一些新兴的编程语言正在崛起,它们也有可能会构成威胁,成为 Python 的强大竞争对手。我将在以后的文章详细讨论这三门潜在的编程语言。


迄今为止,Python 是一门很棒的编程语言,它可以帮助你开始解决复杂的机器学习和深度学习项目的数据科学之旅。

总结

假如你是一个初学者,在网上听到了这些批评,要是你因此认为 Python 可能不是当今最好的学习语言,那你就错了。


但愿我这篇文章能够传达出这样的一个信息:尽管有些人加入到批评 Python 某些缺点的潮流中来,以求追赶“时髦”,但这并不意味着这种非凡的编程语言的人气或性能将在未来几年内逐渐消失。


Python 仍然很重要,客观上来说,它被视为是初学者学习入门语言的不错选择。


它在人工智能领域的贡献是巨大的,在机器学习、数据可视化和深度学习方面的重要性将在未来数年中持续存在。

作者介绍:

Bharath K,热衷探索和学习新概念。对人工智能、深度学习、机器人和宇宙非常感兴趣。


原文链接:


https://towardsdatascience.com/why-python-will-remain-undisputed-for-the-next-decade-79002a84345b


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-10-31 09:003350
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 492.7 次阅读, 收获喜欢 1966 次。

关注

评论 2 条评论

发布
用户头像
Python还是适合特定领域比如科学计算和脚本工具, 但是用来写web和高并发就有点赶鸭子上架了.
2020-11-16 17:46
回复
用户头像
Python 是世界上最好的语言,没有之一!
2020-10-31 09:44
回复
没有更多了
发现更多内容

GIS数据漫谈(五)— 地理坐标系统

ThingJS数字孪生引擎

Spring Cloud 架构

Damon

7月月更

兆骑科创海内外引进高层次人才,创新创业项目对接

兆骑科创凤阁

美团到餐“祖传数仓”标准化治理笔记

老猎人

收藏!0 基础开源数据可视化平台 FlyFish 大屏开发指南

云智慧AIOps社区

大前端 低代码 开源项目 数据可视化工具 开源推荐

2022年金三银四Java面试宝典,横扫春招+社招+秋招

程序员啊叶

Java 编程 程序员 架构 java面试

技术实践干货 | 初探大规模 GBDT 训练

观远数据

人工智能 机器学习

4 轮拿下字节 Offer,面试题复盘

程序员啊叶

Java 编程 程序员 架构 java面试

人工智能发展到什么阶段了,产生“自主情感”可能吗?

燕陈华

人工智能 深度学习 卷积神经网络

x-sheet 开发教程:初始化配置自定义布局

OpenHacker

Excel x-sheet sheet spreadsheet

美团二面:为什么Redis会有哨兵?

王小凡

Java redis 编程 程序员 开发

Redis网红高频面试题三连:缓存穿透?缓存击穿?缓存雪崩?

程序员啊叶

Java 编程 程序员 架构 java面试

浅谈AI深度学习的模型训练和推理

GVision

细数国产接口协作平台的六把武器!

Liam

开发 Postman API 接口开发 前后端协作

1000个字带你一次性搞懂JavaAgent技术,反正我是彻底服了

程序员啊叶

Java 编程 程序员 架构 java面试

【微信小程序】项目实战—抽签应用

flow

签约计划第三季

2022备战秋招10W字面试小抄pdf版,附操作系统、计算机网络面试题

程序员啊叶

Java 编程 程序员 架构 java面试

带来高价值用户体验的低代码开发平台

力软低代码开发平台

C语言怎么学?这篇文章给你完整答案

图灵教育

C语言

面试好难啊!蚂蚁金服的六轮面试我是强撑过来!差点OUT(面试复盘)

程序知音

Java 阿里 程序员面试 BAT面试题 八股文

低代码实现探索(四十五)业务参数

零道云-混合式低代码平台

字节跳动Java研发面试99题(含答案):JVM+Spring+MySQL+线程池+锁

程序知音

Java 字节 程序员面试 后端技术 八股文

施耐德电气、欧莱雅等企业巨头如何开放式创新?DEMO WORLD世界创新峰会揭秘

创业邦

怎么会不喜欢呢,CI/CD中轻松发送邮件

Jianmu

持续集成 低代码 邮件 通知

建木持续集成平台v2.5.2发布

Jianmu

持续集成 低代码 CI/CD gitops

图的遍历的定义以及深度优先搜索和广度优先搜索(二)

乔乔

7月月更

如何对话CIO/CTO

凌云Cloud

销售 企业管理系统 CIO To B业务

从存储角度看自动驾驶必经之路

焱融科技

人工智能 自动驾驶 存储 文件存储 分布式文件存储

技术分享| 快对讲综合调度系统

anyRTC开发者

音视频 指挥调度 快对讲 语音对讲 视频对讲

搞定RocketMQ这二十三点,大厂面试稳了

王小凡

Java 数据库 程序员 面试 大厂面试

如何查看蓝牙耳机的蓝牙版本

贾献华

7月月更

下一个十年,Python的“王者”地位还保得住吗?_AI&大模型_Bharath K_InfoQ精选文章