官方 将于2020年1月1日正式退出历史舞台 Python 2

官方 将于2020年1月1日正式退出历史舞台 Python 2

自 2008 年发布以来,Python 2.0 已经走过了十多个年头。它的最后一次重大更新 Python 2.7 是在 2010 年。Python 2.x 是一个优异的语言版本,但与此同时也带来了相当大的历史包袱。lexy munroe 在博客中悉数列举了它的缺陷,“ 例如,它有两种整数类型;存在恼人的 Unicode 编码问题;它混淆了懒惰和渴望的功能工具;它有一个标准的库,但加载内存非常庞大;它自诩的强类型,却有偶尔令人啼笑皆非的运算结果 None < 3 < “2”。总的来说,它的一些“阴暗角落“,包含了 Python 1 时代太多的历史包袱。“

由于修复这些问题可能会破坏现有代码,而几乎所有为 2.0 编写的代码仍可在 2.7 上运行。因此,一个不太兼容的新版本 Python 3 应运而生。设计之初,Python 3 的预期是用户会直接转移到新版本,从而放弃使用 Python 2 。而实际上,大多数的库希望同时在 Python 2 和 Python 3 上运行,这在一开始很难运作。众多周知,Python 社区对变革的抵抗力总是很强。 Python 3.0 在 2008 年 12 月发布后,花了整整四年时间,直到 2013 年 1 月,它的月下载量才超过 Python 2 。

意识到许多用户仍在使用 Python 2 ,Python 的开发人员已经将对 Python 2.7 的支持从 2015 年延长到了 2020 年。由于开发人员仅修复错误,并把所有新功能仅限在 Python 3 上使用,许多项目已经减少了对 Python 2.7 的支持。

现在, PyPI 的大部分流行软件包都可以在Python 2 和 3上运行,而且每天都会添加新的软件包。此外,许多关键的 Python 项目已承诺将尽快停止对 Python 2 的支持。

停止支持 Python 2 的项目时间表

Python 各分支的状态

根据JetBrains Python 开发者调查,绝大多数用户(84%)已经改用 Python 3 。其中, 54% 使用 Python 3.6 ,30% 使用 Python 3.7 。

看起来,结论似乎显而易见,你应该开始使用 Python 3 了 ,因为它才是 Python 的未来!

然而,事实上,对 Python 版本的选择取决于公司的实际应用情况。目前仍有不少银行和金融公司使用 Python 2.7 。去年,当 Python 宣布 Python 2 将于 2020 年正式结束时,Hacker News用户就曾表示业内数百万人仍在使用 Python 2.7 。

让我们再看一组最新数据,根据Python Package Index的调查结果,在十大流行 Python 包中,前四个软件包的 Python 2 下载量比 Python 3 还要大,甚至 Python 3 更受欢迎的大部分软件包仍适用于 Python 2 。

本月早些时候, PyPy 表示,只要 PyPy 存在,他们就不打算放弃对 Python 2.7 的支持。外媒 Packt Hub解读,这种对 Python 2 的偏爱不仅仅是因为 PyPy 的第一个版本是 Python 2 实现, Python 3 最近才进入这一版本,这也是 PyPy 生态系统的关键部分,是一个动态语言实现框架,它的基础就是 Python 2 。

因此,Python 2 的离场也会带来一些问题。英国国家网络安全中心(NCSC)研究员 Rich M 在官方博客中总结出以下几点:

1.依赖项

正如前文所说,像 Numpy , TensorFlow 这样的流行项目已经承诺 2020 年停止支持 Python 2.x 。这意味着如果你想使用你喜欢的模块的最新功能,就必须使用 Python 3 。等待更新的时间越长,更改的依赖项的 Python 3 版本就会越多,更新就会更困难。

2.可能阻碍其他开发人员

如果你维护其他开发人员所依赖的库,则可能会阻碍其更新到 Python 3。这意味着你在无形中增加其他开发人员的安全风险。你也许不在组织外部发布任何代码,但要考虑可能在内部使用你的代码的同事。

3.错过新功能

Python 3 有许多 Python 2 用户没有尝试过的新功能,包括:

英国国家网络安全中心(NCSC)近日将现有应用程序中的安全风险和可能发生的代码破坏列为用户需要尽快弃用 Python 2 的主要原因。该机构警告说,那些不为迁移到 Python 2.x 投资的公司最终可能面临和 Equifax 或 WannaCry 同样的处境。“在知道有可用的安全版本的情况下,仍铤而走险,决定在生命周期结束后继续使用 Python 2 ,您将需要承担使用不受支持的软件带来的所有风险。”

为了方便用户过渡, Python 团队也提供了各种信息丰富的指南。(例如:Porting Python 2 Code to Python 3;Should I use Python 2 or Python 3 for my development activity?)但无论如何, Python 2.x 仍有一群忠实粉丝。现在,是他们该做出选择的时刻了。

Time to shed Python 2

UK cybersecurity agency warns devs to drop Python 2 due to looming EOL & security risks

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。