暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

云原生CTO 2021-12-08
583

CTO

 
 

 
 


 

Go
Rust
Python
Istio
containerd
CoreDNS
Envoy
etcd
Fluentd
Harbor
Helm
Jaeger
Kubernetes
Open Policy Agent
Prometheus
Rook
TiKV
TUF
Vitess
Argo
Buildpacks
CloudEvents
CNI
Contour
Cortex
CRI-O
Falco
Flux
gRPC
KubeEdge
Linkerd
NATS
Notary
OpenTracing
Operator Framework
SPIFFE
SPIRE
  Thanos




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

尽管 Python 将在未来几年内需求旺盛

编程界花了几十年时间才认识 Python
。然而,自 2010
年代初以来,它越来越受欢迎,最终超过了 C
C#
Java
JavaScript

但是这种趋势会持续多久,Python
何时以及为什么会被其他语言取代?

Python
的确切到期日期具创始人说道:“永远不会推出4.0
版本”,并且相关社区开发人员对4.0
版本也不太感兴趣,目前的热度也相对比下降的很多,相反,我们来看看是什么当时推动了Python
流行,以及注定它在未来的缺陷。

是什么让 Python 现在流行

尽管近年来 R
一直停滞不前,并且许多其他语言都在下降,但 Python
的崛起似乎势不可挡。在所有StackOverflow
查询中,几乎 14%
被归类为“python”
,而且这一趋势还在增长。这背后有很多原因。

年代久远

Python
1990
年代就已存在。这不仅仅意味着它有很多时间来成熟。它还获得了大量热情的追随者。

因此,如果您在用 Python
编写时遇到问题,您很可能可以通过简单的 Google
搜索来解决它。仅仅是因为其他人会发现您的问题并为此写了一些有价值的东西。

它适合初学者

这不仅仅是因为它已经存在了几十年,为程序员提供了大量创建优秀教程的机会。此外,Python
的语法非常易读。

首先,您不需要识别数据类型。只需创建一个变量;Python
将根据情况确定它是整数、浮点值、布尔值还是其他任何值。这对新人来说是一个巨大的好处。如果您曾经不得不用 C++
编写程序,您就会知道当您的程序因将浮点数转换为整数而无法构建时,情况会多么严重。

如果您曾经不得不同时阅读 Python
C++
代码,您就会知道 Python
是多么容易掌握。尽管C++
是用英语构建的,但与 Python
代码相比,它的阅读方式有些不平衡。

适应性强

Python
已经存在了很长时间,以至于开发人员已经为每种需要制作了一个包。如今,您可以找到几乎所有东西的捆绑包。

  • 您想要使用整数、向量和数组吗? NumPy
    是你的得力助手。

  • 你需要进行技术或工程方面的计算吗? 利用SciPy

  • 你想认真对待数据操纵和分析吗?Pandas
    是一个选择。

  • 为什么不使用Scikit-Learn
    来开始人工智能呢?

无论您试图管理什么计算过程,几乎总是有一个Python
模块用于它。这使Python
与新的创新保持同步,例如近年来机器学习的出现。

Python 的缺点以及它们是否会致命

基于上述,我们有理由相信 Python
将在未来几代人中继续占据统治地位。然而,与其他所有技术一样,Python
也存在缺陷。我会一一检查最重要的缺陷,并确定它们是否致命。

速度

Python
是一种缓慢的语言。真的,真的很慢。平均而言,Python
完成一项任务所需的时间是任何其他语言的 2-10
倍。

这是由许多因素造成的。一个优点是它是动态类型的;与其他语言不同,您不需要声明数据类型。这意味着您将需要大量内存,因为应用程序必须始终为它处理的每个变量预留足够的空间。大量的内存使用等于大量的处理时间。

另一个问题是Python
一次只允许执行一个作业。这是由于灵活的数据类型:Python
必须确保每个变量只有一种数据类型,并且并行进程可能会导致问题。

相比之下,一个典型的web
浏览器可能同时操作12
个不同的线程。还有更多的理论。

但是,最终,速度上的任何困难都不重要。计算机和服务器现在是如此便宜,以至于我们谈论的是几分之一秒。最终用户并不关心应用程序加载时间是0.001
秒还是0.01
秒。

范围

Python
过去有一个动态作用域。简单地说,在计算表达式时,编译器首先搜索当前块,然后搜索所有调用函数。

动态作用域的问题是,每个阶段都必须在每个可能的上下文中进行验证,这非常耗时。因此,大多数当前的编程语言都使用静态作用域。

Python
试图切换到静态作用域,但不幸失败。内部作用域,例如函数中的函数,经常可以观察和改变外部作用域。Python
中的内部作用域只能查看外部作用域,不能改变它们。这引起了极大的焦虑。

Lambdas

尽管Python
具有多种功能,但Lambdas
的使用非常有限。Lambdas
只允许是Python
表达式,而不是语句。另一方面,声明和变量声明总是语句。因此,Lambdas
不能用于它们。

表达式和声明之间的这种区别完全是任意的,在任何其他语言中都不存在。

空格

Python
中,空格和缩进用来表示不同的代码级别。这使得它在视觉上很漂亮,也很容易掌握。

其他语言,如c++
,更多地使用大括号和分号。虽然这对初学者来说不是很美观,也不是很友好,但它确实使代码更容易维护。这对于更大的任务来说是非常有益的。

较新的语言,如Haskell
,通过依赖空格来解决这个问题,但为那些不想使用空格的人提供了一种替代语法。

移动应用程序开发

当我们看到从桌面电脑到智能手机的转变时,很明显我们需要强大的语言来为移动设备开发应用程序。

然而,Python
并不经常用于创建移动应用程序。这并不意味着这是不可能的;一个名为Kivy
Python
模块可用于此目的。

然而,Python
在设计时并没有考虑移动设备。虽然它可以对简单的任务提供令人满意的结果,但您最好的选择是使用专门为移动应用程序开发设计的语言。React Native
Flutter
Iconic
Cordova
是一些流行的移动设备开发框架。

说实话,笔记本电脑和台式电脑应该已经存在很长一段时间了。然而,由于移动设备的流量早就超过了桌面计算机的流量,因此可以合理地说,学习Python
不足以成为一名成熟的有经验的开发人员。

在运行时错误

Python
脚本不是先编译再运行的。相反,它是在每次运行时编译的,因此任何代码问题都在运行时显示。这会导致性能下降,增加时间消耗,并且需要进行大量测试。类似于一些测试。

这对于新手来说是理想的,因为测试教会了他们很多东西。然而,试图调试一个复杂的Python
程序会导致熟练的程序员犯错误。导致在Python
中设置时间戳的最关键问题是缺乏性能。

什么,什么时候,将来可能会取代Python ?

在编程语言市场,有几个新进入者:

  • Rust
    提供了与Python
    相同级别的安全性:不会因为错误而重写变量。然而,所有权原则克服了性能问题。根据StackOverflow Insights
    的说法,它也是近年来最流行的编程语言。
  • Go
    Python
    一样,适合新手。由于它如此简单,维护代码就容易得多。有趣的事实:Go
    工程师是行业中收入最高的程序员之一。
  • Julia
    是一种与Python
    直接竞争的全新语言。它填补了大规模技术计算的空白:以前,人们会使用Python
    Matlab
    ,用c++
    库修补所有东西,这是大规模计算所必需的。Julia
    现在可以被使用,而不是同时使用两种语言。

虽然还有其他可用的编程语言,但Rust
Go
Julia
是解决Python
缺陷的语言。所有这些语言在未来的技术中都表现得非常好,尤其是人工智能。虽然他们的市场份额仍然有限,但从StackOverflow
标签的数量可以看出,总体方向很清楚:上升。

鉴于 Python
当前的流行程度,几乎可以肯定,这些新兴语言中的任何一种都需要五年甚至整整十年的时间才能取代它。

目前,很难预测它将是哪种语言(Rust
Go
Julia
或未来的语言)。然而,考虑到 Python
设计中固有的性能问题,肯定会取代它。

参考地址[1]

参考资料

[1]

参考地址: https://medium.com/@Sabrina-Carpenter/why-python-is-not-the-programming-language-of-the-future-4b963eb30878


文章转载自云原生CTO,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论