Python 2.X 和 3.X 系列 —— 今日故事

未匹配的标注

在 2013 年编写第五版的时候, Python 已升级到 3.3 和 2.7 版本。但是 2.X/3.X 的故事仍然几乎没有改变。事实上, Python 现在是一个双版本的世界,许多用户根据它们软件的目标和依赖同时运行 2.X 和 3.X 。对于许多新手来说,在 2.X 和 3.X 中的选择仍然存在——现存软件对语言的最新技术。虽然许多主要的 Python 包都已经移植到 3.X,但是目前仍然有许多其它(包)只在 2.X 上。

对于一些观察家来说, Python 3.X 现在被视作探索新想法的沙盒,而 2.X 被视为久经证明的 Python,它没有 3.X 的所有功能,但是仍然使用得更广泛。其它人仍然认为 Python 3.X 是未来,一个观点似乎被当前的核心开发者计划所支持:Python 2.X 将继续被支持,但它是最后的 2.X 然而 3.3 是 3.X 系列持续进化中最新的版本。另一方面,像 PyPy 这种提议——现在仍然只是一个 2.X 的 Python 实现,它提供了非常好的性能提升——如果它不代表一个完全的派系,那么就代表了 2.X 的未来。

搁置所有的意见,在 3.X 发布 5 年后,它的用户基数还是没有超过甚至是匹配 2.X 的。作为一个指标,2.X 目前在 python.org 上 的 windows 平台 的下载量 仍然比 3.X 的要多,尽管事实上这个标准会自然地倾向于新用户和最近的发布。当然,这种统计是很容易改变的,但在 5 年后(还是如此)表明了 3.X 的普及(不如预期)。现存的 2.X 软件基础仍然超过 3.X 的语言扩展许多。而且,作为 2.X 系列的最后一个版本,使得 2.7 处于某种事实上的标准,而不会被 3.X 系列中持续地更改所影响——这对那些寻求稳定版本的是一个好事,但是对那些寻求增长和持续相关的人是一个坏消息。

个人来说,我认为今天的 Python 世界已经大到足够同时容纳 3.X 和 2.X;它们看起来满足不同阵营的目标和需求。而且对于这种现象在其它语言家族中也有先例(比如 C 和 C++ 就有长期的共存。虽然它们之间的不同比和 2.X 和 3.X 的不同更多)。而且因为它们如此相似,通过学习任一 Python 系列获得的技巧,几乎能完全地转换到另外一个系列。特别是如果你被像本书这样的双版本资源帮助的话。事实上,只要你懂得它们是如何出现分歧的,通常是可能写出在两个版本上都能运行的代码。

同时这个分歧让程序员和图书作者处于两难境地,而且没有减弱的迹象。虽然对一本书来说,假装 Python 2.X 从来不存在,然后只讲解 3.X 会更容易,但是这不会解决目前存在的庞大的 Python 用户群的需求。大量现存的代码是为 Python 2.X 写的,它不会在短期内消亡。虽然一些语言的新手能够并且应该主要关注 Python 3.X,但是任何必须使用老代码的人目前都仍需要保持一只脚在 Python 2.X 的世界。许多第三方的库和扩展被转移到 Python3.X 还有几年,这个分歧可能不会是完全临时的。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 查看所有版本


暂无话题~