人工智能和机器学习的主导编程语言Python的发展潜力解读[图]

读书笔记小博客 2020/11/10 8:24:37

上世纪90年代初,Python面世了。近30年来,关于它的“炒作”一直没有少过。当然,编程界花了至少20年的时间才认识到它,但自那以后,它的流行程度远远超过了C、C#、Java甚至Javascript。Python仍是人工智能和机器学习的主导编程语言吗?尽管Python目前在数据科学和机器学…

上世纪90年代初,Python面世了。近30年来,关于它的“炒作”一直没有少过。当然,编程界花了至少20年的时间才认识到它,但自那以后,它的流行程度远远超过了C、C#、Java甚至Javascript。

Python仍是人工智能和机器学习的主导编程语言吗?

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

http://img1.sycdn.imooc.com/5fa92a01000169f906600382.jpg

是什么让Python如此受欢迎?

Python迅速发展的主要原因是易于学习和功能强大。这使得它对初学者,包括那些由于C、C++等语言语法艰涩且陌生而对其望而却步的人,都非常有吸引力。

该语言从根本上广泛强调代码的可读性。凭借其简洁而富有表现力的语法,它允许开发人员在不编写大量代码的情况下表达想法和概念(例如在C或Java等低级语言)。Python非常简单,可以与其他编程语言无缝集成(例如将CPU密集型任务卸载到C/C++),这对多语言开发人员来说是一个加分项。

Python用途广泛的另一个原因是大型企业(包括FAANG)以及无数小型企业对其的大量使用。如今,Python包里几乎包含了可以想到的任何东西——用于科学计算的Numpy,用于机器学习的Sklearn和用于计算机视觉的Caer。

Python也有缺点

它运行很慢,非常慢

显而易见,在未来很长一段时间里,速度都是开发人员的主要关注点之一。

Python之所以“慢”,实际上有两个原因——Python被解释为与编译相反,最终导致执行速度较慢;以及它是动态类型的(Python在执行过程中自动推断变量的数据类型)。

事实上,“Python很慢”这一说法对初学者影响很大。这是真的,但只是部分事实。以Python中可用的机器学习库TensorFlow为例,这些库其实是用C++编写的,并可以在Python中使用,某种程度上构成了围绕C++实现的Python“装饰器”。Numpy,甚至Caer,在一定程度上也是如此。

它有一个GIL(I)

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

不是内存密集型任务的最优解

当对象超出范围时,Python会自动进行垃圾回收。它旨在消除C和C++在内存管理方面的所涉及的许多复杂问题。由于指定数据类型的灵活性(或缺乏灵活性),Python消耗的内存量可能会迅速爆炸增长。此外,运行时可能会弹出Python未关注的错误,最终减缓开发过程。

移动计算中的弱存在

随着台式机到智能手机的巨大转变,很明显,我们需要更强大的语言来构建手机软件。尽管Python在台式机和服务器平台上具有很强的代表性,但是由于缺乏强大的移动计算处理能力,Python往往会在移动开发上失败。

近年来,这一领域有了很大进步,但是这些新添加的库与Kotlin,Swift和Java等强大的竞争对手相比仍有差距。

其他语言的兴起

最近,Julia,Rust和Swift等较新的语言强势入局。它们借鉴了Python,C/C++和Java的许多优秀设计概念——Rust基本保证了运行时的内存安全性和并行性,麦田的守望者读后感并提供与WebAssembly的一流互操作性;由于支持LLVM编译器工具链,Swift几乎与C一样快;而Julia为I/O密集型任务提供了异步I/O,并且速度非常快。

Python从来就是很好的编程语言,它从来没有超越C/C++和Java。它是一种通用的编程语言,强调人类可读的、以英语为中心的语法,允许程序和应用程序的快速开发。

归根结底,Python和其他语言一样,是一种工具。有时候,它是很好的工具。有时候不是。大多数情况下,只是“还不错”。

Python作为一种编程语言会消亡吗?笔者不这么认为。

那么,它的魅力正在消失吗?也许有一点,但只是一点点。


随时随地学软件编程-关注百度小程序和微信小程序
关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[人工智能和机器学习的主导编程语言Python的发展潜力解读[图]]http://www.zyiz.net/tech/detail-148841.html

上一篇:阿里云对象存储OSS的python SDK示例

下一篇:Python列表边遍历边删除,怎么用才不报越界错误呢?

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    关注微信小程序
    程序员编程王-随时随地学编程

    扫描二维码或查找【程序员编程王】

    可以随时随地学编程啦!

    技术文章导航 更多>
    扫一扫关注最新编程教程