返回顶部
首页 > 资讯 > 后端开发 > Python >Python的缺点有哪些
  • 187
分享到

Python的缺点有哪些

2023-06-16 03:06:43 187人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要讲解了“python的缺点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的缺点有哪些”吧!Python 是20世纪90年代发布的一种通用编程语言。虽然 Pyth

这篇文章主要讲解了“python的缺点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的缺点有哪些”吧!

Python 是20世纪90年代发布的一种通用编程语言

虽然 Python 语法简洁,但它在第一个十年中并不为人所知,也没有真正进入开发人员的工作中。Perl 是首选的脚本语言,Java  已经成为面向对象编程领域的主流。当然,任何语言的成熟都需要时间,只有当它比现有的工具更适合开发任务时才会被采用。

对于Python来说,这一时间最早出现在21世纪初,那时人们开始意识到它比 Perl 更容易学习,并且提供了与其他语言的互操作性。

这个发现让非常多开发人员将 Python 集成到他们的应用程序中。Django 的出现最终导致了 Perl 的灭亡,Python  开始获得了更多的发展契机。虽然流行程度还比不上比Python更新的 Java 和 javascript

快进到现在,根据2019年 StackOverflow 开发者调查,Python 已经超越 Java 成为第二流行的编程语言。

Python 是最近十年发展最快的编程语言。Python  的流行与20世纪10年代大数据的出现以及机器学习人工智能的发展密不可分。企业迫切需要一种能够帮助管理大规模数据和科学计算任务的低门槛快速开发语言。Python  非常适合这些领域的挑战任务。

除了这些有利因素之外,Python 是一种支持动态类型的解释语言。更重要的是,它得到了 Google 的支持,Google  投资开发了Python的深度学习框架 Tensorflow,这让 Python 得以成为数据分析可视化和机器学习的首选语言。

然而,虽然机器学习和人工智能的需求还在不断增长,但是 Python 不会一直都站在巅峰,它也会有老去的一天。像每种编程语言一样,Python  也有自己的弱点。这些弱点让 Python 很容易被更适合企业需求的编程语言所取代。虽然已经有 R 语言了,但是 Swift、Julia 和 Rust  等较新语言的出现实际上对当前的数据科学之王构成了更大的威胁。

Rust 还在努力追赶着各大机器学习社区的步伐,因此,我相信 Swift 和 Julia 将是推翻 Python 并最终统治数据科学的语言。

Python缺乏类型安全性,速度非常慢

所有的好东西都是有代价的,Python的动态类型特性也不例外。动态类型化可以在不定义类型的情况下,让快速编写代码变得更加容易,但是,这会增加代码运行时产生  BUG 的风险,特别是当代码库大小增加时,开发人员在生产环境中运行代码时会更加艰难。编译器很容易发现的 BUG,在 Python  中反而无法识别,这样就会产生开发障碍,最终导致大规模应用程序的开发过程放慢。

更糟糕的是,与编译的代码不同,Python 的解释器在执行时要分析每一行代码。与其他语言相比,不仅导致开销变大,还大大降低了程序的性能。

Julia 可以让你避免这些问题。尽管它是动态类型的,但它有一个实时编译器。JIT 编译器要么在执行前生成机器代码,要么使用先前存储的缓存编译,这能让  Julia 与静态类型语言一样具有优秀的性能。更重要的是,它有一个称为多分派的关键特性,类似于 OOPs  的函数重载,虽然只能在运行程序的时候有用。多分派的强大之处在于它能够处理不同的参数类型,而无需创建单独的函数名或嵌套的 if  语句。这个功能不仅可以帮助开发人员编写更加紧凑的代码,也是数值计算的一大胜利,因为与 Python  有所不同,我们可以轻松地通过扩展解决方案来处理所有类型的参数。

还有更好,那就是,Swift 作为一种静态类型的语言,因其 LLVM(低级虚拟机)编译器而得到了高度优化。LLVM 让快速编译成汇编代码成为可能,这能让  Swift 超高效运行,达到了几乎与 C 语言一样快的速度。此外,Swift 拥有更好的内存安全和管理工具,即自动引用计数。与 garbage  收集器不同,ARC 具有更高的确定性,因为只要引用计数归零,它就会回收内存。

作为提供类型注释的编译语言,Swift 和 Julia 比 Python  更快,功能更强大。仅仅这一点,可能就足以让开发人员推荐它们,而不是使用较旧的语言,考虑很多其他因素。

Python在并行性方面有局限性

如果说慢不是 Python 很明显的缺点,那么这种语言在并行计算方面的局限性绝对是最明显的缺点了。

简而言之,Python 使用 GIL(全局解释器),它会通过阻止多个线程同时执行,来提高单个线程的性能。该过程有一个很大的障碍:开发人员不能使用多个  CPU 核心来进行密集的计算。

在此,我必须要同意一个观点,即在利用 Python 与 Tensorflow、PyTorch 等 C / C ++  库的互操作性时,我们目前已经做得很好了。 但是 Python 包装器并不能解决所有调试问题。当检查底层代码时,我们还是要依赖于 C 和 C ++。  从本质上讲,我们不能在低层次上利用 Python 的优势,这也是 Python 与众不同之处。

这一因素很快将决定 Python 的衰落、Julia 和 Swift 的崛起。Julia 是一种专门用来解决 Python  缺点的语言。它主要提供三个特性:协同程序(异步任务)、多线程分布式计算,所有这些特性都显示并发和并行编程有无限可能。这种结构使 Julia 能够以比  Python 更快的速度执行科学计算和解决大数据问题。

另一方面,Swift 拥有开发移动应用所需的所有工具,在并行计算方面没有问题。

Swift和Julia都拥有Python的互操作性和强大的支持

虽然 Python  在速度、多线程和类型安全方面存在缺点,但它拥有一个巨大的生态系统,拥有大量的库和包。在Python面前,Swift和Julia在机器学习领域仍然是婴儿,他们拥有的库数量非常有限。然而,它们与  Python 的互操作性弥补了 Julia 和 Swift 中缺少库支持的不足。

Julia 不仅允许程序员使用 Python 代码(反之亦然),还支持与 C、R、Java  以及几乎所有主要编程语言的互操作性。这种多功能性肯定会给这种语言一个很好的推动,并增加它在数据科学家中被迅速采用的机会。

另一方面,Swift 通过 PythonKit 库提供了与 Python  的互操作性。Swift(起源于苹果)比较大的卖点是它得到了谷歌(Google)的大力支持,谷歌几十年前就全力支持 Python。

另外,Swift 的创建者 chrislattner 现在正在谷歌的 ai brain 团队工作,这一事实表明 Swift 正在被培养成机器学习领域  Python 的替代者。Tensorflow 团队通过 S4TF 项目投资了 Swift,这进一步证明了该语言不仅仅是 Python 的包装器。相反,Swift  凭借其差异化的编程支持和像 C 一样的低级工作能力,将有可能被用来取代底层的深度学习工具。

感谢各位的阅读,以上就是“Python的缺点有哪些”的内容了,经过本文的学习后,相信大家对Python的缺点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Python的缺点有哪些

本文链接: https://www.lsjlt.com/news/282336.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的缺点有哪些
    这篇文章主要讲解了“Python的缺点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的缺点有哪些”吧!Python 是20世纪90年代发布的一种通用编程语言。虽然 Pyth...
    99+
    2023-06-16
  • PXC的缺点有哪些
    这篇文章主要介绍“PXC的缺点有哪些”,在日常操作中,相信很多人在PXC的缺点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PXC的缺点有哪些”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • VPS的缺点有哪些
    VPS的缺点有:1、VPS的性能和资源受制于服务器母机,如果服务器母机配置较低,VPS的性能就会比较差;2、VPS容易被流量攻击连累,当服务器母机或其他VPS遭受流量攻击时,会影响整体VPS的正常运作;3、VPS受虚拟化技术限制,采用不同虚...
    99+
    2024-04-02
  • win11的缺点有哪些
    Win11的缺点包括以下几点:1. 硬件要求高:Win11对硬件的要求相对较高,需要64位处理器、4GB的内存和64GB的存储空间,...
    99+
    2023-08-31
    win11
  • Python编辑器的优缺点有哪些
    本篇内容主要讲解“Python编辑器的优缺点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python编辑器的优缺点有哪些”吧!什么是 IDE?IDE 有什么用?IDE 是开发者创建程序时...
    99+
    2023-06-16
  • vuejs缺点有哪些
    这篇文章主要介绍了vuejs缺点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 vuejs缺点:1、不缺入...
    99+
    2024-04-02
  • javascript有哪些缺点
    这篇文章主要介绍了javascript有哪些缺点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 javascri...
    99+
    2024-04-02
  • LINQ有哪些缺点
    本篇内容介绍了“LINQ有哪些缺点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LINQ前景目前的LINQ还是非常之不完善的,不论是LINQ...
    99+
    2023-06-17
  • laravel有哪些缺点
    这篇文章主要介绍了laravel有哪些缺点,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。laravel框架的缺点有:1、基于组件式的框架,比较臃肿;2、框架大,比yaf等小型...
    99+
    2023-06-29
  • chatgpt有哪些缺点
    本篇内容主要讲解“chatgpt有哪些缺点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“chatgpt有哪些缺点”吧! chatgpt的不足点1、出现了事实性...
    99+
    2023-02-09
    chatgpt
  • SqlServer的优缺点有哪些
    这篇文章主要介绍了SqlServer的优缺点有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。优点:易用性、适合分布式组织的可伸缩性、用于决策...
    99+
    2024-04-02
  • Redis的优缺点有哪些
    这篇文章将为大家详细讲解有关Redis的优缺点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、Redis 是什么?通常而言目前的数据库分类有几种,包括 SQL/N...
    99+
    2024-04-02
  • Ajax的优缺点有哪些
    这篇文章主要介绍Ajax的优缺点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Ajax,全称 Asynchronous Javascript and XML,是一个动态的WEB...
    99+
    2024-04-02
  • React的优缺点有哪些
    React的优缺点:1、React优点,速度很快、性能好、跨浏览器兼容、代码模块化重用性高、单向数据流、兼容性好;2、React缺点,不适合单独做一个完整的框架,本身只是View。具体内容如下:React:React主要用于构建UI。你可以...
    99+
    2024-04-02
  • vue的优缺点有哪些
    vue的优缺点:1、vue优点,它属于轻量级框架、简单易学、支持双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快;2、vue缺点,在实现多页应用时需要配置多入口,不够灵活,并且不支持IE8。具体内容如下:Vue.js:其实Vu...
    99+
    2024-04-02
  • angularjs的优缺点有哪些
    这篇文章主要介绍angularjs的优缺点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!谈到流行的开源web app框架,那一定少不了angularjs,angularjs能够解决阻碍单页应用程序开发的各种挑战...
    99+
    2023-06-14
  • android handler的缺点有哪些
    Android Handler的缺点有以下几点:1. 容易引起内存泄漏:Handler通过消息队列来处理消息,如果使用不当,可能会导...
    99+
    2023-09-20
    android
  • java hibernate的缺点有哪些
    Java Hibernate的缺点包括: 学习曲线陡峭:Hibernate是一个复杂的框架,对于开发人员来说,需要花费一定的时间...
    99+
    2023-10-23
    java hibernate
  • MemSQL的优缺点有哪些
    MemSQL是一种内存数据库管理系统,它具有以下优点和缺点: 优点: 高性能:MemSQL是基于内存的数据库,能够提供快速的数据读...
    99+
    2023-10-24
    MemSQL
  • Ajax的优点与缺点有哪些
    这篇文章主要介绍“Ajax的优点与缺点有哪些”,在日常操作中,相信很多人在Ajax的优点与缺点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ajax的优点与缺点有哪些”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作