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的程序员即将被淘汰不是传言!
这是个吸引眼球的问题 , 唯一好奇的是会有几个人当真 。
- 披荆斩棘的哥哥二公淘汰名单 三位哥哥会被淘汰
- 中秋节适合见女方家长吗 空手去会被人笑话的
- 女生一直找男生聊天男生会烦吗 主动找男生聊天会不会被烦
- 日本的绝对技术优势为何会被中国超越呢,中国能全面超越日本吗
- 披荆斩棘的哥哥三公淘汰名单 两个人遗憾出局
- 披荆斩棘的哥哥四公淘汰名单 獒犬这一次终于淘汰了
- 披荆斩棘的哥哥四公分组名单 这一次还会淘汰4人
- 形容不会被人理解的成语
- 日本女性三高「三不男更受日本女人欢迎三高男为啥会被日本女人抛弃」
- 你知道鱼也会被淹死吗 快给鱼上氧气瓶