0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么Python无法成为未来主流的编程语言

独爱72H 来源:InfoQ 作者:佚名 2020-04-13 14:48 次阅读

(文章来源:InfoQ)

Python 现在如此火爆,已发展成为一种非常通用的语言,无论是从入门级选手到专业威廉希尔官方网站 数据挖掘、科学计算、图像处理、人工智能,Python 都可以胜任。它会是未来的编程语言吗?它是完美无缺的编程语言吗?有人发出了不同的声音。此前,InfoQ 中文站曾编译过相关文章,今天,我们翻译并分享了 Rhea Moutafis 对 Python 的看法,权当一家之言吧!

编程社区花了几十年的时间才领略到 Python 迷人之处。但自 2010 年初以来,Python 就一直在蓬勃发展,并最终在受欢迎程度上超越了 C、C#Java 和 JavaScript。但这种趋势还会持续到什么时候呢?什么时候 Python 最终会被其他编程语言所取代?为什么会被取代?

要给 Python 设定一个确切的“死期”可能是一个很大的猜测。它可能会像科幻小说一样。相反,我在本文中,将阐述 Python 那些受欢迎的优点,以及将来会打败它的弱点。Python 的成功提现在 Stack Overflow 趋势上,该趋势衡量平台上帖子中的标签数量。鉴于 Stack Overflow 的规模,因此它是编程语言受欢迎程度的一个很好的指标。

尽管 R 语言在过去几年里一直处于停滞不前的状态,而且许多其他编程语言也在稳步下降,但 Python 的增长似乎势不可挡。几乎所有 Stack Overflow 上的问题有 14% 被标记为“Python”,而且这一趋势还在上升。Python 早在 20 世纪 90 年代就出现了。这并不仅仅意味着它有充足的时间来成长,它还得到了一个庞大的支持社区。

因此,如果你在用 Python 编写代码遇到了什么问题,你很有可能通过 Google 搜索一下就能解决。这是因为有人已经遇到过和你一样的问题,并记下了一些有用的东西。这不仅是事实,因为它已经存在了几十年,让程序员得以有时间来编写优秀的教程。更重要的是,Python 的语法非常易于理解。

首先,无需指定数据类型。你只需声明一个变量即可;Python 将会从上下文中理解它是整数、浮点值、布尔值还是其他值。这对初学者来说,是一个巨大的优势。如果你曾经使用 C++ 进行编程的话,你就会知道你的程序无法通过编译是多么令人沮丧,仅仅只是因为你将浮点数换成了整数。

如果你曾经同时阅读过 Python 和 C++ 代码,你就会知道 Python 有多么容易理解。尽管 C++ 在设计时考虑到了英语,但与 Python 代码相比,它的阅读还是相当困难。由于 Python 已经存在了如此久的时间,开发人员已经为各种潜在需求制作了软件包。现在,你可以找到几乎所有用途的软件包。

无论你想做哪种计算任务,都有相应的 Python 软件包。这使得 Python 一直处于发展前沿,从过去几年机器学习的火热的浪潮中可以看出来。基于前面的阐述,你可以想象 Python 在未来几年仍将兴盛不衰。但是,像所有的威廉希尔官方网站 一样,Python 也有它的弱点。我将一一介绍最重要的缺陷,并评估这些缺陷是否致命。

为什么Python无法成为未来主流的编程语言

Python 很慢。真的,非常非常慢。平均而言,使用 Python 完成一项任务所需的时间,是任何其他编程语言的 2~10 倍。造成这种情况的原因有很多。其中之一是,它是动态类型的,记住,你不需要像在其他编程语言那样指定数据类型。这意味着需要使用大量的内存,因为程序需要为它在任何情况下都能工作的每个变量预留足够的空间。而且大量的内存使用意味着大量的计算时间。

另一个原因是,Python 一次只能执行一个任务。这是灵活数据类型的结果:Python 需要确保每个变量只有一种数据类型,而并行化的进程可能会弄乱这一点。相比之下,一般的 Web 浏览器可以同时运行十几个不同的线程。此外,还有其他一些理论。

但说到底,这些速度问题都无关紧要。计算机和服务器已经变得如此便宜,以至于我们谈论的只是几分之一秒的时间。实际上,最终用户并不在乎他们的应用程序是在 0.001 秒还是 0.01 秒内加载的。最初,Python 的作用域是动态的。这基本上意味着,要计算表达式,编译器首先搜索当前块,然后依次搜索所有调用函数。这就是大多数现代编程语言使用静态作用域的原因。

Python 曾试图过渡到静态作用域,但搞砸了。通常情况下,内部作用域(例如函数中的函数)能够查看和更改外部作用域。但在 Python 中,内部作用域只能看到外部作用域,而不能改变它们,这就导致了很多混乱的情形。尽管 Python 具有所有的灵活性,但 Lambda 的使用还是相当受限的。Lambda 只能是 Python 中的表达式,不能是语句。

另一方面,变量声明和语句始终是语句。这意味着 Lambda 并不能用于它们。表达式和语句之间的这种区别是相当随意的,在其他编程语言中并不会存在。空白使代码的可读性更强,但可维护性却更低了。在 Python 中,你可以使用空格和缩进来表示不同级别的代码。这使得它在视觉上具有吸引力,理解起来也更直观。

其他编程语言,如 C++,则更多地依赖花括号和分号。尽管这可能在视觉上不够吸引人,对初学者也不太友好,但是它使代码更易于维护。对于较大的项目,这个方法更有用。像 Haskell 这样的新语言解决了这个问题:它们依赖于空格,但为那些希望不使用空格的人提供了另一种语法。我们正在见证从台式计算机到智能手机的转变,很明显,我们需要强大的语言来开发移动软件。

但使用 Python 开发的移动应用并不多。不过,这并不意味着它做不到 — 有一个名为 Kivy 的 Python 软件包就是专门用于开发移动应用的。但是 Python 在设计时并没有考虑到移动开发。因此,即使它可能会为基本任务产生差强人意的结果,你最好的选择是使用一种专为移动开发而创建的编程语言。一些广泛使用的移动编程框架包括 React Native、Flutter、Iconic 和 Cordova。

需要明确的是,笔记本计算机和台式计算机应该会在未来很多年里继续存在。但是,由于移动设备的流量早已超过台式计算机,所以可以肯定地说,学会 Python 并不足以成为经验丰富的全能开发人员。Python 脚本不是先编译后执行的。相反,它会在每次执行时编译,因此,任何编码错误都会在运行时显示出来。这会导致性能差、耗时长,并且需要进行大量测试。比如,很多很多测试。

这特别适合初学者,因为测试可以教会他们很多东西。但是对于经验丰富的开发人员来说,必须用 Python 调试复杂的程序会让他们出错。这种性能的缺乏是在 Python 上设置时间戳的最大因素。鉴于目前 Python 已无处不在的流行程度,这些新语言中的任何一门要想取代它,肯定要花上五年的时间,甚至终其“一生”。

究竟会是哪一门编程语言将取代 Python,是 Rust?Go?Julia?抑或是未来的一门新语言?现在还很难说。但是鉴于 Python 架构中的最基本的性能问题,这些语言中的一门将会不可避免地占据一席之地。
(责任编辑:fqj)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1942

    浏览量

    34711
  • python
    +关注

    关注

    56

    文章

    4793

    浏览量

    84634
收藏 人收藏

    评论

    相关推荐

    对比Python与Java编程语言

    Python与Java都是目前非常流行的编程语言,它们各有其独特的优势和适用场景。以下是对这两种编程语言的对比: 一、语法和易用性
    的头像 发表于 11-15 09:31 290次阅读

    NPU支持的编程语言有哪些

    NPU(Neural Processing Unit)是一种专门为深度学习和人工智能应用设计的处理器。NPU支持的编程语言通常与它所集成的平台或框架紧密相关。以下是一些常见的编程语言
    的头像 发表于 11-15 09:21 617次阅读

    Python编程:处理网络请求的代理威廉希尔官方网站

    在网络编程中,代理威廉希尔官方网站 扮演着至关重要的角色,尤其在处理网络请求时。通过代理服务器,我们可以实现请求的转发、缓存、负载均衡以及安全控制等功能。Python作为一种功能强大的编程语言,为提
    的头像 发表于 11-12 07:23 185次阅读

    C语言与其他编程语言的比较

    C语言作为一种历史悠久的编程语言,自其诞生以来,一直在软件开发领域扮演着重要角色。它以其高效、灵活和可移植性强的特点,成为了系统级编程的首选
    的头像 发表于 10-29 17:30 265次阅读

    Orin芯片的编程语言支持

    语言支持 Orin芯片支持多种编程语言,以满足不同开发者的需求。其中,C/C++和Python是两种广泛应用的编程
    的头像 发表于 10-27 16:45 274次阅读

    labview是什么编程语言写的

    的一种图形化编程语言。它并不是用传统的文本编程语言(如C++、Python等)编写的,而是采用了一种独特的图形化
    的头像 发表于 09-04 16:00 876次阅读

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其
    的头像 发表于 08-01 15:27 1902次阅读

    Python建模算法与应用

    Python作为一种功能强大、免费、开源且面向对象的编程语言,在科学计算、数学建模、数据分析等领域展现出了卓越的性能。其简洁的语法、对动态输入的支持以及解释性语言的本质,使得
    的头像 发表于 07-24 10:41 528次阅读

    Python语言基础2

    电子发烧友网站提供《Python语言基础2.rar》资料免费下载
    发表于 07-17 17:23 1次下载

    opencv-python和opencv一样吗

    的。以下是对OpenCV和OpenCV-Python的比较: 编程语言: OpenCV是一个跨平台的库,支持多种编程语言,如C++、Java
    的头像 发表于 07-16 10:38 1162次阅读

    按照这样学习C语言成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程
    的头像 发表于 07-06 08:04 313次阅读
    按照这样学习C<b class='flag-5'>语言</b>,<b class='flag-5'>成为</b>卷王不是梦!

    PLC编程语言和C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言和C语言各自扮演着重要的角色。尽管两者都是
    的头像 发表于 06-14 17:11 2789次阅读

    教你一招,简化仪器Python编程控制!

    许多行业的工程师都使用自动化来扩展其测试仪器的功能,而大多是选择免费的编程语言——Python来完成。作为适用于自动化的主要编程语言
    的头像 发表于 03-15 14:31 2339次阅读
    教你一招,简化仪器<b class='flag-5'>Python</b><b class='flag-5'>编程</b>控制!

    四种编程语言之间的区别和联系

    编程语言是一种人与计算机之间进行交流的方式,不同的编程语言有着不同的特点和用途。本文将对四种常见的编程
    的头像 发表于 02-05 14:16 1550次阅读

    c语言,c++,java,python区别

    C语言、C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言: C语言
    的头像 发表于 02-05 14:11 2371次阅读