自从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会消亡吗?
我不这么认为。
它逐渐失去魅力了吗?
啊,也许只是一点点,只是一点点。
原文标题:python正在慢慢褪色
文章出处:【微信公众号:悟空智能科技】欢迎添加关注!文章转载请注明出处。
北欧航空将与空客共同探索如何在交通营运中引入油电混合动力飞机
产能超350GWh 大圆柱规模化量产倒计时
中国春节短信发送量或创新纪录
Intel自驾车处理器产品2020年问世
2018CES上的智能硬件表现如何?这篇文章告诉你
Python正在慢慢褪色吗?
华灿光电发布2019年半年度报告 营收同比下滑23.02%
电磁阀使用注意事项
什么是smt钢网
荣耀9怎么样?目前最具性价比的麒麟960手机,不是荣耀9,而是亲兄弟的荣耀v9
小丸工具箱怎么压制音视频教程解析?
TCL华星宣布LCD屏下指纹已量产,改变LCD屏下指纹的尴尬局面
如何有效降低直流无刷伺服电机的噪音
字母检索SMT术语详解
回流焊和波峰焊是什么?
LWK-ZB(TH)数显多路凝露温度监控器
Curve Fitting the Error of a B
工业线扫镜头的参数含义
华硕ROG Phone 3现身ECC认证网站,单核902,多核3074
微芯计划收购美高森美 交易面额达645亿