python会被淘汰吗

Python语法简单,使用方便,有数量极为庞大的软件包可以使用,使用Python开发的效率极高!但Python又被无数人吐槽运行效率低,更要命的是工程化开发(多人协作开发、代码量很大)时极易踩雷,出现bug难以追踪!有很多人吐槽Python应该被淘汰,传着传着就成了Python即将被淘汰!
下面我重点讲讲Python被人传言即将被淘汰的两大致命缺陷!
一、Python运行效率低
Python是一门动态语言,简单的解释一下它运行慢的原因:Python解释器在程序运行时遇到首次出现的变量,要根据它的值动态分配内存;再次用到该变量时要计算它的引用次数;在引用次数完毕后还要负责销毁变量回收内存 。而静态语言是在编译时就计算好变量占用的空间,程序加载时已经为其分配好内存,至于销毁变量回收内存的方式不同的静态语言又有区别,这里不再赘述 。通过比较可以得知,Python的便利是因为Python解释器做了非常多额外的工作,Python的效率低也正是因为Python解释器做了过多的工作 。
另外一个Python是30年前开发的编程语言,那时候还没有多核CPU , 所以那时作者没考虑到Python运行时怎么利用多核运行,Python代码运行都是靠Python解释器将代码翻译成电脑可以执行的二进制指令 。后来出现了多核CPU,很多人为了提高Python运行效率开发了Python线程包和进程包,但有一座大山至今绕不过去——GIL(全局解释器锁),造成Python软件始终没法真正利用多核CPU 。
二、Python开发工程化易踩雷
Python不能强制约束变量类型、函数参数和方法参数的类型 。Python程序有非常多的bug一方面是由于函数调用者传参不符合要求造成的;另一方面很多函数编写者编写函数时对参数检查不够细致 , 对参数不符合要求时不返回提示信息或提示信息不足 。这两种情况造成了很多隐性bug极难发现!在所有代码代码量小时这些问题不明显,但对于软件开发工程化(工作量越来越大、参与人数越来越多)是一个相当要命的缺陷!
目前Python新版本也增加了参数类型提示的语法和功能,期望上述问题有所改观,但Python要考虑兼容以前版本的软件包 , 无法做到类似typescript那样强制约束!顺带提一嘴,JavaScript也是一门类似Python的动态语言,也有对参数类型约束弱的毛病 , 在工程化开发时同样被无数人吐槽 , 所以目前前端工程化开发很流行用TypeScript(伪静态语言,最终还是要编译成JavaScript代码执行),TypeScript比JavaScript强在对参数约束力,参数不合要求根本不能通过编译!
总结:
该死的历史包袱!Python极难绕过GIL(全局解释器锁)以提高对多核CPU的利用率?。。ython也极难强制约束参数类型?。。∷訮ython被传言即将被淘汰不奇怪!
但是就好比瑞士军刀,一把小小的瑞士军刀涵盖了剪刀、螺丝刀、锤子、尺子、起子众多功能,虽然它不如专门的剪刀、螺丝刀、锤子趁手 , 但就是有人爱用瑞士军刀!只要这世上还有人爱用瑞士军刀,那么这世上一样会有人爱用Python?。。?
【python会被淘汰吗】Python是一种优点、缺点都极为鲜明的编程语言 , 它即将被淘汰是传言!
但如果想要吃程序员这碗饭,只会Python的程序员即将被淘汰不是传言!
这是个吸引眼球的问题 , 唯一好奇的是会有几个人当真 。