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 的弱点
这个是显而易见的。速度一般被认为是开发者最为关注的重点之一,而且可能在不可预见的一段时间内继续如此。编程语言
致使 Python“慢”主要能够归结为两个缘由——Python 是解释执行的,而不是编译执行的,因此执行时间变长;它是动态类型的 (Python 在执行过程当中自动推断变量的数据类型)。工具
实际上,“Python 很慢”这一说法在初学者当中很常常听到。是的,这是真的,但也不彻底对。性能
以 Python 机器学习库 TensorFlow 为例。这些库其实是用 C++ 编写的,而后使用 Python 进行了“包装”。Numpy 也是同样的,在某种程度上 Caer 也是。
致使 Python 慢的另外一个缘由是 GIL(全局解释器锁),它一次只容许一个线程执行。虽然这提升了单线程的性能,但限制了并行性。为了提升速度,开发者必须实现多处理程序,而不是使用多线程。
当对象超出做用域时,Python 会自动对它们进行垃圾回收。Python 致力于消除内存管理的复杂性。由于采用了动态类型,Python 消耗的内存可能会迅速暴增。
另外,Python 有一些没有被注意到的 bug,可能会在运行时忽然出现,最终极大下降开发速度。
随着从桌面到智能手机的巨大转变,显然须要更健壮的编程语言来构建移动软件。虽然 Python 在桌面和服务器领域有至关抢眼的表现,但因为缺少强大的移动计算处理能力,因此在移动开发领域失去了优点。
近年来,Python 在这个领域已经有了很大进步,但这些新增的库与强大的竞争对手(如 Kotlin、Swift 和 Java)仍是没法比拟的。
近年来,像 Julia、Rust 和 Swift 这样的新兴编程语言忽然出如今人们的视野中,它们借鉴了大量来自 Python、C/C++ 和 Java 的优秀设计理念——Rust 在很大程度上保证了内存安全和运行时的并发性,并提供了与 WebAssembly 的互操做性;由于支持 LLVM 编译器工具链,Swift 几乎和 C 语言同样快,而 Julia 为 I/O 密集型任务提供了异步 I/O,速度快得惊人。
结论
Python 历来就不是最好的编程语言,也历来不是为了取代 C/C++ 和 Java。它是一种通用的编程语言,强调的是代码可读性、以英语为中心的语法,从而加快程序和应用程序的开发。
Python 和其余编程语言同样,说到底都是一种工具。有时候,它是最好的工具,但有时它不是。大多数状况下,都是“还好”。
那么,Python 做为一种编程语言正在消亡吗?
我不这么认为。
它正在失去魅力吗?
也许有一点,但也只是一点。
我是个自动化测试人员上面是我收集的一些视频资源,在这个过程当中帮到了我不少。若是你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感觉的话,能够加入咱们扣扣群(785128166)里面有各类软件测试资源和技术讨论。