赣州新闻网

首页 / 科技

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

2020-04-03 · 赣州新闻网 · 科技

即使未来几年需求量很大

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

Python has served us well — but will it last? Photo by David Clode on Unsplash

编程社区花了几十年才意识到Python。 但是自2010年初以来,它一直在蓬勃发展-并最终超过了C,CZ D V i 5 D J O#,Java和JavaScript。C = y G W

但是直到这种趋势R g n将持续到何时? Python最终何时会被其他语言取代,为什么y D }?

在Python上指定确切的到期日期将是很多猜测,它可能会像科幻小说一样过去。 相反,我将评估目前正在促进Pq w R r v l n 7 ]yR d ` 1 j h _ n欢,真的很慢。 平均而言,使用Python完成任务所需的时间比使用任何其他语言大约要长2–10倍。

有多? c X f ( g N种原因。 其中之一是它是动态类型的-请记住,您不需要像其他语言一样指定数据x x 7类型。 这意味着需要使用大量内存,因为程序需要为在任? , ^ s 7 c )何情况下都可o k y +以工作的每个变量保留v W T足够的空间。 而且大量的内存使用量转化为大量的计算时间。

另一个原因是Python一次只能执行一个任6 ? y务。 这是灵活的数据类型的结果-Python需要确保每个变量只有一个数据类型,并且并q ! #行进程可能会将其弄乱。

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

但归根结底,所有速度问题都无关紧要。 电脑和服务& q @ k $ t s器的价格如此便宜,以至于a x ` D o = L D i我们谈论的只是几分之, i Q k z {一秒。 最终用户并不真正在乎他们的应用是在0.001e X d % ! b +代编程语言都使用静态作用域。

PythonH M R 1 7 k k f )试图过渡到静态作用域,但搞砸了。E F j T C 通常,内部范围(例如函t | 5 9 X j数中的函数)e 3 l * ? K T将能够查看和更改外部范围。 在Python中,内部范围只能看到外部范围,而不能更改它们。 这y s # t # J 5 (导致很多混乱。

Lambdas

尽管Python具有所有灵活性,但Lambda- f es的使用还是有一, [ 4 z 7 ?定的局限性。 Lambda只能是Pyo s X =thon中的表达式,而不能是语句。

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

表达式和语句之间的区别相当随意,在8 Q l ` h A - Y其他语言中则没有。

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

Whitespaces make code more readable, but less- V ` + ~ 2 w h maintainabl# D 7 t E f 4 1e. Photo by Irvay x Nn Smith on Unsplash


空格

在Python中,您使用空格和缩进来指示不同级 y %,但它使代码更具可维护性。 对于较大的项目,这会有用得多。

像Haskn z S Pell这样的较新的语言解决了这个问题:它们依靠空格,但是为那些希望不用空格的人提供了另一种语法。

移动开发

目睹了从台式机向智能手机的转变,很明显,我们需要强大的语言来构建移动软件。

但是用Python开发的移动应用程序l k V C | { y并不多。 这并不意味着它无法完成-为此,有一个名为Kivy的Python包。

但是Python并不5 # L是考虑到移动设备y M D 5 + M H的。 因此,即使对于基本任务可能会产生合格的结果,但最好的选择是使用为移动应用程序开发而创建的语言。 一些广泛使用的移动编程框架包括React Native,Flutter,Iconic& O { 5 ) ~ 4和Cor* l o H ` dova。

运行时错误

首先不编译Python脚本,然$ # j e q n z H后执行。 相反,它每次执行时都会编译,因此任何编码错误都会在运行时显示出来。 这l 4 H $ N ~ H K H会D ; y导致性能下降,时间浪费以及需要进行大量测试。 像,很多测试。

这对初学者非常有用,因为测试可以教给他们很多。 但是对于经验丰富的开发人员而言,必须使用Python调试复杂的程序会使他们出问题。 性能的不足是在Python上设置时间戳的最大因素。

将来什么时候可以取代Python?

编程语言市场上有一些新的竞争者:

Rust提供了与Python相同的安全性-不会意外覆盖任何变量。 但是,它通过所有权和借款的概念解决了绩效问题。 根据StackOverflow Insights的说法,它也是近几年最受欢迎的编程语言。

GQ 2 l = | .o非常适合像Pyt] s n R P #hon这样的# n x P [ M u初学者。 它是如此简单,以至于维护代码甚至更加容M H t @量所示,但所N : A Q有这些标签的趋势都很明显:向上。

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

Sn1 T q V 7 9 Tapshot of tags on varioup y , t | $ zs programming languages on StackOverflowF $ 3 Q.


考虑到目前Python的无处不在,要用这些新语言中的任何一种来取代它肯定要l 2 c m z / Y ? 0花上半年的时间,甚至可能是整个时间。

在这一点上很难说它将是哪种语言-Rust,Go,Julia或未来的新语言。 但是考虑到Python体系结构中最基本的性能问题,将不可避免地引起人们的关注。

(本G O p S n 7 Y文翻译自Rhea Moutafis的文t | 1 } {章《Why Python is not the programming language of the future》,参考:https://towardsdatascience.com/whG M I , m f 8y-python-is-not-the-programming-language-of-E e ) B F ythe-future-30ddc5339b66)

测试确保项目发展工作需求语言编程语言本地新闻