点击上方“大鱼机器人”,选择“置顶/星标公众号”

福利干货,第一时间送达!

自从 20 世纪 90 年代初发布以来,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 (Global Interpreter Lock) 的存在 -- 它一次只允许一个线程执行。这虽然有助于提高单线程的性能,但限制了并行性,而开发人员为了提高速度必须实现多线程处理程序。

不是内存密集型任务的最佳选择

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

此外,在运行时,一些 BUG 可能会被 Python 忽略,最终成为延缓开发过程的主要诱因。

在移动计算中表现牵强

随着从台式机到智能手机的迁移,显然,人们需要为手机软件构建更强大的语言。虽然 Python 在计算机和服务器平台上有不错的表现,但由于缺乏强大的移动计算处理能力,在移动开发中它往往会失去优势。

近年来,(Python)在这方面有了很大的进步,但这些新增加的库与他们强大的竞争对手相比,如 Kotlin,Swift 和 Java,还相去甚远。

其他语言的兴起

最近,像 Julia、Rust 和 Swift 这些新出现的语言,借用了 Python、C/C 和 Java 的许多良好设计概念 ——Rust 确保了运行时的内存安全和并行,并提供了与 Web Assembly 的一样的互操作性;由于它支持 LLVM 编译器工具链,Swift 几乎和 C 一样快;Julia 提供了用于 I/O(输入 / 输出)密集任务的异步 I/O,而且速度惊人。

结论

Python 并非最好的编程语言,它无法取代 C/C++ 和 Java。它被打造成一种通用的编程语言,强调可读性、以英语为中心的语法。人们利用它可以快速开发程序和应用程序。

和其他语言一样,Python 只是一种工具。某些应用场景下,它是最好的工具;在另一种场景下,它或许不是。在大多数情况下,它 “挺好用的”。

那么,作为一种编程语言,Python 会消亡吗?

我不这么认为。

它逐渐失去魅力了吗?

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

-END-

来源 | 大数据文摘,medium

整理文章为传播相关技术,版权归原作者所有 |

| 如有侵权,请联系删除 |

往期好文合集

知乎热议:嵌入式开发中C++好用吗?

任正非送别荣耀:“离婚”就不要藕断丝连,要做华为最强的对手

中国35位“大国工匠”榜单出炉!西工大、西电合计占半壁江山!清华仅1人!

最 后

若觉得文章不错,转发分享,也是我们继续更新的动力。

5T资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、单片机、等等

在公众号内回复「更多资源」,即可免费获取,期待你的关注~

2020,Python 已死?相关推荐

  1. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  2. vb还是python强大-VB已死,Python当立 | 忆云竹

    据澎湃新闻近日消息,山东省在其最新出版的小学信息技术六年级教材中,加入了Python的内容.在此之前,编程界也一直有传言,称浙江省将对中学信息技术教材进行改动,弃VB(Visual Basic 6.0 ...

  3. 为什么要用python不用origin_Python告诉你为什么百度已死

    Python3爬虫百度一下,坑死你? 一.写在前面 这个标题是借用的路人甲大佬的一篇文章的标题(百度一下,坑死你),而且这次的爬虫也是看了这篇文章后才写出来的,感兴趣的可以先看下这篇文章. 前段时间有 ...

  4. centos代码切换图形_CentOS已死;微软将强行升级部分旧版本 Windows 10 用户;黑客远程打开莫斯科近3000个快递柜...

    编辑 | 万佳 本周架构视点:CentOS 8 落幕,CentOS 已死:微软将强行升级部分旧版本 Windows 10 用户:Travis CI 不再为开源项目提供免费服务:JavaScript 诞 ...

  5. TensorFlow已死,TensorFlow万岁!

    如果你是一名人工智能爱好者,却没有关注到一条重大新闻,就好比你在一场罕见的地震中打了个盹.等你醒来,会发现一切都将改变! TensorFlow 2.0来了! 革命就在这里!欢迎来到TensorFlow ...

  6. 传华为将抢先苹果首发卫星通信 ;1200亿亿次每秒,阿里上线世界第一智算中心;wxPython团队辟谣已死传闻|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  7. 英特尔:谁说深度学习已死?AI任务挑大梁的是CPU,不是GPU

    https://mp.weixin.qq.com/s/9GLT6SkfiiIFVNlVtCIFhg 英特尔副总裁在受访时表示,"深度学习已死"这类报道完全属于夸大其词,深度学习是A ...

  8. 试图将驱动程序添加到存储区_SQL 已死,但 SQL 将永存!

    (给数据分析与开发加星标,提升数据技能) 编译:CSDN-弯月,作者:Jennifer Ouellette 在 SQL 被引入的 45 年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的 ...

  9. python进入高考-Python已进入小学教材将加入高考

    当前AI人才极度紧缺,据<中国ICT人才生态白皮书>研究分析,到2018年底,我国人工智能人才缺口将突破100万,到2020年,这一数字将攀升到226万. 在过去的几年中,Python已经 ...

最新文章

  1. 下一次工业革命:计算生物学与生物平台
  2. puppet 自定义facter
  3. Vue精简版风格指南
  4. BILIBILI 高并发实时弹幕系统的实战之路 | 架构师实践日
  5. STM32单片机如何使用JLINK下载
  6. linux语言windows 语言,作业系统一般用什么编码语言程式设计?如:Windows,Linux,是组合语言吗?还是自己开发的程式码?...
  7. sharepoint 判断用户是否存在某个组中三种方法
  8. 【收藏】编译安装keepalived
  9. HDU1016 Prime Ring Problem dfs+回溯
  10. 【leetcode】27.RemoveElement
  11. RC电路输出波形的时域与频域分析
  12. (筆記) Continuous Assignment的幾個特色 (SOC) (Verilog)
  13. Cocos2d-x 3.0 开发(七)在程序中处理cocoStudio导出动画
  14. 简单.bat 代码蓝屏
  15. FLASH(M25P16)-RDID时序代码及仿真波形(内含M25P16仿真模型文件)
  16. S老师 Top-Down RPG Starter Kit 学习
  17. Unity - Projector - 实时[假]阴影
  18. windows 打印机管理机制(任务后台等待机制)
  19. 在Word中上下两张表格合并不了的解决办法
  20. 欧几里德算法(Euclidean algorithm)

热门文章

  1. 如何在SAP Cloud for Customer的Silverlight UI中找到后台错误的明细
  2. SAP Business Application Studio的权限控制
  3. SAP ADBC和JDBC的对比
  4. SAP UI5 Opportunity type long description empty issue
  5. SAP ui5 resize handler
  6. 什么是服务器的SSL PSE
  7. SAP odata消费失败的故障排错
  8. SAP权限对象_SAP_APP
  9. QGS/300 performance issue
  10. Kubernetes pod状态出现ImagePullBackOff的原因