2020 年 1 月 1 日, Python 2 的生命周期正式截止, Python 核心开发人员也宣布即将不再提供该版本的安全更新, 并建议用户尽快迁移至 Python 3. 然而问题也在此时出现了, 不论 Python 3 有多少优点, 迁移的过程对于用户来说都极其痛苦, 但是如果不这么做的话, 又会有其他问题出现. 对此, 开发者只剩一声长叹, 难啊!
迁移至 Python 3, 用户怨声载道
2020 年 3 月 4 日, 一位用户在 Twitter 上吐槽:
他的大概意思是:"每个人都坚持要摆脱 Python 2, 但这样的做法却将我们拥有的所有功能完善且有用的 Python 2 代码从资产变成负债."
随后他又举例说:
"自 2011 年用 Python 2 编写以来, 我的 milter 实现一直是完全稳定的. 现在, 我不得不破坏它的稳定性, 因为 Python 2 没法用了."
有同样感受的人不只是他一个, 尤其是那些大公司的开发人员.
2013 年, Facebook 计划将代码迁移至 Python 3 , 但是从产生这个想法到真正交付, 一共花费了四年的时间 , 代码迁移仅仅是难题的开始, 更重要的是让自己的员工使用并适应 Python 3; 另有 LinkedIn 进行的 "旷日持久战",550 个代码存储库 (库, 应用程序和服务) 要迁移, 上百万行的代码要处理, 还有内部用于持续集成 / 持续交付 (CI/CD) 框架, 命令行接口以及部署和数据科学工具, 这种散乱的非整体式环境用 Warsaw 的话来说 " 包括数百种独立的微服务和工具, 外加几十个支持库.
如此浩瀚的工程, 花费的时间, 精力都是巨大的, 参与其中的人怨声载道, 甚至有人将其称之为 "噩梦般的工作". 然而当庞大的迁移终于完成, 新的问题又出现了.
跨平台的分布式版本控制软件 Mercurial 就是 Python 编写的, 所以对于向 Python 3 的迁移, Mercurial 也是非常的积极. 在经历了同样大规模的迁移后, 问题暴露了出来, 负责 Mercurial 运维工作的工程师 Gregory Szorc 在 博客上 进行了一番吐槽:
简而言之, 我将 Mercurial 和其他项目移植到 Python 3 的经验极大地破坏了我对 Python 的理解. 从语言到热情的社区, 我一直以来都对 Python 充满爱, 但我仍在努力理解 Python 如何通过选择他们所做的过渡计划来设法给社区带来如此多的困难.
...
来源: http://www.tuicool.com/articles/uQFfymn