被业界称为“瑞士军刀”的编程语言,可能会被更适合该任务的其他语言取代吗?
自从1990年代初Python发布以来,它引起了很多热议。当然,编程社区花了至少20年的时间才逐渐注意到它的存在,而当它一旦开始流行起来,它的流行程度就远远超过了C,C#,Java甚至Javascript。
尽管Python在数据科学和机器学习领域以及某些程度上在科学和数学计算领域占据着主导地位,但与诸如Julia,Swift的较新语言相比,它似乎确实有其劣势。
01 是什么使Python如此流行?
Python的迅猛发展的主要推动力之一是它的易学性和使用起来非常强大,这使得面对诸如C/C++之类语言时因陌生的语法而避开编程的人来说非常有吸引力。
该语言从根本上强调了代码的可读性。凭借其简洁明了的语法,它使开发人员无需编写大量的行代码即可表达想法和概念(在C或Java等低级语言中也是这种情况)。Python非常简单,可以与其他编程语言无缝集成(例如将CPU密集型任务卸载到C / C ++),这对多语言开发人员来说是一个额外的好处。
Python多功能性的另一个原因是企业(包括FAANG)以及无数小型企业对其的大量使用。今天,对于你可以想到的任何东西,你都可以找到一个Python软件包,对于科学计算,你可以调用Numpy,对于机器学习,你可以调用Sklearn,对于计算机视觉你可以使用Caer。
02 Python的弱点
很慢,很慢。
显而易见。速度通常被认为是开发人员关注的重点之一,开发人员一直都很关注时间的不可预测性。
Python之所以“变慢”的主要原因之一,实际上可以归结为两方面:
-
Python是解释型语言而非编译型语言,最终导致其执行时间变慢;
-
以及它是动态类型的(变量的数据类型由Python在执行期间自动推断)。
实际上,这种关于“Python慢”的说法在初学者中起了很大的影响。
是的,慢是一个问题。但也只是片面的问题。
以TensorFlow为例,这是Python提供的机器学习库。这些库实际上是用C ++编写的,并可以在Python中使用,某种程度上构成了围绕C ++实现的Python“包装器”。Numpy甚至在一定程度上也是如此。
03 Python有一个GIL(l)
Python速度缓慢的主要原因之一是GIL(Global Interpreter Lock)的存在,该功能一次只能执行一个线程。虽然这可以提高单线程的性能,但它限制了并行性,在这种并行性中,开发人员必须实现多处理程序而不是多线程程序,以提高速度。
04 不是内存密集型任务的最佳选择
当对象超出范围时,Python会自动将其放入垃圾回收。它旨在消除C和C ++涉及的许多内存管理复杂性。由于指定数据类型的灵活性(或缺乏灵活性),Python消耗的内存量可能会迅速爆炸。
此外,Python可能不会注意到的一些错误可能会在运行时弹出,最终使开发过程变慢了很多。
05 在移动计算中表现不佳
从台式机到智能手机的巨大转变,很明显,需要更强大的语言来构建用于手机的软件。尽管Python在台式机和服务器平台上具有相当大的代表性,但是由于缺乏强大的移动计算处理能力,Python往往会在移动开发方面失去优势。
近年来,在这一领域取得了很大进步,但是这些新添加的库甚至与强大的竞争对手(如Kotlin,Swift和Java)并不接近。
06 其他语言的兴起
最近,Julia,Rust和Swift等较新的语言出现在了人们的视线中,它们借鉴了Python,C / C ++和Java的许多优秀设计概念——Rust在运行时保证了内存安全性和并发性,并提供一流的与WebAssembly的互操作性;Swift对LLVM编译器工具链的支持几乎与C一样快,Julia为异步I / O提供I / O密集型任务,并且速度非常快。
07 结论
Python在设计之初就不是奔着最佳的编程语言取得。它从未试图取代C / C ++和Java,而是被构建为一种通用编程语言,强调人类可读性,其以英语为中心的语法,可以帮助快速开发程序和应用程序。
就像所有其他语言一样,Python是一种工具。有时,它是最好的工具。有时候不是。通常,它“还挺好用”的。
那么,Python作为一种编程语言是否正在消亡?
我几乎不这么认为。
它失去魅力了吗?
嗯,也许只有一点点。一点点。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python课程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、Python实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
四、Python漫画教程
用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。
五、互联网企业面试真题
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】