nqkk58 发表于 2024-8-17 08:03:49

为么 Python 不是将来的编程语言?


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python <span style="color: black;">此刻</span>如此<span style="color: black;">火热</span>,已发展<span style="color: black;">作为</span>一种非常通用的语言,无论是从入门级选手到专业技术数据挖掘、科学计算、图像处理、人工智能,Python 都<span style="color: black;">能够</span>胜任。它会是<span style="color: black;">将来</span>的编程语言吗?它是完美无缺的编程语言吗?有人发出了<span style="color: black;">区别</span>的声音。此前,InfoQ 中文站曾编译过<span style="color: black;">关联</span><span style="color: black;">文案</span>,今天,<span style="color: black;">咱们</span>翻译并分享了 Rhea Moutafis 对 Python 的看法,权当一家之言吧!</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">编程社区花了几十年的时间才领略到 Python 迷人之处。但自 2010 年初<span style="color: black;">败兴</span>,Python 就<span style="color: black;">始终</span>在蓬勃发展,并<span style="color: black;">最后</span>在受欢迎程度上超越了 C、C#、Java 和 JavaScript。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">但这种趋势还会<span style="color: black;">连续</span>到什么时候呢?什么时候 Python <span style="color: black;">最后</span>会被其他编程语言所取代?<span style="color: black;">为何</span>会被取代?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">要给 Python 设定一个确切的“死期”可能是一个很大的猜测。它可能会像科幻小说<span style="color: black;">同样</span>。相反,我在本文中,将阐述 Python <span style="color: black;">哪些</span>受欢迎的优点,以及将来会打败它的弱点。</p>
    <h2 style="color: black; text-align: left; margin-bottom: 10px;">是什么让 Python <span style="color: black;">此刻</span>如此流行</h2>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python 的成功提<span style="color: black;">此刻</span> Stack Overflow 趋势上,该趋势衡量平台上帖子中的标签数量。鉴于 Stack Overflow 的规模,<span style="color: black;">因此呢</span>它是编程语言受欢迎程度的一个很好的指标。</p>
    <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/9c99a284ef024b6fabc1106effe543cf~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1723888545&amp;x-signature=d0L9eReGTLeSj9P8NR28oC2X4P0%3D" style="width: 50%; margin-bottom: 20px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Stack Overflow 上<span style="color: black;">各样</span>编程语言的标签快照。</p>
    </div>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">尽管 R 语言在过去几年里<span style="color: black;">始终</span><span style="color: black;">处在</span>停滞不前的状态,<span style="color: black;">况且</span>许多其他编程语言<span style="color: black;">亦</span>在稳步下降,但 Python 的增长似乎势不可挡。几乎所有 Stack Overflow 上的问题有 14% 被标记为“Python”,<span style="color: black;">况且</span>这一趋势还在<span style="color: black;">提升</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这其中有几个<span style="color: black;">原由</span>:</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">它是古老的</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python 早在 20 世纪 90 年代就<span style="color: black;">显现</span>了。这并<span style="color: black;">不仅</span><span style="color: black;">寓意</span>着它有充足的时间来成长,它还得到了一个庞大的支持社区。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因此呢</span>,<span style="color: black;">倘若</span>你在用 Python 编写代码遇到了什么问题,你<span style="color: black;">特别有</span>可能<span style="color: black;">经过</span> Google 搜索一下就能<span style="color: black;">处理</span>。这是<span style="color: black;">由于</span>有人<span style="color: black;">已然</span>遇到过和你<span style="color: black;">同样</span>的问题,并记下了<span style="color: black;">有些</span>有用的东西。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">它对初学者很友好</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这不仅是事实,<span style="color: black;">由于</span>它<span style="color: black;">已然</span>存在了几十年,让程序员得以有时间来编写优秀的教程。更重要的是,Python 的语法非常易于理解。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">首要</span>,无需指定数据类型。你只需声明一个变量<span style="color: black;">就可</span>;Python 将会从上下文中理解它是整数、浮点值、布尔值还是其他值。这对初学者<span style="color: black;">来讲</span>,是一个巨大的<span style="color: black;">优良</span>。<span style="color: black;">倘若</span>你曾经<span style="color: black;">运用</span> C++ 进行编程的话,你就会<span style="color: black;">晓得</span>你的程序<span style="color: black;">没法</span><span style="color: black;">经过</span>编译是多么令人<span style="color: black;">懊丧</span>,仅仅只是<span style="color: black;">由于</span>你将浮点数换<span style="color: black;">成为了</span>整数。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">倘若</span>你曾经<span style="color: black;">同期</span>阅读过 Python 和 C++ 代码,你就会<span style="color: black;">晓得</span> Python 有多么容易理解。尽管 C++ 在设计时<span style="color: black;">思虑</span>到了英语,但与 Python 代码相比,它的阅读还是相当困难。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">它的用途广泛</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因为</span> Python <span style="color: black;">已然</span>存在了如此久的时间,<span style="color: black;">研发</span>人员<span style="color: black;">已然</span>为<span style="color: black;">各样</span>潜在需求制作了软件包。<span style="color: black;">此刻</span>,你<span style="color: black;">能够</span>找到几乎所有用途的软件包。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">想要计算数字、向量和矩阵吗?<strong style="color: blue;">NumPy</strong> <span style="color: black;">便是</span>你要找的东西。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">想要做技术和工程方面的计算吗?请<span style="color: black;">运用</span> <strong style="color: blue;">SciPy</strong>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">想在数据处理和分析方面做大吗?那就试试 <strong style="color: blue;">Pandas </strong>吧。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">想从人工智能<span style="color: black;">起始</span>吗?那<span style="color: black;">为何</span>不<span style="color: black;">运用</span> <strong style="color: blue;">Scikit-Learn </strong>呢?</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">无论你想做哪种计算任务,都有相应的 Python 软件包。这使得 Python <span style="color: black;">始终</span><span style="color: black;">处在</span>发展前沿,从过去几年<span style="color: black;">设备</span>学习的火热的浪潮中<span style="color: black;">能够</span>看出来。</p>
    <h2 style="color: black; text-align: left; margin-bottom: 10px;">Python 的缺点以及这些缺点<span style="color: black;">是不是</span>会致命</h2>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">基于前面的阐述,你<span style="color: black;">能够</span>想象 Python 在<span style="color: black;">将来</span>几年仍将兴盛不衰。<span style="color: black;">然则</span>,像所有的技术<span style="color: black;">同样</span>,Python <span style="color: black;">亦</span>有它的弱点。我将一一介绍最重要的缺陷,并<span style="color: black;">评定</span>这些缺陷<span style="color: black;">是不是</span>致命。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">速度</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python 很慢。真的,非常非常慢。平均而言,<span style="color: black;">运用</span> Python 完成一项任务所需的时间,是任何其他编程语言的 2~10 倍。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">导致</span>这种<span style="color: black;">状况</span>的<span style="color: black;">原由</span>有<span style="color: black;">非常多</span>。其中之一是,它是动态类型的,记住,你不<span style="color: black;">必须</span>像在其他编程语言那样指定数据类型。这<span style="color: black;">寓意</span>着<span style="color: black;">必须</span><span style="color: black;">运用</span><span style="color: black;">海量</span>的内存,<span style="color: black;">由于</span>程序<span style="color: black;">必须</span>为它在任何<span style="color: black;">状况</span>下都能工作的<span style="color: black;">每一个</span>变量预留足够的空间。<span style="color: black;">况且</span><span style="color: black;">海量</span>的内存<span style="color: black;">运用</span><span style="color: black;">寓意</span>着<span style="color: black;">海量</span>的计算时间。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">另一个<span style="color: black;">原由</span>是,Python 一次只能执行一个任务。这是灵活数据类型的结果:Python <span style="color: black;">必须</span><span style="color: black;">保证</span><span style="color: black;">每一个</span>变量<span style="color: black;">仅有</span>一种数据类型,而并行化的进程可能会弄乱这一点。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">相比之下,<span style="color: black;">通常</span>的 Web 浏览器<span style="color: black;">能够</span><span style="color: black;">同期</span>运行十几个<span style="color: black;">区别</span>的线程。<span style="color: black;">另外</span>,还有其他<span style="color: black;">有些</span>理论。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">但说到底,这些速度问题都无关紧要。计算机和服务器<span style="color: black;">已然</span>变得如此便宜,以至于<span style="color: black;">咱们</span>谈论的只是几分之一秒的时间。<span style="color: black;">实质</span>上,<span style="color: black;">最后</span>用户并不在乎<span style="color: black;">她们</span>的应用程序是在 0.001 秒还是 0.01 秒内加载的。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">功效</span>域</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">最初,Python 的<span style="color: black;">功效</span>域是动态的。这基本上<span style="color: black;">寓意</span>着,要计算表达式,编译器<span style="color: black;">首要</span>搜索当前块,<span style="color: black;">而后</span>依次搜索所有调用函数。这<span style="color: black;">便是</span>大<span style="color: black;">都数</span>现代编程语言<span style="color: black;">运用</span>静态<span style="color: black;">功效</span>域的<span style="color: black;">原由</span>。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python 曾试图过渡到静态<span style="color: black;">功效</span>域,但搞砸了。<span style="color: black;">一般</span><span style="color: black;">状况</span>下,内部<span style="color: black;">功效</span>域(例如函数中的函数)能够查看和更改<span style="color: black;">外边</span><span style="color: black;">功效</span>域。但在 Python 中,内部<span style="color: black;">功效</span>域只能看到<span style="color: black;">外边</span><span style="color: black;">功效</span>域,而<span style="color: black;">不可</span>改变它们,这就<span style="color: black;">引起</span>了<span style="color: black;">非常多</span>混乱的情形。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">Lambda</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">尽管 Python <span style="color: black;">拥有</span>所有的灵活性,但 Lambda 的<span style="color: black;">运用</span>还是相当受限的。Lambda 只能是 Python 中的表达式,<span style="color: black;">不可</span>是语句。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">另一方面,变量声明和语句始终是语句。这<span style="color: black;">寓意</span>着 Lambda 并<span style="color: black;">不可</span>用于它们。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">表达式和语句之间的这种区别是相当随意的,在其他编程语言中并不会存在。</p>
    <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/8043132bbeff48e890e533cae3beacf9~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1723888545&amp;x-signature=VQOnwpKrBpQv9Ixf%2FNBc4j8ZZCs%3D" style="width: 50%; margin-bottom: 20px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">空白使代码的可读性更强,但可<span style="color: black;">守护</span>性却更低了。</p>
    </div>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在 Python 中,你<span style="color: black;">能够</span><span style="color: black;">运用</span>空格和缩进来<span style="color: black;">暗示</span>不同级别的代码。这使得它在视觉上<span style="color: black;">拥有</span>吸引力,理解起来<span style="color: black;">亦</span>更直观。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">其他编程语言,如 C++,则<span style="color: black;">更加多</span>地依赖花括号和分号。尽管这可能在视觉上<span style="color: black;">不足</span>吸引人,对初学者<span style="color: black;">亦</span>不太友好,<span style="color: black;">然则</span>它使代码更易于<span style="color: black;">守护</span>。<span style="color: black;">针对</span><span style="color: black;">很强</span>的项目,这个<span style="color: black;">办法</span>更有用。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">像 Haskell <span style="color: black;">这般</span>的新语言<span style="color: black;">处理</span>了这个问题:它们依赖于空格,但为<span style="color: black;">哪些</span><span style="color: black;">期盼</span>不<span style="color: black;">运用</span>空格的人<span style="color: black;">供给</span>了另一种语法。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">移动<span style="color: black;">研发</span></h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>正在见证从台式计算机到智能手机的转变,很<span style="color: black;">显著</span>,<span style="color: black;">咱们</span><span style="color: black;">必须</span>强大的语言来<span style="color: black;">研发</span>移动软件。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">但<span style="color: black;">运用</span> Python <span style="color: black;">研发</span>的移动应用并不多。<span style="color: black;">不外</span>,这并不<span style="color: black;">寓意</span>着它做不到 — 有一个名为 Kivy 的 Python 软件包<span style="color: black;">便是</span>专门用于<span style="color: black;">研发</span>移动应用的。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">然则</span> Python 在设计时并没有<span style="color: black;">思虑</span>到移动<span style="color: black;">研发</span>。<span style="color: black;">因此呢</span>,即使它可能会为基本任务产生差强人意的结果,你最好的<span style="color: black;">选取</span>是<span style="color: black;">运用</span>一种专为移动<span style="color: black;">研发</span>而创建的编程语言。<span style="color: black;">有些</span>广泛<span style="color: black;">运用</span>的移动编程框架<span style="color: black;">包含</span> React Native、Flutter、Iconic 和 Cordova。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">必须</span><span style="color: black;">知道</span>的是,笔记本计算机和台式计算机应该会在<span style="color: black;">将来</span><span style="color: black;">非常多</span>年里继续存在。<span style="color: black;">然则</span>,<span style="color: black;">因为</span>移动设备的流量早已超过台式计算机,<span style="color: black;">因此</span><span style="color: black;">能够</span>肯定地说,学会 Python 并不足以<span style="color: black;">作为</span>经验丰富的全能<span style="color: black;">研发</span>人员。</p>
    <h3 style="color: black; text-align: left; margin-bottom: 10px;">运行时错误</h3>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python 脚本不是先编译后执行的。相反,它会在每次执行时编译,<span style="color: black;">因此呢</span>,任何编码错误都会在运行时<span style="color: black;">表示</span>出来。这会<span style="color: black;">引起</span>性能差、耗时长,并且<span style="color: black;">必须</span>进行<span style="color: black;">海量</span>测试。<span style="color: black;">例如</span>,<span style="color: black;">非常多</span><span style="color: black;">非常多</span>测试。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这<span style="color: black;">尤其</span>适合初学者,<span style="color: black;">由于</span>测试<span style="color: black;">能够</span>教会<span style="color: black;">她们</span><span style="color: black;">非常多</span>东西。<span style="color: black;">然则</span><span style="color: black;">针对</span>经验丰富的<span style="color: black;">研发</span>人员<span style="color: black;">来讲</span>,<span style="color: black;">必要</span>用 Python 调试<span style="color: black;">繁杂</span>的程序会让<span style="color: black;">她们</span>出错。这种性能的缺乏是在 Python 上设置时间戳的最大<span style="color: black;">原因</span>。</p>
    <h2 style="color: black; text-align: left; margin-bottom: 10px;"><span style="color: black;">将来</span>何时,谁将取代 Python?</h2>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在编程语言市场上有几个新的竞争对手:</p><strong style="color: blue;">Rust</strong><span style="color: black;">供给</span>了与 Python <span style="color: black;">一样</span>的安全性,任何变量不会被意外覆盖。<span style="color: black;">然则</span>,它用所有权(ownership)和借用(borrowing)<span style="color: black;">处理</span>了性能问题。<span style="color: black;">按照</span> Stack Overflow Insights 的统计,Rust <span style="color: black;">亦</span>是过去几年来最受欢迎的编程语言。<strong style="color: blue;">Go</strong><span style="color: black;">针对</span> Python <span style="color: black;">这般</span>的初学者<span style="color: black;">来讲</span>很棒。它是如此简单,以至于<span style="color: black;">守护</span>代码更加容易了。有趣的是:Go <span style="color: black;">研发</span>人员是市场上收入最高的程序员之一。<strong style="color: blue;">Julia</strong>是一门非常新的编程语言,<span style="color: black;">能够</span>与 Python 一较高下。它填补了大规模技术计算的空白:<span style="color: black;">一般</span><span style="color: black;">状况</span>下,人们会<span style="color: black;">运用</span> Python 或 Matlab,<span style="color: black;">而后</span>用 C++ 库来修补<span style="color: black;">全部</span>程序,这在大规模应用时是必需的。<span style="color: black;">此刻</span>,人们<span style="color: black;">能够</span><span style="color: black;">运用</span> Julia,而不是<span style="color: black;">同期</span><span style="color: black;">运用</span>两种编程语言。<p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">虽然市场上还有其他编程语言,Rust、Go 和 Julia 是修补了 Python 薄弱部分的编程语言。所有这些语言在<span style="color: black;">将来</span>的技术上表现出色,尤其是在人工智能<span style="color: black;">行业</span>。虽然它们的市场份额仍然很小,但从 Stack Overflow 标签的数量<span style="color: black;">能够</span>看出,它们的趋势都很<span style="color: black;">显著</span>:<span style="color: black;">提升</span>。</p>
    <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/2f24afe4b0ab4daab45dcfa5e930b6b5~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1723888545&amp;x-signature=Z3Sr1aLU5muz4X4a93LslWg9XvY%3D" style="width: 50%; margin-bottom: 20px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">StackOverflow 上<span style="color: black;">各样</span>编程语言标签快照。</p>
    </div>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">鉴于<span style="color: black;">日前</span> Python 已无处不在的流行程度,这些新语言中的任何一门<span style="color: black;">想要</span>取代它,肯定要花上五年的时间,<span style="color: black;">乃至</span>终其“<span style="color: black;">一辈子</span>”。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">到底</span>会是哪一门编程语言将取代 Python,是 Rust?Go?Julia?抑或是<span style="color: black;">将来</span>的一门新语言?<span style="color: black;">此刻</span>还很难说。<span style="color: black;">然则</span>鉴于 Python 架构中的最基本的性能问题,这些语言中的一门将会不可避免地占据一席之地。</p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">关注我并转发此篇<span style="color: black;">文案</span>,私信我“领取资料”,<span style="color: black;">就可</span>免费<span style="color: black;">得到</span>InfoQ价值4999元迷你书!</strong></p>




jm2020 发表于 2024-9-8 18:48:46

请问、你好、求解、谁知道等。
页: [1]
查看完整版本: 为么 Python 不是将来的编程语言?