Python正在慢慢失去魅力

2020-11-21 13:08 小张Python

点击上方 小张Python,加为星标

第一时间收到 Python 技术干货!


作者 | Jason Dsouza

译者 | 无名

策划 | 陈思

Python 作为一种编程语言正在消亡吗?我不这么认为。

它正在失去魅力吗?也许有一点,但也只是一点。

自 20 世纪 90 年代早期发布以来,有关 Python 的炒作就没有停止过。编程社区花了至少 20 年的时间才确认了它的地位,而从那以后,它的流行程度远远超过了 C、C#、Java 甚至是 JavaScript。

尽管 Python 在数据科学、机器学习以及科学和数学计算(一定程度上)领域占据着主导地位,但与 Julia、Swift 和 Java 等新兴语言相比,它也有自己的缺点。

是什么让 Python 如此流行?

Python 飞速发展的主要原因之一是它的易学和强大,这对初学者来说非常有吸引力,甚至对那些因为 C/C++ 等语言的晦涩语法而逃避编程的人来说也是如此。

Python 最为强调的是代码可读性。凭借其简洁而富有表现力的语法,开发者无需编写大量的代码就可以表达他们的想法和概念 (而 C 语言或 Java 就做不到了)。Python 可以无缝地与其他编程语言集成 (比如将 CPU 密集型任务交给到 C/C++ 来完成),对于多语言开发者来说,这无疑也是一个额外的优势。

导致 Python 流行的另一个原因是它被巨头企业 (包括美国五大科技巨头) 和无数小型企业使用。现如今,你可以为你想做的任何一件事情找到一个 Python 包——科学计算有 Numpy,机器学习有 Sklearn,计算机视觉有 Caer。

Python 的弱点

1,慢,非常慢

这个是显而易见的。速度通常被认为是开发者最为关注的重点之一,并且可能在不可预见的一段时间内继续如此。

导致 Python“慢”主要可以归结为两个原因——Python 是解释执行的,而不是编译执行的,所以执行时间变长;它是动态类型的 (Python 在执行过程中自动推断变量的数据类型)。

实际上,“Python 很慢”这一说法在初学者当中很经常听到。是的,这是真的,但也不完全对。

以 Python 机器学习库 TensorFlow 为例。这些库实际上是用 C++ 编写的,然后使用 Python 进行了“包装”。Numpy 也是一样的,在某种程度上 Caer 也是。

2,全局解释器锁

导致 Python 慢的另一个原因是 GIL(全局解释器锁),它一次只允许一个线程执行。虽然这提高了单线程的性能,但限制了并行性。为了提高速度,开发者必须实现多处理程序,而不是使用多线程。

3,不适合内存密集型任务

当对象超出作用域时,Python 会自动对它们进行垃圾回收。Python 致力于消除内存管理的复杂性。因为采用了动态类型,Python 消耗的内存可能会迅速暴增。

另外,Python 有一些没有被注意到的 bug,可能会在运行时突然出现,最终极大降低开发速度。

4,在移动计算领域的弱势

随着从桌面到智能手机的巨大转变,显然需要更健壮的编程语言来构建移动软件。虽然 Python 在桌面和服务器领域有相当抢眼的表现,但由于缺乏强大的移动计算处理能力,所以在移动开发领域失去了优势。

近年来,Python 在这个领域已经有了很大进步,但这些新增的库与强大的竞争对手(如 Kotlin、Swift 和 Java)还是无法比拟的。

5,其他编程语言的崛起

近年来,像 Julia、Rust 和 Swift 这样的新兴编程语言突然出现在人们的视野中,它们借鉴了大量来自 Python、C/C++ 和 Java 的优秀设计理念——Rust 在很大程度上保证了内存安全和运行时的并发性,并提供了与 WebAssembly 的互操作性;因为支持 LLVM 编译器工具链,Swift 几乎和 C 语言一样快,而 Julia 为 I/O 密集型任务提供了异步 I/O,速度快得惊人。

结论

Python 从来就不是最好的编程语言,也从来不是为了取代 C/C++ 和 Java。它是一种通用的编程语言,强调的是代码可读性、以英语为中心的语法,从而加快程序和应用程序的开发。

Python 和其他编程语言一样,说到底都是一种工具。有时候,它是最好的工具,但有时它不是。大多数情况下,都是“还好”。

那么,Python 作为一种编程语言正在消亡吗?

我不这么认为。

它正在失去魅力吗?

也许有一点,但也只是一点。

原文链接:https://towardsdatascience.com/python-is-slowly-losing-its-charm-9ca652726492


推荐阅读:


Python自动化办公之Word批量转成自定义格式的Excel
下个 10 年,Go 能取代 Python 成为开发者的首选语言吗?


本文章转载自公众号:gh_683d048a482a

首页 - Python 相关的更多文章: