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)

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

    关注

    9

    文章

    1879

    浏览量

    33212
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83477
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    Python夺冠!GitHub 2023年度编程语言排行榜

    2023 年,Python 仍然是使用 GitHub 的开发者中最受欢迎的选择之一,占据了几乎 18% 的份额,在所有编程语言中保持领先地位,连续第四年增长 0.5%,巩固了其作为最受欢迎语言
    的头像 发表于 12-18 14:51 1976次阅读
    <b class='flag-5'>Python</b>夺冠!GitHub 2023年度<b class='flag-5'>编程</b><b class='flag-5'>语言</b>排行榜

    python语言特点有哪些

    Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它具有许多独特的特点,这些特点使得Python在软件开发领域变得非常流行。以下是关于
    的头像 发表于 11-29 14:29 463次阅读

    Python编程语言属于什么语言

    Python编程语言属于高级编程语言中的一种。它是一种通用、面向对象、解释型编程
    的头像 发表于 11-22 14:31 656次阅读

    谈谈那些逐渐消失的编程语言

    技术不断演进,我们使用的编程语言也不例外。随着人工智能的日益普及以及它对这些语言的使用方式的影响,我们更加关注哪些语言将在未来与我们同在,哪
    发表于 09-27 11:03 300次阅读

    Python编程实用指南

    Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过 Python 编程,我们能够解决现实生活中的很多任务。本书是一本面向实践的
    发表于 09-27 06:21

    人工智能用哪种语言

    Python是一种简单易学的高级编程语言,它因其简介、易读性高、动态类型、面向对象以及良好的测试支持而逐渐成为了人工智能领域的主流
    的头像 发表于 08-14 15:22 1075次阅读

    人工智能需要什么编程语言

    Python是最流行的人工智能编程语言之一。它是一种高级语言,它的语法简单易学,容易上手。Python拥有众多的第三方库和工具,如Tenso
    的头像 发表于 08-13 13:56 1236次阅读

    python为什么适合人工智能

    Python是一种高级编程语言,设计时为了容易学习和使用。这意味着开发人员能够轻松入门,并能快速实现解决方案。这使Python成为了一种非常
    的头像 发表于 08-13 10:34 975次阅读

    人工智能学什么编程语言

    人工智能学什么编程语言 人工智能是科技领域中最具前景的领域之一。自20世纪50年代以来,人工智能已经取得了长足的进步。然而,为了让人工智能更加智能化,语言成为了一种非常关键的要素。因
    的头像 发表于 08-12 17:44 487次阅读

    Go能取代Python成为开发者的首选语言吗?

    过去的很多年,Python是人工智能和数据科学领域最受欢迎的编程语言。5G时代来临后,Python有点「力不从心」......Python
    发表于 08-03 10:11 306次阅读
    Go能取代<b class='flag-5'>Python</b><b class='flag-5'>成为</b>开发者的首选<b class='flag-5'>语言</b>吗?

    2023年受欢迎8款编程语言排名:Python 第二

    根据DevJobsScanner发布的报告,2023年度(从2022年1月到2023年5月)需求量最大的编程语言数据显示,JavaScript、Python和Java仍然是职场上备受欢迎的编程
    的头像 发表于 07-28 17:57 4554次阅读

    如何使用Python编程语言和ADALM2000创建虚拟示波器

    本文旨在演示用户如何使用ADI ADALM2000和简单的开源编程语言Python开发所需的虚拟实验室仪器。
    的头像 发表于 07-13 16:39 728次阅读
    如何使用<b class='flag-5'>Python</b><b class='flag-5'>编程</b><b class='flag-5'>语言</b>和ADALM2000创建虚拟示波器