2020,Python 已死?
点击上方“大鱼机器人”,选择“置顶/星标公众号”
福利干货,第一时间送达!
自从 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 已死?相关推荐
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
- vb还是python强大-VB已死,Python当立 | 忆云竹
据澎湃新闻近日消息,山东省在其最新出版的小学信息技术六年级教材中,加入了Python的内容.在此之前,编程界也一直有传言,称浙江省将对中学信息技术教材进行改动,弃VB(Visual Basic 6.0 ...
- 为什么要用python不用origin_Python告诉你为什么百度已死
Python3爬虫百度一下,坑死你? 一.写在前面 这个标题是借用的路人甲大佬的一篇文章的标题(百度一下,坑死你),而且这次的爬虫也是看了这篇文章后才写出来的,感兴趣的可以先看下这篇文章. 前段时间有 ...
- centos代码切换图形_CentOS已死;微软将强行升级部分旧版本 Windows 10 用户;黑客远程打开莫斯科近3000个快递柜...
编辑 | 万佳 本周架构视点:CentOS 8 落幕,CentOS 已死:微软将强行升级部分旧版本 Windows 10 用户:Travis CI 不再为开源项目提供免费服务:JavaScript 诞 ...
- TensorFlow已死,TensorFlow万岁!
如果你是一名人工智能爱好者,却没有关注到一条重大新闻,就好比你在一场罕见的地震中打了个盹.等你醒来,会发现一切都将改变! TensorFlow 2.0来了! 革命就在这里!欢迎来到TensorFlow ...
- 传华为将抢先苹果首发卫星通信 ;1200亿亿次每秒,阿里上线世界第一智算中心;wxPython团队辟谣已死传闻|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- 英特尔:谁说深度学习已死?AI任务挑大梁的是CPU,不是GPU
https://mp.weixin.qq.com/s/9GLT6SkfiiIFVNlVtCIFhg 英特尔副总裁在受访时表示,"深度学习已死"这类报道完全属于夸大其词,深度学习是A ...
- 试图将驱动程序添加到存储区_SQL 已死,但 SQL 将永存!
(给数据分析与开发加星标,提升数据技能) 编译:CSDN-弯月,作者:Jennifer Ouellette 在 SQL 被引入的 45 年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的 ...
- python进入高考-Python已进入小学教材将加入高考
当前AI人才极度紧缺,据<中国ICT人才生态白皮书>研究分析,到2018年底,我国人工智能人才缺口将突破100万,到2020年,这一数字将攀升到226万. 在过去的几年中,Python已经 ...
最新文章
- 下一次工业革命:计算生物学与生物平台
- puppet 自定义facter
- Vue精简版风格指南
- BILIBILI 高并发实时弹幕系统的实战之路 | 架构师实践日
- STM32单片机如何使用JLINK下载
- linux语言windows 语言,作业系统一般用什么编码语言程式设计?如:Windows,Linux,是组合语言吗?还是自己开发的程式码?...
- sharepoint 判断用户是否存在某个组中三种方法
- 【收藏】编译安装keepalived
- HDU1016 Prime Ring Problem dfs+回溯
- 【leetcode】27.RemoveElement
- RC电路输出波形的时域与频域分析
- (筆記) Continuous Assignment的幾個特色 (SOC) (Verilog)
- Cocos2d-x 3.0 开发(七)在程序中处理cocoStudio导出动画
- 简单.bat 代码蓝屏
- FLASH(M25P16)-RDID时序代码及仿真波形(内含M25P16仿真模型文件)
- S老师 Top-Down RPG Starter Kit 学习
- Unity - Projector - 实时[假]阴影
- windows 打印机管理机制(任务后台等待机制)
- 在Word中上下两张表格合并不了的解决办法
- 欧几里德算法(Euclidean algorithm)
热门文章
- 如何在SAP Cloud for Customer的Silverlight UI中找到后台错误的明细
- SAP Business Application Studio的权限控制
- SAP ADBC和JDBC的对比
- SAP UI5 Opportunity type long description empty issue
- SAP ui5 resize handler
- 什么是服务器的SSL PSE
- SAP odata消费失败的故障排错
- SAP权限对象_SAP_APP
- QGS/300 performance issue
- Kubernetes pod状态出现ImagePullBackOff的原因