外链论坛

 找回密码
 立即注册
搜索
查看: 34|回复: 1

为么 Python 不是将来的编程语言?

[复制链接]

2934

主题

1万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99099344
发表于 2024-8-17 08:03:49 | 显示全部楼层 |阅读模式

Python 此刻如此火热,已发展作为一种非常通用的语言,无论是从入门级选手到专业技术数据挖掘、科学计算、图像处理、人工智能,Python 都能够胜任。它会是将来的编程语言吗?它是完美无缺的编程语言吗?有人发出了区别的声音。此前,InfoQ 中文站曾编译过关联文案,今天,咱们翻译并分享了 Rhea Moutafis 对 Python 的看法,权当一家之言吧!

编程社区花了几十年的时间才领略到 Python 迷人之处。但自 2010 年初败兴,Python 就始终在蓬勃发展,并最后在受欢迎程度上超越了 C、C#、Java 和 JavaScript。

但这种趋势还会连续到什么时候呢?什么时候 Python 最后会被其他编程语言所取代?为何会被取代?

要给 Python 设定一个确切的“死期”可能是一个很大的猜测。它可能会像科幻小说同样。相反,我在本文中,将阐述 Python 哪些受欢迎的优点,以及将来会打败它的弱点。

是什么让 Python 此刻如此流行

Python 的成功提此刻 Stack Overflow 趋势上,该趋势衡量平台上帖子中的标签数量。鉴于 Stack Overflow 的规模,因此呢它是编程语言受欢迎程度的一个很好的指标。

Stack Overflow 上各样编程语言的标签快照。

尽管 R 语言在过去几年里始终处在停滞不前的状态,况且许多其他编程语言在稳步下降,但 Python 的增长似乎势不可挡。几乎所有 Stack Overflow 上的问题有 14% 被标记为“Python”,况且这一趋势还在提升

这其中有几个原由

它是古老的

Python 早在 20 世纪 90 年代就显现了。这并不仅寓意着它有充足的时间来成长,它还得到了一个庞大的支持社区。

因此呢倘若你在用 Python 编写代码遇到了什么问题,你特别有可能经过 Google 搜索一下就能处理。这是由于有人已然遇到过和你同样的问题,并记下了有些有用的东西。

它对初学者很友好

这不仅是事实,由于已然存在了几十年,让程序员得以有时间来编写优秀的教程。更重要的是,Python 的语法非常易于理解。

首要,无需指定数据类型。你只需声明一个变量就可;Python 将会从上下文中理解它是整数、浮点值、布尔值还是其他值。这对初学者来讲,是一个巨大的优良倘若你曾经运用 C++ 进行编程的话,你就会晓得你的程序没法经过编译是多么令人懊丧,仅仅只是由于你将浮点数换成为了整数。

倘若你曾经同期阅读过 Python 和 C++ 代码,你就会晓得 Python 有多么容易理解。尽管 C++ 在设计时思虑到了英语,但与 Python 代码相比,它的阅读还是相当困难。

它的用途广泛

因为 Python 已然存在了如此久的时间,研发人员已然各样潜在需求制作了软件包。此刻,你能够找到几乎所有用途的软件包。

想要计算数字、向量和矩阵吗?NumPy 便是你要找的东西。

想要做技术和工程方面的计算吗?请运用 SciPy

想在数据处理和分析方面做大吗?那就试试 Pandas 吧。

想从人工智能起始吗?那为何运用 Scikit-Learn 呢?

无论你想做哪种计算任务,都有相应的 Python 软件包。这使得 Python 始终处在发展前沿,从过去几年设备学习的火热的浪潮中能够看出来。

Python 的缺点以及这些缺点是不是会致命

基于前面的阐述,你能够想象 Python 在将来几年仍将兴盛不衰。然则,像所有的技术同样,Python 有它的弱点。我将一一介绍最重要的缺陷,并评定这些缺陷是不是致命。

速度

Python 很慢。真的,非常非常慢。平均而言,运用 Python 完成一项任务所需的时间,是任何其他编程语言的 2~10 倍。

导致这种状况原由非常多。其中之一是,它是动态类型的,记住,你不必须像在其他编程语言那样指定数据类型。这寓意必须运用海量的内存,由于程序必须为它在任何状况下都能工作的每一个变量预留足够的空间。况且海量的内存运用寓意海量的计算时间。

另一个原由是,Python 一次只能执行一个任务。这是灵活数据类型的结果:Python 必须保证每一个变量仅有一种数据类型,而并行化的进程可能会弄乱这一点。

相比之下,通常的 Web 浏览器能够同期运行十几个区别的线程。另外,还有其他有些理论。

但说到底,这些速度问题都无关紧要。计算机和服务器已然变得如此便宜,以至于咱们谈论的只是几分之一秒的时间。实质上,最后用户并不在乎她们的应用程序是在 0.001 秒还是 0.01 秒内加载的。

功效

最初,Python 的功效域是动态的。这基本上寓意着,要计算表达式,编译器首要搜索当前块,而后依次搜索所有调用函数。这便是都数现代编程语言运用静态功效域的原由

Python 曾试图过渡到静态功效域,但搞砸了。一般状况下,内部功效域(例如函数中的函数)能够查看和更改外边功效域。但在 Python 中,内部功效域只能看到外边功效域,而不可改变它们,这就引起非常多混乱的情形。

Lambda

尽管 Python 拥有所有的灵活性,但 Lambda 的运用还是相当受限的。Lambda 只能是 Python 中的表达式,不可是语句。

另一方面,变量声明和语句始终是语句。这寓意着 Lambda 并不可用于它们。

表达式和语句之间的这种区别是相当随意的,在其他编程语言中并不会存在。

空白使代码的可读性更强,但可守护性却更低了。

在 Python 中,你能够运用空格和缩进来暗示不同级别的代码。这使得它在视觉上拥有吸引力,理解起来更直观。

其他编程语言,如 C++,则更加多地依赖花括号和分号。尽管这可能在视觉上不足吸引人,对初学者不太友好,然则它使代码更易于守护针对很强的项目,这个办法更有用。

像 Haskell 这般的新语言处理了这个问题:它们依赖于空格,但为哪些期盼运用空格的人供给了另一种语法。

移动研发

咱们正在见证从台式计算机到智能手机的转变,很显著咱们必须强大的语言来研发移动软件。

运用 Python 研发的移动应用并不多。不外,这并不寓意着它做不到 — 有一个名为 Kivy 的 Python 软件包便是专门用于研发移动应用的。

然则 Python 在设计时并没有思虑到移动研发因此呢,即使它可能会为基本任务产生差强人意的结果,你最好的选取运用一种专为移动研发而创建的编程语言。有些广泛运用的移动编程框架包含 React Native、Flutter、Iconic 和 Cordova。

必须知道的是,笔记本计算机和台式计算机应该会在将来非常多年里继续存在。然则因为移动设备的流量早已超过台式计算机,因此能够肯定地说,学会 Python 并不足以作为经验丰富的全能研发人员。

运行时错误

Python 脚本不是先编译后执行的。相反,它会在每次执行时编译,因此呢,任何编码错误都会在运行时表示出来。这会引起性能差、耗时长,并且必须进行海量测试。例如非常多非常多测试。

尤其适合初学者,由于测试能够教会她们非常多东西。然则针对经验丰富的研发人员来讲必要用 Python 调试繁杂的程序会让她们出错。这种性能的缺乏是在 Python 上设置时间戳的最大原因

将来何时,谁将取代 Python?

在编程语言市场上有几个新的竞争对手:

Rust供给了与 Python 一样的安全性,任何变量不会被意外覆盖。然则,它用所有权(ownership)和借用(borrowing)处理了性能问题。按照 Stack Overflow Insights 的统计,Rust 是过去几年来最受欢迎的编程语言。Go针对 Python 这般的初学者来讲很棒。它是如此简单,以至于守护代码更加容易了。有趣的是:Go 研发人员是市场上收入最高的程序员之一。Julia是一门非常新的编程语言,能够与 Python 一较高下。它填补了大规模技术计算的空白:一般状况下,人们会运用 Python 或 Matlab,而后用 C++ 库来修补全部程序,这在大规模应用时是必需的。此刻,人们能够运用 Julia,而不是同期运用两种编程语言。

虽然市场上还有其他编程语言,Rust、Go 和 Julia 是修补了 Python 薄弱部分的编程语言。所有这些语言在将来的技术上表现出色,尤其是在人工智能行业。虽然它们的市场份额仍然很小,但从 Stack Overflow 标签的数量能够看出,它们的趋势都很显著提升

StackOverflow 上各样编程语言标签快照。

鉴于日前 Python 已无处不在的流行程度,这些新语言中的任何一门想要取代它,肯定要花上五年的时间,乃至终其“一辈子”。

到底会是哪一门编程语言将取代 Python,是 Rust?Go?Julia?抑或是将来的一门新语言?此刻还很难说。然则鉴于 Python 架构中的最基本的性能问题,这些语言中的一门将会不可避免地占据一席之地。

关注我并转发此篇文案,私信我“领取资料”,就可免费得到InfoQ价值4999元迷你书!

回复

使用道具 举报

11

主题

801

回帖

7

积分

新手上路

Rank: 1

积分
7
发表于 2024-9-8 18:48:46 | 显示全部楼层
请问、你好、求解、谁知道等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-19 04:25 , Processed in 0.064193 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.