Python这么火为什么说它不是未来的编程语言?.docx

上传人:A*** 文档编号:141375801 上传时间:2020-08-07 格式:DOCX 页数:12 大小:1.79MB
返回 下载 相关 举报
Python这么火为什么说它不是未来的编程语言?.docx_第1页
第1页 / 共12页
Python这么火为什么说它不是未来的编程语言?.docx_第2页
第2页 / 共12页
Python这么火为什么说它不是未来的编程语言?.docx_第3页
第3页 / 共12页
Python这么火为什么说它不是未来的编程语言?.docx_第4页
第4页 / 共12页
Python这么火为什么说它不是未来的编程语言?.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Python这么火为什么说它不是未来的编程语言?.docx》由会员分享,可在线阅读,更多相关《Python这么火为什么说它不是未来的编程语言?.docx(12页珍藏版)》请在金锄头文库上搜索。

1、Python这么火,为什么说它不是未来的编程语言?全文共3729字,预计学习时长6分钟来源:PexelsPython这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在。虽然问世几十年后,Python才得到编程社区的重视。但是,其发展的势头似乎无人能及。自2010年年初以来,Python一直在蓬勃发展在流行趋势方面,它最终超过了C、C#、Java和Javascript,成为计算机语言中的“大热门”。它为人们提供了优质的服务但这样的趋势会持续到什么时候呢?Python何时会被其他语言取代?为什么会这样?关于Python的确切有效期众说纷纭,这些猜测可能会像科幻小说一样荒诞不经。与其猜测,

2、不如评估一下当前促进Python流行的优势,以及未来会阻碍其流行的劣势。是什么让Python在当下如此流行Python的成功体现在Stack Overflow趋势上,该趋势测量了平台上帖子的标签数量。考虑到Stack Overflow的大小,这确实是衡量语言受欢迎程度的良好指标。Stack Overflow上各种编程语言的标签快照尽管R语言在过去几年一直处于平稳状态,而且很多其他语言也处于稳步下降趋势,但Python的增长却似乎势不可挡。在所有的Stack Overflow问题中,几乎有14%被标记上了“python”,而且这种趋势越来越明显。以下是出现这种情况的几个原因:1. 出现时间早Py

3、thon大约诞生于90年代。这不仅意味着它有足够的时间成长,还获得了一个庞大的粉丝群体。所以如果人们在用Python编码时遇到了问题,那么很可能只需用谷歌搜索一下便能解决。这不过是有些人已经遇到了相同的问题,写了一些有助于解决问题的内容而已。2. 适合初学者Python已经存在了数十年,程序员们可利用这段时间写出优质的教程。除此之外,Python的语法也很容易理解。首先,无需指定数据类型。指定变量即可;Python会根据语境判断它是整数、浮点值、布尔值还是其他值。对于初学者来说,这是一个很大的优势。如果是C+语言,那么用浮点值替换整数时,程序将不会进行编译,曾经使用该语言编程的初学者应该对这种

4、情况带来的挫败感深有体会。如果初学者曾经并行阅读过Python和C+代码,那么会明白Python是多么容易理解。即使C+语言在设计时考虑到了英语,但是和Python代码相比,它还是难以看懂。3. 用途广泛Python已经存在了相当长的时间,开发人员们根据不同目的制作出了不同的程序包。现在,几乎所有的东西都能打包。想处理数字、向量和矩阵?Numpy是个好帮手。想对技术和工程进行计算?用Scipy。想在数据处理和分析领域大展身手?试试Pandas。想从人工智能入手?为什么不用Scikit-Learn。无论人们要管理什么样的计算任务,都有可能用到Python程序包。从机器学习在过去几年间的迅猛发展便

5、可看出,自身用途的广泛让Python处于近期发展的前列。Python的缺点以及它们是否致命来源:Pexels根据先前的论述,可以想象Python会在很长一段时间之内保持发展的迅猛势头。但和其他技术一样,Python也有自己的弱点。笔者将一一介绍其最值得关注的缺点,并分析这些缺点是否致命。1. 速度Python的速度很慢。真的很慢。和其他语言相比,Python需要花2-10倍的时间来完成任务。速度慢有多种原因。其中一个原因是Python属于动态类型请记住,无需像其他语言一样指定数据类型。这意味着需要占用大量内存,因为程序需要为那些可在任何情况下运行的变量保留足够的空间。大量的内存占用转化为大量的

6、计算时间。另一个原因是Python一次只能执行一个任务。灵活的数据集会出现这样的结果Python需要确保每个变量只有一个数据类型,平行进程可能会造成混乱。相比之下,普通的网络浏览器一次可以运行十二个不同的线程。还有一些其他的理论。但归根结底,所有的速度问题都无关紧要。电脑和服务器的价格十分便宜,所以人们讨论的只是关于几分之一秒的运行速度。而且终端用户并不在意自己是用0.001秒还是0.01秒加载应用程序。2. 范围起初,Python使用动态作用域。这基本上意味着,为了评估表达式,编译系统首先要搜索当前块,然后依次搜索所有调用函数。动态作用域方面的问题在于,每个表达式都需要在每个可能的语境中进行

7、测试这相当繁琐。这就是大多数现代编程语言都使用静态作用域的原因。Python曾试图过渡到静态作用域,但却造成了混乱。通常情况下,内部作用域比如函数中的函数将能够查看并更改外部作用域。但Python中的内部作用域只能查看外部作用域,却不能对其进行更改。这会导致严重的混乱。3. Lambdas尽管Python具有很高的灵活性,但Lambdas的使用还是有一定的局限性。在Python中,Lambdas只能是表达式,而不能是语句。另一方面,变量声明和语句始终是语句。这意味着Lambdas不能为它们所用。表达式和语句之间的区别相当随意,而其他语言并没有这样的情况。空格让代码更容易看懂,但也让其更难以维护

8、。图源:Unsplash4. 空格Python使用空格和缩进来表示不同级别的代码。这使得代码在视觉上更具有吸引力,能够直观理解。其他语言,比如C+语言,更多使用的是大括号和分号。虽然在视觉上没有什么吸引力,对初学者也并不友好,但这样做让代码更易于维护。对于较大的项目来说,这大有帮助。Haskell这样较新的语言解决了这个问题:该语言多使用空格,但又为那些不想使用空格的人提供了另一种语法。5. 移动开发人们见证了从台式机到智能手机的转变,很明显,人们需要强大的语言来构建移动软件。但正在使用Python进行开发的移动应用软件并不多。这并不意味着用Python进行移动开发无法实现名为Kivy的Pyt

9、hon程序包就可以做到移动开发。但Python并没有考虑到移动设备。所以即使它有可能完成一些基本任务,也最好使用为移动应用程序开发而创建的语言。广泛使用的移动编程框架包括React Native、Flutter、Iconic和Cordova。需要明确的是,在未来的很多年,笔记本和台式机应该都会继续存在。但是,移动设备在通信量方面已远远超越了桌面设备,因此可以肯定地说,想要成为经验丰富的全能型开发人员,只学习Python是不够的。6. 运行错误Python脚本并不是遵循先编译后执行的流程。相反,它在每次执行时进行编译,所以任何编码错误在运行时都会显现出来。这会导致性能下降、浪费时间以及需要进行大

10、量测试。真的是大量的测试。对于初学者来说,这是一件好事,因为他们可以从测试中学到很多。但对于经验丰富的开发人员来说,对Python中的复杂程序进行调试会让他们感到无所适从。性能不佳是在Python上设置时戳的最大原因。什么会在未来取代Python具体是什么时候来源:Pexels编程语言市场上出现了几个新的竞争者: Rust具备与Python相同的安全性不会意外覆盖任何变量。但它通过所有权和借用的概念解决了性能问题。Stack OverflowInsights显示,它还是过去几年当中最受人们喜爱的编程语言。 Go非常适合初学者,就像Python一样。它是如此简单,甚至连维护代码都变得更加容易。有

11、趣的一点是:Go开发人员是市场上收入最高的程序员之一。 Julia是一种非常新的语言,可与Python展开正面竞争。它填补了大规模技术计算的空白:以前,人们通常会使用Python或Matlab,并使用C+库对整个程序进行修补,这一过程在大规模技术计算中是必需的。现在,人们可以使用Julia,而不必费力使用两种语言。虽然市面上还有其他的语言,但Rust、Go和Julia却是弥补了Python弱项的语言。所有这些语言都在尚未投入使用的技术中表现出色,在人工智能领域的表现尤其亮眼。Stack Overflow标签的数量显示,这些语言的市场份额仍然很小,尽管如此,它们未来的上升趋势却显而易见。Stack Overflow上各种编程语言的标签快照目前,Python十分流行,可以说是无处不在,新语言要想取代它,肯定需要五年(甚至可能是十年)的时间。这个时候,很难说会是哪种语言取代Python(Rust、Go、Julia还是未来的某种新语言)。但考虑到Python体系结构中最基本的性能问题,一定会有某种语言取代它的位置。你觉得呢?推荐阅读专题留言点赞发个朋友圈我们一起分享AI学习与发展的干货编译组:周果、李林虹相关链接:https:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号