Python 作为一种编程语言正在消亡吗?我不这么认为。
它正在失去魅力吗?也许有一点,但也只是一点。
自 2019以来,有关 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 作为一种编程语言正在消亡吗?
我不这么认为。
它正在失去魅力吗?
也许有一点,但也只是一点。