首页 > 科技 > > 正文
2020-04-20 16:49:10

Python 2时钟已经过期现在是升级或下注的时候了

导读 编程语言随着时间的推移而演变。 当Java8在2020年12月结束生命时,它可能不会引起头条新闻。 毕竟,大多数“Java8”程序只会在Java的新版本上“运行”,因为该语言倾向于向后兼容。

编程语言随着时间的推移而演变。 当Java8在2020年12月结束生命时,它可能不会引起头条新闻。 毕竟,大多数“Java8”程序只会在Java的新版本上“运行”,因为该语言倾向于向后兼容。

Python3并非如此。

与Python3最著名的区别是简陋的打印命令.. 在Python2中,它是一个语句(没有括号),在Python3中,它是一个函数。 这意味着旧代码不会运行。 最重要的区别是整数除法,它现在默认返回一个浮点数。 更糟的是。 这意味着代码将编译-并以微妙的方式表现不同。 升级而不思考不仅仅是“出局”,它是无法理解的。

SEE:学习Python:为初始开发人员和编码专家提供在线培训课程(技术共和国)

这种变化并不令人惊讶。 Python2代码库已有20年的历史,最初的版本可以追溯到2000年。 当Python3在2008年发布时,Python2有很强的安装基础,一群程序员忙于发明Web2.0,以至于花时间在运行和转换上。 因此,Python软件基金会将Python2的报废期限从计划的2015年延长到2020年。

当创建者GuidoVan Rossum在py Con14上发布公告时,Python达到了2.7版。 他最初的幻灯片是“2.8”,周围是一个红色的圆圈,上面有一条斜线。 换句话说,Python2在未来五年中唯一的改进将是修复、安全补丁等等。 因此,维护Python的开源社区需要维护两个代码分支。

Python软件基金会将2020年1月1日定为该第二代码分支的到期日期。 它宣布了2020年4月这个月的最后一次推动,届时所有积极的发展将停止。 Python2时钟已过期。 现在是升级或启动的时候了。

当然,你可以不升级。 因为Python是免费开放的软件,“不支持”就意味着不再有补丁。 编译器仍将运行为Python2编写的程序。 不会有弹出迫使您进入下一个版本。 绝大多数Python用户一开始就没有商业支持。 例如,VisualBasic6在2008年取消了扩展支持。

然而,我的一个客户仍然在他们的数据中心有一系列VisualBasic6程序,每天处理事务。 它们转换为需要维护的系统。 如果变化足够大,NET(有时)。 我问IT阶段的副总裁兼Python软件基金会的受邀成员卡梅隆·莱尔德,这是什么大事。

卡梅伦解释了两个主要问题。 首先,对于正在进行的开发,新模块将越来越多地使用Python3。 这意味着对新工具、驱动程序、数据库的支持,以及那些尚未发明的东西。 继续使用Python2意味着将自己与其他人正在创建的子程序隔离开来,以解决常见的问题。

卡梅伦指出的更严重的问题是安全问题。 他这样说:“Python2没有蓬勃发展的开发者社区支持它修补Python3所做的安全漏洞。” 到年底,它将根本没有一个社区。

等等,等等。 软件生锈了吗? 如果Python2是20岁,并且基本上只在过去的五六年里一直在修补维护,它不应该只是继续滴答作响吗?

莱尔德指出了Python的用例随着环境的变化而变化。 新的DNS版本,新的数据库,web服务器,微服务都可以有新的版本,有新的漏洞.. Python位于这些系统之间,并且使用可能不再修补的模块具有集成点。 随着时间的推移,Python正在做的事情和它正在做的事情的本质可能会改变,从而产生过去不存在的“滥用案例”。

虽然Python没有生锈,但卡梅隆确实指出了不到一年前发现并修补了今天的Python2中的严重安全问题。 这些补丁本月停止滚动。

SEE:Python编程语言:一张备忘单(免费PD F)(技术共和国)

将代码从Python2升级到Python3不一定那么难。 计算机程序可以查找打印“helloworld”并将其转换为打印(“helloworld”)。 同样,Python3有一个新的运算符,即双斜杠,或“/”,它执行旧式的Python划分。 有大量的编码变更指南,甚至是一个完全支持的免费的“2到3”转换程序。 除了养成一些新习惯,转换看起来很容易。

莱尔德同意。 我的部分业务是帮助组织从2个迁移到3个。 我的假设是,我们可以从2迁移到3,我们可以做到这一点,没有创伤,没有吹预算或时间表。 除了少数例外,我发现我们可以做到这一点,没有具体的专业知识或培训。 许多人认为这种转换将意味着改写他们的世界-有很多不确定性和公平。 不需要。 这是可行的。

他还有像我的VisualBasic6商店这样的客户,他们在数据中心内部有系统,没有暴露在互联网上,运行几个月或几年来没有改变的代码,做了一件事,做得很好。 有一些情况下,莱尔德没有建议升级,或者,至少,没有强烈反对时,管理层决定离开系统运行。 Activate,长期以来以制作Perl和Python的Windows发行版而闻名,在12月截止日期之后,也为Python2提供了扩展的商业支持。

自从Python3在12年前发布以来,今天许多程序员都认为这是一个没有问题的问题;他们从Python3开始,从不回头。 然而,Python的一大优点是它的通用性。 在“DevOps”是一个术语之前,许多系统管理员都在运行手写的Python脚本,将代码存储在备份中,而不是版本控制中。 很可能您的组织在没有文档记录甚至是未知的地方运行了一些Python。

可能是时候检查了。

您不想错过我们关于Linux操作系统和开源应用程序的提示、教程和评论。 星期二交货