任何编程语言都有缺点,Python 也不例外。优点说过了,那 Python 有哪些缺点呢?
第一个缺点就是运行速度慢,和 C 程序相比非常慢,因为 Python 是解释型语言,你的代码在执行时会一行一行地翻译成 CPU 能理解的机器 码,这个翻译过程非常耗时,所以很慢。而 C 程序是运行前直接编译成CPU 能执行的机器码,所以非常快。 但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。
例如开发一个下载 MP3 的网络应用程序,C 程序的运行时间需要 0.001 秒,而 Python 程序的运行时间需要 0.1 秒,慢了 100 倍,但由于网络更慢,需要等待 1 秒,你想,用户能感觉到 1.001 秒和 1.1 秒的区 别吗?这就好比 F1 赛车和普通的出租车在北京三环路上行驶的道理一样,虽然 F1 赛车理论时速高达 400 公里,但由于三环路堵车的时速只有 20 公里,因此,作为乘客,你感觉的时速永远是 20 公里。
第二个缺点就是代码不能加密。如果要发布你的 Python 程序,实际上就是发布源代码,这一点跟 C 语言不同,C 语言不用发布源代码,只需要把编译后的机器码(也就是你在 Windows 上常见的 xxx.exe 文件)发布出去。要从机器码反推出 C 代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。
再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像 Linux 一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
当然,Python 还有其他若干小缺点,请自行忽略,就不一一列举了。