全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
941 0
2020-10-14
Python 2生命终止宣布为2020年1月1日
在大会,Python公告列表以及无数博客文章和书籍上散布新闻之后,Python软件基金会终于迈出了一步,正式宣布python 2将于2020年1月1日到期(EOL)。
Python基金会试图大声而清晰地传达的信息是,开发人员应尽快过渡到Python 3,而无需再等待:
我们已经决定将2020年1月1日定为Python 2停产的那一天。这意味着即使有人发现其中的安全问题,我们也不会在这一天之后对其进行改进。您应该尽快升级到Python 3。
Python 3的创建者Guido Van Rossum于该语言问世9年后,于2008年底发布了该语言。
从一开始,Python 3就是要摆脱过去,它是修复许多影响Python 2并促进语言发展的缺陷的唯一方法。由于Python 2积累了完成同一任务的多种方式,因此语言重新设计的指导原则之一就是确保只有一种明显的方式可以完成一项任务。
尽管为不受限制的语言的未来发展铺平了道路,但向后兼容的突破也极大地减慢了Python 3的采用速度。究其原因,导致开发者不希望过渡到Python 3包括:Python 3的子标准杆的成绩与Python 2中,至少在最初的3.0版本后,直到3.3版本的一些年上路了; 最初在第三方工具和Python库中缺乏对Python 3的支持(catch-22的情况);并将其重点放在开发人员一开始并不认为相关的功能上。
尽管存在这些问题,但这些年来,该语言仍在显着增长,包括高级生成器,例如生成器和协程,异步/等待,并发期货,迭代工具等。虽然在一段时间内确实确实存在一些关于如何同时处理两个源不兼容版本的语言的困惑,但是将Python 2代码移植到Python 3现在是一个更好理解的问题,对于这个问题,出色的工具存在诸如caniusepython3,Futurize,Modernize和pylint。
所有这些都使许多组织无限期地推迟了向更加现代和更具表现力的语言的过渡。直到现在,就是说,当Python基金会警告他们时,他们将很快独立发展,而获得支持的唯一方法是支付扩展支持。
这个消息引起了不同的反响。一方面,许多开发人员强调了将代码移植到Python 3的简单性。
Python 2到3(至少3.3左右)是我做过的最简单的转换之一。有一个库(“六个”)可以提供帮助,在几乎所有情况下,您都可以编写2和3兼容的代码,这意味着您可以逐个编写代码。
更重要的是,一些人认为,准备好使用Python 3并不需要采取良好的工程实践,例如保持单元测试的状态并确保使依赖项保持最新。
如果您现在还没有将Py2更新为Py3应用的优先级,我真的认为您的商店有错误的优先级。不只是Py2 / 3。依赖腐烂是最严重的技术债务形式之一。它通常显示损坏的CI,损坏的安全扫描,许多通常被破坏的流程,这只会继续伤害着整个团队。
其他人指出,在绝大多数情况下,例如在Django或基于Flask的项目中,移植可能是容易或可行的,但是在很多情况下,将命中移植到某种类型的塞子中,例如不兼容的C扩展或不可替代的依赖关系。在计算机图形/视觉效果和科学计算世界中通常是这种情况。
用户和工作室受到阻碍,因为Python运行时在主要应用程序中使用;Nuke,Houdini,Maya以及库和API。他们都还没有发布运行Python 3的版本。[...]另外,我曾在许多人可能听说过的夫妇工作室工作,但他们都没有涵盖大部分代码的单元测试。重点是帮助内部艺术家的工具,在这些工具中,对需求的响应比建筑和完整性更受重视。
整个科学堆栈都是“可怕的C扩展”。这也是预算相对紧张的一种,需要相对罕见的Python / C开发人员。
其他开发人员抱怨说,尽管尽了所有努力使整个社区意识到Python 2.7 EOL,但Python 2文档仍然没有向其查看者提供任何暗示。
与此相对的是PostgreSQL网站,它告诉我我正在浏览旧文档(因为Google仍然提供旧链接),请参见例如https://www.postgresql.org/docs/9.2/tutorial-window.html
从一开始,这再次使从Python 2到Python 3过渡的“不良”处理成为焦点。
其他开发人员将Python方法与听起来更“不会破坏用户空间”的方法进行了对比,该方法使使用它们编写的语言和系统具有更长的使用寿命,这通常是理想的。
从70年代开始,我们已经有了大量的FORTRAN代码,它们可以与最新,最强大的FORTRAN编译器配合使用(禁止使用过时警告,以帮助指导重构工作)。与80年代的C / C ++相同。
最后一点,值得一提的是,Python Foundation的发布并不排除其他组织承担维护Python 2.7并保持最新状态的负担。例如,RHEL 7基于Python 2.7,并保证安全/维护支持到2024年6月。这同样适用于真正的谷歌应用程序引擎和其他企业的服务供应商。

关注 CDA人工智能学院 ,回复“录播”获取更多人工智能精选直播视频!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群