当前位置: 首页 > 后端技术 > Python

Python未来会被取代吗?

时间:2023-03-26 01:06:32 Python

开发者社区花了几十年的时间才领略到Python的魔力。但自2010年代初以来,Python一直蓬勃发展,最终在流行度上超过了C、C#、Java和JavaScript。但这种趋势会持续多久?Python何时最终会被其他编程语言取代?为什么要更换?准确预测那个时间会在什么时候到来可能听起来像科幻小说。本文将阐明使Python流行的优势,以及将来会打败它的弱点。1.是什么让Python现在如此受欢迎Python的成功反映在StackOverflow趋势中,该趋势衡量平台上帖子中的主题标签数量。鉴于StackOverflow的规模,它是一种编程语言受欢迎程度的良好指标。虽然R语言在过去几年停滞不前,许多其他编程语言也在稳步下降,但Python的增长似乎势不可挡。StackOverflow上近14%的问题都带有“Python”标签,而且这个趋势还在上升。这有几个原因:它是自1990年代以来就存在的旧Python。这不仅意味着它有足够的时间成长,而且还得到了庞大的社区支持。因此,如果您在使用Python进行编码时遇到问题,很可能可以通过Google搜索来解决。这是因为有人已经遇到了与您相同的问题并注意到了一些有效的方法。它不仅对初学者友好,而且已经存在了几十年,让程序员有时间编写好的教程。更重要的是,Python的语法非常容易理解。首先,不需要指定数据类型。您只需声明一个变量;Python将从上下文中理解它是整数、浮点数、布尔值还是其他。这对初学者来说是一个巨大的优势。如果您曾经用C++编程过,您就会知道如果您的程序仅仅因为您将浮点数换成整数而无法编译,那将是多么令人沮丧。如果你曾同时阅读过Python和C++代码,你就会知道Python是多么容易理解。尽管C++在设计时考虑到了英语,但与Python代码相比,它的阅读难度相当大。它的多功能性由于Python已经存在了很长时间,开发人员已经为每一种潜在需求制作了软件包。现在,您几乎可以找到用于任何目的的软件包。想要计算数字、向量和矩阵?NumPy正是您要找的。想做技术和工程计算?请使用SciPy。想在数据处理和分析方面做大做强?然后试试熊猫。想从人工智能入手?那么为什么不使用Scikit-Learn呢?无论你要做什么样的计算任务,都有对应的Python包。这让Python始终处于发展的最前沿,从过去几年机器学习的火热浪潮中就可以看出这一点。2.Python的缺点以及这些缺点是否会致命根据前面的阐述,可以想象Python在未来几年将继续蓬勃发展。然而,与所有技术一样,Python也有其弱点。我将逐一分析最重要的缺陷,并评估它们是否会致命。速度Python很慢。真的,真的,真的很慢。平均而言,使用Python完成一项任务所需的时间是任何其他编程语言的2-10倍。这件事情是由很多原因导致的。其中之一是它是动态类型的,请记住,您不需要像其他编程语言那样指定数据类型。这意味着需要使用大量的内存,因为程序需要为它在任何情况下都能工作的每个变量预留足够的空间,大量的内存使用意味着大量的计算时间。另一个原因是Python一次只能执行一个任务。这是采用灵活数据类型的结果:Python需要确保每个变量只有一种数据类型,而并行化过程可能会搞砸这一点。相比之下,典型的Web浏览器可以同时运行十几个不同的线程。此外,还有一些其他的理论。但归根结底,这些速度问题都不重要。计算机和服务器已经变得如此便宜,以至于我们谈论的是几分之一秒。事实上,最终用户并不关心他们的应用程序加载时间是0.001秒还是0.01秒。作用域最初,Python的作用域是动态的。这基本上意味着,为了计算表达式,编译器首先搜索当前块,然后依次搜索所有调用函数。这就是为什么大多数现代编程语言都使用静态作用域的原因。Python试图过渡到静态作用域,但搞砸了。通常,内部作用域(例如函数中的函数)能够查看和更改外部作用域。但是在Python中,内部作用域只能看到外部作用域,而不能改变外部作用域,这会导致很多混乱。Lambdas尽管Python非常灵活,但Lambdas的使用非常有限。Lambda在Python中只能是表达式,不能是语句。另一方面,变量声明和语句始终是语句。这意味着Lambda不能与它们一起使用。表达式和语句之间的这种区别是相当随意的,在其他编程语言中不存在。在Python中,您可以使用空格和缩进来指示不同级别的代码。这使得它在视觉上更吸引人并且更直观地理解。其他编程语言,例如C++,更多地依赖花括号和分号。虽然这可能在视觉上不吸引人或对初学者不友好,但它使代码更易于维护。对于较大的项目,此方法更有用。Haskell等较新的语言解决了这个问题:它们依赖于空格,但为那些希望不用它的人提供了一种替代语法。移动开发我们正在见证从台式电脑到智能手机的转变,很明显我们需要强大的语言来开发移动软件。但是使用Python开发的移动应用程序并不多。不过,这并不意味着它无法完成——有一个名为Kivy的Python包专门用于开发移动应用程序。但是Python并不是为移动开发而设计的。因此,即使它可能对基本任务产生平庸的结果,您最好的选择还是使用专为移动开发而创建的编程语言。一些广泛使用的移动编程框架包括ReactNative、Flutter、Iconic和Cordova。需要明确的是,笔记本电脑和台式机应该会存在很多年。然而,由于移动设备上的流量早已超过台式机,可以肯定地说,学习Python不足以成为经验丰富的全能开发人员。运行时错误Python脚本在执行前未编译。相反,它会在每次执行时编译,因此任何编码错误都会在运行时出现。这会导致性能不佳,需要很长时间,并且需要进行大量测试。例如,很多很多测试。这对初学者特别有用,因为测试可以教会他们很多东西。但对于有经验的开发人员来说,不得不在Python中调试复杂的程序可能会导致他们犯错误。这种性能不足是在Python上设置时间戳的最大因素。3、未来什么时候、谁会取代Python?编程语言市场出现了几个新的竞争者:(1)。Rust提供与Python相同的安全性,不会意外覆盖任何变量。但是,它解决了所有权和借用方面的性能问题。根据StackOverflowInsights的数据,Rust也是过去几年最流行的编程语言。(2).Go非常适合像Python这样的初学者。它是如此简单,以至于维护代码要容易得多。有趣的事实:Go开发人员是市场上收入最高的程序员之一。(3).Julia是一种非常新的编程语言,可以与Python竞争。它填补了大规模技术计算的空白:通常,人们会使用Python或Matlab,然后用大规模需要的C++库修补整个程序。现在,一个人可以使用Julia,而不是同时使用两种编程语言。虽然市场上还有其他编程语言,但Rust、Go和Julia是修补Python薄弱部分的编程语言。所有这些语言都在未来技术方面表现出色,尤其是在人工智能领域。尽管它们的市场份额仍然很小,但从StackOverflow标签的数量可以看出,它们都呈现出明显的趋势:向上。以目前Python无处不在的流行程度来看,这些新语言中的任何一种都需要五年,甚至“一生”的时间才能取代它。哪种编程语言将取代Python、Rust?去?茱莉亚?或者它是未来的一种新语言?现在很难说。但鉴于Python架构中最基本的性能问题,其中一种语言将不可避免地找到自己的位置。本次分享到此结束~以下是我的部分资料~有兴趣的读者可以私聊获取~