金源在线客服

在线咨询

QQ在线咨询

QQ咨询

关于pythonPython

Python 三大主要槽点,但所有的批评都正确吗?

作者: 更新时间::2023-04-21

Python 是一门了不起的编程语言,它改变了游戏规则,将编程的格局提升到了一个完全不同的层次。Python 的迅速崛起对整个行业来说都是极其有利的,但是当它越来越受欢迎时,却总是受到批评。

最近,我看过一些文章和视频,它们似乎都在表明,Python 的辉煌时代行将终结。由 Python 引发的批评经常有:“它是一种缓慢的语言”、“全局解释器锁”、“动态类型”,“移动应用程序缺乏支持”等。所有的批评都正确吗?它们真的重要吗?在这个十年的剩余时间里,Python 还能如此重要以及保持完整性吗?今天,我们将对事实进行分析,破除一些误解。

1、Python “非常缓慢”

不可否认的是,与 C、C++、Java 等编程语言相比,Python 的速度的确非常缓慢。那些编程语言之所以速度更快,主要原因之一是,它们是静态类型的,而 Python 是一种动态类型的编程语言。

这些语言是在运行之前就进行编译的,而 Python 是在运行时编译。

Python 还从其他编程语言(而不是本机代码)导入外部库。

简单地说,这些因素是导致 Python 速度缓慢的主要原因,但是这确实是个问题!

很重要吗?

对于最终用户来说,这几乎没有什么区别。不管程序是以 0.0001 秒还是 0.001 秒的时间运行,都不重要。

此外,如果你的计算速度是一个重要的因素,那么值得注意的是,汇编级语言将比 C、C++ 甚至 Java 都要快得多,但几乎并没有什么人使用它们。

然而,Python 更快的开发速度和整体简单性弥补了它在速度上的不足。

也就是说,可以对 Python 代码进行优化,使其执行速度稍微快一些。即使改善并不显著,但对于大多数情况而言,应该也不会有太大的问题。


2、全局解释器锁

Python 全局解释器锁(Global Interpreter Lock,GIL)是 Python 处理进程时使用的一种进程锁。通常,Python 只使用一个线程来执行一组编写的语句。全局解释器锁限制了 Python 开箱即用的并行编程。

这意味着在 Python 中,每次只能有一个线程。对于 Python,单线程进程和多线程进程的性能是相同的。造成这个问题的原因就是全局解释器锁。

很重要吗?

全局解释器锁是 Python 的一个有争议的特性。它的引入是为了避免内存泄漏和死锁问题。

它对整个计算过程的负面影响大于正面影响。不过,这在一定程度上可以通过 Python 中的多处理来解决这一问题。

多处理可以使你同时运行多个不相关的进程。多处理比多线程更适用于 CPU 密集型任务,也更值得推荐。


3、对移动应用开发贡献不足

在移动开发行业中,Java 和其他编程语言占据了主导地位。像 Android Studio 之类的应用程序使用 Java 和 XML 这样的编程语言。

Python 为计算机和服务器端系统提供了各种各样的开发。但遗憾的是,Python 并不适合开发移动应用程序。实际上,Python 甚至被认为对于基于移动设备的应用程序来说是一种较弱的编程语言。

很重要吗?

智能手机、平板电脑和其他小型设备的普及程度正在上升。Python 在这方面的不足,可能会妨碍它作为一门优秀的编程语言在未来的存在和发展。

不过,事情可能并不会像预期的那样“黯淡”,因为随着 Python 的发展以及对语言和框架的不断更新,它甚至可能会为移动应用程序开发开辟出一个市场。

重要的是要认识到 Python 缺乏亮点。但是,了解这些因素对普通程序员的影响程度也很重要。

现在让我们来看看让 Python 变得强大的因素,以及为什么它未来几年将会如此重要。


上一篇:为什么Python如此流行?
下一篇:为什么学习Python?