专栏首页Python 知识大全警惕!Python 正在慢慢失去魅力!

警惕!Python 正在慢慢失去魅力!

警惕!Python 正在慢慢失去魅力!

瑞士军刀式的编程语言也存在一些问题,可能会被更适合特定任务的其他语言取代。

自从 1990 年代初发布 Python 以来,它引起了很多炒作。当然,编程社区至少花了 20 年的时间才意识到它的存在,但是自那时以来,它的普及程度已经远远超过了 C,C#,Java 甚至 Javascript。

尽管 Python 在数据科学和机器学习领域以及某些程度上在科学和数学计算领域占据着主导地位,但与 Julia,Swift 和 Java 等语言相比,它确实有其缺点。

是什么让 Python 如此流行?

Python 迅猛发展的主要推动力之一是它的易学性和强大的使用性,这使其对初学者以及因诸如 C / C ++ 之类的语言的语法难以理解而回避编程的人非常有吸引力。

Python 语言从根本上就着重强调了代码的可读性。凭借其简洁明了的语法,它使开发人员无需编写大量的行代码即可表达思想和概念。Python 非常简单,可以与其他编程语言无缝集成,这对多语言开发人员来说是一个额外的好处。

Python 多功能性的另一个原因是大量企业使用它。今天,您可以找到很多领域的 Python 库,其中包含您几乎可以想到的所有内容-对于科学计算,有 Numpy、Sklearn 用于机器学习,Caer 用于计算机视觉。

Python 开始变弱

但 Python 已经开始变弱,虽然这种变化很慢很慢。

这可能是显而易见的,速度通常被认为是开发人员关注的重点之一,并且因为一些不可预见的时间可能会持续被关注。

Python 之所以“变慢”的主要原因之一,实际上可以归结为 2 点 – Python 是 解释的 而不是编译的,最终导致执行时间变慢;并且它是 动态类型的(变量的数据类型在执行过程中由 Python 自动推断)。

实际上,这种 “Python慢” 的观点在初学者中往往起着很大的作用。对,是真的。但仅仅是部分原因。

以 TensorFlow 为例,这是 Python 提供的机器学习库。这些库实际上是用 C ++ 编写的,并可以在 Python 中使用,某种程度上构成了围绕 C ++ 实现的 Python “包装器”。Numpy 、Caer 在一定程度上也是如此。

GIL的限制

Python 速度缓慢的主要原因之一是存在 GIL(Global Interpreter Lock,全局解释器锁定),该功能一次只能执行一个线程。虽然这可以提高单线程的性能,但是它限制了并行性,在这种并行性中,开发人员必须实现多处理程序而不是多线程程序,以提高速度。

对于内存密集型任务不是最好的

当对象超出范围时,Python 会自动进行垃圾回收。它旨在消除 C 和 C ++ 涉及的许多内存管理复杂性。由于指定数据类型的灵活性(或缺乏灵活性),Python 消耗的内存量可能会迅速爆炸。

此外,Python 可能不会注意到的一些错误可能会在运行时弹出,最终使开发过程变慢了很多。

在移动计算领域缺乏竞争力

从台式机到智能手机的巨大转变,很明显,需要更强大的语言来构建用于手机的软件。尽管 Python 在台式机和服务器平台上具有相当大的代表性,但由于缺乏强大的移动计算处理能力,Python 往往会在移动开发方面落伍。

近年来,在这一领域取得了许多进步,但是这些新添加的库甚至与强大的竞争对手(如 Kotlin,Swift 和 Java)并不接近。

其他语言的兴起

最近,诸如 Julia,Rust 和 Swift 等较新的语言突然出现,它们借鉴了 Python,C / C ++ 和 Java 的许多优秀设计概念- Rust 几乎可以保证运行时的内存安全性和并发性,并提供与 WebAssembly 的一流互操作性; Swift 由于支持 LLVM 编译器工具链和 Julia 为 I / O 密集型任务提供异步 I / O,并且速度非常快。

小结

Python 从未被构建为最佳的编程语言。它从未被构建为可以替代 C / C ++ 和 Java 的语言。它被构建为一种通用编程语言,强调了人类可读的,以英语为中心的语法,从而可以快速开发程序和应用程序。

就像一天结束时的所有其他语言一样,Python 是一种工具。有时,它是最好的工具。有时候不是。通常,这“还好”。

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

我几乎不这么认为。

那么,它失去魅力了吗?

啊,也许只是一点点,一点点……

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

------- End -------

本文分享自微信公众号 - Python 知识大全(shenmu422),作者:点击蓝字关注☞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 适合 Python 入门的 8 款强大工具!

    Python是一种开源的编程语言,可用于Web编程、数据科学、人工智能以及许多科学应用。学习Python可以让程序员专注于解决问题,而不是语法。由于Python...

    Python知识大全
  • 一篇让你直接入门的 Python 教程

    Python,以英国喜剧团体MontyPython的名字命名,是一种解释性、交互性、面向对象的编程语言.它的灵活性使它能够做许多事情,无论大小。Python可以...

    Python知识大全
  • 为程序员和新手准备的8大 Python 工具

    Python 是一种开源编程语言,用于 Web 编程、数据科学、人工智能和许多科学应用。学习 Python 使程序员能够专注于解决问题,而不是专注于语法,其丰富...

    Python知识大全
  • Python标准库——走马观花

    Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的。它是Python的一个组成部分。这...

    Vamei
  • 某大厂Python面试题目(回忆版)

    AI之禅
  • 人生苦短,我用Python之小游戏

    虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,G...

    小Bob来啦
  • Python资源

    p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – 可以在虚拟环境中执行命令。 virtu...

    用户7886150
  • 如何让文科生5分钟写上Python

    我会按照发文顺序分为串行文章和并行文章。Python 语言本身的内容,我会按照入门、进阶、原理的顺序依次展开。由于我的水平有限,为了保证质量不乱讲,我选择站在巨...

    dongfanger
  • Python的框架集合

    今天突然遇到一个比较全面的 python的框架的列表,分享一下。 http://www.cnblogs.com/lonenysky/p/4780300.html

    用户7886150
  • 【基础教程】Python能干什么,Python的应用领域

    Python 作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。那么,Python 的应用领域有哪些呢?

    matinal

扫码关注云+社区

领取腾讯云代金券