Python正在慢慢淡出C、C#、Java甚至Javascript。虽然Python在数据科学和机器学习领域占据主导地位,甚至是科学和数学计算领域的主角,但与Julia、Swift和Java等语言相比,它确实存在不足。为什么Python如此受欢迎?Python迅速崛起背后的主要驱动力之一是它相当容易学习且功能强大。对于初学者来说,不熟悉C/C++这样难懂的编程语言的语法的人会望而却步,所以Python很有吸引力。该语言的核心是代码可读性。Python的语法简洁而富有表现力,让开发者无需编写大量代码即可表达想法和概念(C或Java等低级语言也是如此)。它非常简单,可以与其他编程语言无缝集成(例如将CPU密集型任务卸载到C/C++)。使用Python语言进行开发可为开发人员带来许多好处。Python流行的另一个原因是它被企业(包括FAANG)大量使用。今天,对于任何你能想到的项目,你都可以找到相应的Python包——用于科学计算的Numpy、用于机器学习的Sklearn和用于计算机视觉的Caer。Python的弱点就是慢,太慢了。不用说,速度通常是开发人员最关心的问题之一。不只是现在,而是未来很长一段时间。Python“慢”的主要原因可以归结为以下两点——第一,Python是解释型语言,不是编译型语言,最终会导致执行时间变慢;其次,它是一种动态语言(变量的数据类型由Python在执行过程中自动推断)。初学者经常对“Python真的很慢”这一说法提出异议。事实上,这是真的,但也不完全是真的。比如Python的机器学习库TensorFlow,其实是用C++写的,用Python调用。它是在C++之上实现的Python“包装器”。Numpy是这样的,Caer也是类似的形式。Python有一个GIL(L)Python运行缓慢的主要原因之一是GIL(全局解释器锁)的存在——它一次只允许一个线程执行。虽然这有助于提高单线程性能,但它限制了并行性,开发人员必须实现多线程程序才能提高速度。不是内存密集型任务的最佳选择Python会在对象超出范围时自动对其进行垃圾回收。它的目的是消除C和C++中内存管理中涉及的许多复杂性。由于指定数据类型的不灵活性,Python消耗的内存量会迅速爆炸。此外,在运行时,一些错误可能会被Python忽略,并最终成为减慢开发过程的主要原因。移动计算中的牵强附会随着从台式机到智能手机的迁移,很明显需要为手机软件构建更强大的语言。Python虽然在计算机和服务器平台上有不错的表现,但由于缺乏强大的移动计算处理能力,在移动开发中往往失去优势。近年来,Python(Python)在这方面取得了长足的进步,但库中的这些新增功能与它们的强大竞争对手(如Kotlin、Swift和Java)相比仍相去甚远。其他语言的兴起最近,Julia、Rust和Swift等新兴语言从Python、C/C++和Java中借鉴了许多精心设计的概念——Rust确保运行时内存安全和并行性,并提供Assembly的相同互操作性;由于支持LLVM编译器工具链,Swift几乎与C一样快;Julia为I/O(输入/输出)密集型任务提供异步I/O,速度快得惊人。结论Python不是最好的编程语言,它不能替代C/C++和Java。它是作为一种通用编程语言构建的,强调可读性强、以英语为中心的语法。人们用它来快速开发程序和应用程序。与其他语言一样,Python只是一种工具。在某些情况下,它是最好的工具;在其他情况下,它可能不是。在大多数情况下,它“正常工作”。那么,Python作为一种编程语言会消亡吗?我不这么认为。它失去了魅力吗?啊,也许只是一点点,一点点。【本文为栏目组织大数据文摘原创翻译,微信公众号“大数据文摘(id:BigDataDigest)”】点此查看作者更多好文
