网站首页 实验室介绍 科学研究 学术交流 人才队伍 开放课题 招聘信息 联系我们
业内动态

 
 
 Python正在慢慢失去魅力?

2020-10-19 15:06:25


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

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

  • 是什么使Python如此流行?

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

该语言从根本上广泛强调代码的可读性。凭借其简洁明了的语法,它使开发人员无需编写大量的行代码即可表达想法和概念(在C或Java等低级语言中就是这种情况)。Python非常简单,可以与其他编程语言无缝集成(例如将CPU密集型任务卸载到C / C ++),这对多语言开发人员来说是一个额外的好处。

Python多功能性的另一个原因是企业以及无数小型企业对其的大量使用。如今,一个Python软件包几乎可以包含对于科学计算能想到的所有内容,如Numpy,Sklearn(用于机器学习)和Caer(用于计算机视觉)。

  • Python的弱点——很慢,很慢

速度通常被认为是开发人员关注的重点之一,并且可能会持续到不可预见的时长。Python变慢的主要原因之一,实际上可以归结为2–Python被解释为与编译相反,最终导致执行时间变慢;以及它是动态类型的(在执行过程中,Python会自动推断变量的数据类型)。

实际上,这种" Python慢"的观点在初学者中往往起很大作用。以TensorFlow为例,这是Python提供的机器学习库。这些库实际上是用C ++编写的,并且可以在Python中使用,有点像是围绕C ++实现的Python"包装器"。Numpy甚至在一定程度上也是如此。

  • 它有一个GIL(l)

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

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

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

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

  • 移动计算的弱势存在

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

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

  • 其他语言的兴起

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

  • 结论

Python被构建为一种通用的编程语言,强调了人类可读的,以英语为中心的语法,从而可以快速开发程序和应用程序。就像终有一天结束的所有其他语言一样,Python只是一种工具。有时,它是最好的工具。有时候不是。

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

也许只是一点点。一点点。

来源:Python is Slowly Losing its Charm

作者:Jason Dsouza

 

[ 字体大小: 14 12 9 ] [ 打印]

高效能服务器和存储技术国家重点实验室 | 联系我们 | 京ICP备12012807号-3
© 2016 Hsslab