为什么Python不是未来的编程语言

2021-06-20 03:51:46

它花了一些数十年来欣赏Python。但自2010年初以来,它一直蓬勃发展 - 最终超过C,C#,Java和JavaScript的流行度。

但直到何时趋势继续?什么时候Python最终会被其他语言替换,为什么?

在Python上提出确切的到期日将是如此猜测,它可能像科学小说一样通过。相反,我将评估现在推动Python的流行度的美德,以及将来会破坏它的弱点。

Python的成功反映在堆栈溢出趋势中,测量平台上的帖子中标记的计数。鉴于StackoverFlow的大小,这是语言流行度的一个很好的指标。

虽然r在过去几年中一直是催化,但许多其他语言都在稳步下降,Python的增长似乎是不可阻挡的。近14%的Stackoverflow问题被标记为“Python”,趋势正在上升。而且有几个原因。

蟒蛇自九十年代以来一直存在。这不仅意味着它有足够的时间来增长。它还获得了一个大型和支持的社区。

因此,如果您在Python编码时有任何问题,则可能会使用单个Google搜索来解决它。只是因为有人已经遇到了你的问题并写了一些有帮助的东西。

这不仅是几十年来的事实,为程序员提供了制作辉煌教程的时间。超过这一点,Python的语法非常人性化可读。

对于初学者,无需指定数据类型。你只是声明一个变量; Python将从上下文中了解它是一个整数,浮点值,布尔值或其他东西。这是初学者的巨大优势。如果您曾经在C ++中编程,则会知道您的程序是多么令人沮丧,因为您将浮动为整数交换浮动。

如果您必须并排阅读Python和C ++代码,那么您将知道Python是如何理解的。尽管C ++的设计有英语,但与Python代码相比,它是一个相当困难的读者。

由于Python已经存在这么长时间,开发人员为各种目的制作了包裹。这些天,你可以找到几乎所有东西的包裹。

想要咬合号码,向量和矩阵? numpy是你的家伙。想做技术和工程的计算吗?使用scipy。想要在数据操纵和分析中进行大?给熊猫去吧。想从人工智能开始吗?为什么不使用scikit-learn。

无论您尝试管理的哪项计算任务,机会都在那里有一个Python包。这使得Python能够在最近的发展之上,从过去几年的机器学习浪涌可以看出。

根据以前的详细说明,您可以想象Python将留在SH * T的顶部,以便到达。但像各种技术一样,Python有其缺点。我将逐一经历最重要的缺陷,并评估这些是否致命。

Python很慢。喜欢,真的很慢。平均而言,您需要更长2-10倍才能完成Python的任务,而不是任何其他语言。

有各种原因。其中一个是它是动态类型的 - 请记住,您不需要以其他语言指定数据类型。这意味着需要使用大量内存,因为程序需要为任何情况下工作的每个变量保留足够的空间。许多内存使用量转化为大量的计算时间。

另一个原因是Python一次只能执行一个任务。这是灵活的数据类型的结果 - Python需要确保每个变量只有一个数据类型,并且并行进程可能会混淆。

相比之下,您的普通Web浏览器可以一次运行十几个不同的线程。还有其他一些理论。

但在一天结束时,没有一个速度问题。计算机和服务器已经如此便宜,我们在谈论秒数的分数。最终用户并没有真正关心它们的应用加载0.001或0.01秒。

最初,Python是动态范围的。这基本上意味着,为了评估表达式,编译器首先搜索当前块,然后连续地搜索所有呼叫函数。

动态范围的问题是需要在每个可能的上下文中测试每个表达式 - 这是乏味的。这就是为什么大多数现代编程语言使用静态范围。

Python试图过渡到静态范围,但搞砸了它。通常,内部范围 - 例如在函数中的函数 - 将能够看到和更改外部范围。在Python中,内幕只能看到外部范围,但不会改变它们。这导致了很多混乱。

尽管在Python中具有所有灵活性,但Lambdas的使用情况是相当长的。 Lambdas只能在Python中表达,而不是语句。

另一方面,变量声明和语句始终是语句。这意味着不能为它们使用lambdas。

表达式和陈述之间的这种区别相当任意,并且不会发生在其他语言中。

在Python中,您使用WhiteSpace和缩进来指示不同级别的代码。这使得它是光学吸引力和直观的理解。

其他语言,例如C ++,在括号和分号上依赖更多。虽然这可能无法视觉上吸引人,但它使代码更加可维护。对于更大的项目,这更有用。

哈斯克尔这样的更新语言可以解决这个问题:他们依靠空白,但为那些希望没有的人提供替代语法。

正如我们目睹了从桌面到智能手机的转变,很明显,我们需要强大的语言来构建移动软件。

但没有许多移动应用正在使用Python开发。这并不意味着它无法完成 - 有一个称为KIVY的Python包以此目的。

但蟒蛇不是用手机制作的。因此,即使它可能为基本任务产生可通过的结果,您的最佳选择是使用为移动应用程序开发创建的语言。一些广泛使用的移动编程框架包括反应本地,颤动,标志性和科多瓦。

要清楚,笔记本电脑和台式电脑应该在很多年里到来。但自机以来,由于移动已经超越了桌面流量,因此可以安全地说,学习Python不足以成为经验丰富的全圆形开发人员。

首先未编译Python脚本然后执行。相反,它每次执行它时都会编译,因此任何编码错误都会在运行时表现出来。这导致性能,时间消耗不佳,需要对大量测试的需求。喜欢,很多测试。

这对初学者来说很棒,因为测试教导了很多。但对于经验丰富的开发人员来说,必须在Python中调试一个复杂的程序使他们成为Awry。这种缺乏性能是在Python上设置时间戳的最大因素。

Rust提供了Python的同样的安全性 - 没有变量可能会削弱。但它解决了所有权概念和借贷的绩效问题。根据Stackoverflow Insights的数据,它也是过去几年的最受欢迎的编程语言。

对于像python这样的初学者来说很棒。它非常简单,维护代码更容易。有趣的观点:Go开发人员是市场上最高收入的程序员之一。

朱莉娅是一种非常新的语言,与Python竞争头脑。它填补了大规模技术计算的差距:通常,人们将使用Python或MATLAB,并将整个件事与C ++库修补,这是大规模所必需的。现在,人们可以使用朱莉娅而不是用两种语言玩杂耍。

虽然市场上有其他语言,但是,Rust,Go和Julia是修复Python弱补丁的语言。所有这些语言都在迄今为止的技术中,最重要的是在人工智能中。虽然他们的市场份额仍然很小,所以反映在StackOverflow标签的数量中,但所有这些都是清晰的:向上。

鉴于Python目前的无处不在的普及,它肯定会花半十年,也许是一个整体,对于任何这些新语言来代替它。

它将是 - 生锈,去,朱莉娅或未来新语言的哪种语言 - 此时很难说。但是,鉴于Python架构的基础的性能问题,人们将不可避免地采取现场。

本文是由Rhea Moutafis撰写的,最初发表在数据科学上。你可以在这里阅读它。