发布于:2020-12-24 16:16:31
0
116
0
对于那些不愿意(或不能)升级到版本3的Python用户来说,还有另一个值得鼓励的原因:python.org发布了Python 2.7.18,这是Python 2的最后一个正式发行版。
虽然它没有增加太多的功能,但它确实起到了里程碑的作用。这个版本是在今年1月1日正式结束对版本2的支持之后发布的,作为最后的通知。即使出现重大的安全问题,也不会有进一步的发布。因此,如果您一直在等待迁移,那么现在可能是将您的计划付诸行动的好时机。
Python目前的版本是3.8.2,因为版本3自2008年以来一直在积极开发中。但是因为这两个版本不兼容,所以采用的速度非常慢。Vicki Boykis报告称,2019年9月从PyPI下载的所有软件包中,有40%是2.7版本的。代码的迁移是一个不小的壮举,特别是在拥有大量代码库的组织中。Dropbox从开始到完成花了三年时间。Instagram花了10个月。
最后的倒计时已经推迟了五年。这可以说是承认了最大的问题——两个版本之间的不兼容——当你考虑到人们使用的库时,这个问题就被放大了。围绕Python语言构建了一个庞大的库和工具生态系统,因此任何项目在考虑升级主项目代码之前都需要访问已更新的库。
根据您的需要,这可能不会促使您进行升级。如果您在开放服务器上运行Python,有一些安全问题可能会让您暂停。到目前为止,Python已经修补了在其库中发现的任何重大安全缺陷,包括一个影响其“ssl”实现的缺陷。这不会发生在以后发现的新缺陷上。
然而,运行本地脚本的用户可以使用他们觉得舒服的任何东西。Python的另一种实现PyPy已经同意永远支持版本2。用数学方法处理大量数据的用户可能会欣赏它的速度提高,并坚持使用旧版本。公平地说,Python从来都不是关于速度的。它是一种解释语言,所以它通常会比等效的C程序慢。
即使没有官方的支持,Python 2也可能通过社区工作接收安全更新。像PyPy和Tauthon这样的替代实现可以遵循openJDK模型:它们已经更新了Java版本6、7和8的实现,这些版本都已经到了生命的终点。如果在python2中发现新的安全缺陷,这些实现可以修补它们。
即使在这些替代实现之外,Python 2也可以继续接收更新,这要感谢一些操作系统将其作为集成库提供。红帽承诺支持该协议至2024年6月。Debian正在积极地尝试删除它,但是可能会在2024年继续支持它。
但这并不意味着你应该等待。任何新的Python库都可能是用Python 3编写的。因此,如果你想充分利用发展中的生态系统,你现在就应该升级。当网络出现致命的安全漏洞时,你肯定不想被迫升级。
在学术界,Python 2可能会存在几十年,就像COBOL在政府和行业的大型部门中所做的那样。由于其强大的数据操作和可视化功能,它在那里变得非常流行。有趣的是,研究人员正在用python2启动新的项目。而研究项目的脚本往往在项目结束后就过时了。为什么要更新已经完成的项目?
但如果你是教python2 / 3的教育家,你在伤害你的学生。Python 3将适应软件工程不断变化的需求,对新的概念和用例做出反应,而Python 2将大部分时间冻结在琥珀中。
因此,虽然Python 2可能会在未来的某个时候继续存在,但这标志着它的最后一章。很有可能,在不久的将来,您将需要转向Python 3。这可能是一件好事,因为Python 3仍然是一种积极开发的语言。举起酒杯(或一个类)来结束Python 2,并考虑重构代码以利用即将出现的新特性。
作者介绍