Python这门语言从一开始就是一个玩具语言,它不是给正经程序员用的东西。
运行效率低
Python运行效率很低,这就导致Python中很多库底层实际上是C++。很多时候,自己千方百计优化的结果就不如用C++暴力效果好。Numpy成了Python的中流砥柱,凡事要想高效,就往Numpy上靠。这就导致一个库劫持了一个语言。
用Python的时候,你是无法进行复杂度分析的,Python封装得过于严密,空间时间完全脱离了程序员的控制,变得奇形怪状。两个都是O(n)的操作,效率可能差异很大,原因可能很奇葩。
靠缩进来表示代码块
没有括号,粘贴代码时总是小心翼翼。代码略微写长些,就忘记了缩进的层次,需要按几次退格键才能退出上面的多重循环,这个任务需要一把游标卡尺,或者需要一个很大的屏幕。
线程
线程无法充分利用多核,进程又过于沉重甚至需要复制很多数据。
描写逻辑时语法薄弱
许多高妙的算法都是基于数组下标或者指针的来回跳转,C系列语言提供了灵活的for语句,可以很直观的表达。Python的for却很弱,只能使用while循环,这就导致Python写起来像汇编语言一样,代码并不简洁。
弱类型
Python虽然提供了灵活的内置的字典、列表、元组,这些基础类型可以取代Java中的许多对象,这是Python的优势。
当拿到一份Python代码时,弱类型让人难以理解。而Java中的冗长却出处互相印证,一眼看去立马明白,让人很有成就感。
弱类型导致IDE无法提供足够强大的代码提示。
弱类型导致程序员不太敢重构,语言影响思维。