Python: 从 2.7 升级到 3,我比 vue 慢了一点点

简介: Python: 从 2.7 升级到 3,我比 vue 慢了一点点

小破站搜索云前端,查看视频版

2024 年 7 月 7 日,据一位长期的Python观察者爆料,Fedora 41 系统最终将停止支持 Python 2.7。这是Python 2系列的最后一个版本,Python 2.7在Fedora Linux 41中将被退役且不再替代。除了PyPy之外,Fedora 41及以后的版本将不再包含Python 2,对于依赖于python2.7的包,在运行时或构建时需要处理这个退役问题,否则它们也将被退役。GIMP 3 也将在Fedora 41中推出,以去除任何剩余的Python 2依赖。

Vue

有趣的是,对比于前端开发领域流行的开发工具 vue.js,其版本 2 向版本 3 的演进也拖延了很久的时间。并且巧合的是,同样是 2.7 的版本,也是vue 2.x中最后一个稳定版本。不同的是vue3之于vue2采用了高度兼容的升级方式,而非python3那样断崖式的不兼容升级。

Vue 2 达到生命周期终点的时间是 2023 年 12 月 31 日,之后 Vue 2 将不再接收新功能、更新或修复,但仍然可以在现有的分发渠道中获取。虽然应用程序将继续运行,但包管理器会发出警告,提醒 Vue 2 已经不再是支持的版本。

我们之前曾制作过一期视频(小破站搜 BV1BP4y1t7Xz),揭秘了 Vue 版本系列中那些有趣的版本命名方式,一些重要版本大多以动漫、科幻电影等命名。在 2.x 最后一个大版本,也是专注于帮助开发者从 v2 迁移到 v3 的 vue2.7 中,Vue 2.7.0 仍遵循以上传统以 "Naruto(火影忍者)" 为代号,而 2023 年平安夜发布的 v2.7.16 的代号则是 Swan Song (绝唱),明确了 v2.x 从此达到 End Of Life(EOL)状态的含义。对于无法立即迁移到 Vue 3 的用户,Vue 官方也与第三方合作提供了 Never-Ending Support -- 即使在 EOL 之后也能继续获得 Vue 2 的更新和安全补丁。

Python

回到 Python 2 的告别,其生命周期原本预计在2015年结束,但后来延长到了2020年。Python维护者宣布,由于RHEL 7的维护结束和RHEL 8中Python 2.7应用的退役,他们将不再定期为Python 2.7回传安全修复到RHEL。尽管如此,这个过时的包在超出其退役日期五年后仍被提供,并将持续提供直到Fedora 40的生命周期结束。除了少数最后的修复工作外,将不再进行更新和维护,这意味着“Python 2将不再接受新的bug报告、修复或更改,且不再受支持”。

关于Python 2到Python 3的迁移,尽管Python 3在过去几年里已成为主流版本,但许多公司仍未完成过渡,仍然使用Python 2。他们普遍认为,Python 2到Python 3的迁移并不容易。特别是对于拥有庞大代码库、复杂逻辑和繁重决策过程的公司,代码兼容性问题、生态系统的碎片化、venv虚拟环境增加了复杂度等,都带来了新旧并存的困扰。在某些场景下,开发者可能需要同时维护Python 2和Python 3的代码,这不仅增加了维护成本,也使得代码管理和版本控制变得更加复杂。

然而不迁移到 Python 3 也要承受各种风险。其一是安全性 -- 随着 Python 2 官方 EOL,将不再有安全更新,这可能导致安全漏洞无人修复,使运行Python 2的系统处于严重风险之中。此外,Python 2 的退役也可能影响吸引新人才和经验丰富的开发人员,因为 Python 在开发者中越来越受欢迎,他们当然倾向于学习新的Python 3版本,而非退休的、不受支持的 Python 2。

尽管如此,Python 3的改进和新特性,如 Unicode 支持、更清晰的语法、性能提升以及对现代编程实践的更好支持、更好的常见习语和模式表达、并发性、故障处理、测试和调试的改进,以及计算速度的大幅提高和其它优化,最终还是证明升级是值得的。随着时间的推移,Python 3完全取代Python 2也只是早晚问题,你可以使用"from future import"等语法编写Python 3友好的代码,一些工具库如Six库提供了用于平滑Python 2和3之间差异的实用函数也为升级提供了便利。

Python 3逐渐成为主流,大部分库和框架都完成了迁移,开发者也逐渐适应了新版本。现在,Python 3的广泛采用和Python 2的退役,标志着Python社区向前迈进了一大步。

Spring Boot

其实版本 2.7 的升级魔咒还不止让 Python 和 Vue 碰到过,比如国内但凡提起微服务架构,可能十个程序员里有九个会立马想起 Spring Boot 来。这个 Java 框架的设计目标是简化 Spring 应用的初始搭建以及开发过程。Spring Boot 提供了约定优于配置(Convention over Configuration)的机制,让开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 几乎成为了企业级应用开发的标配。

于 2022 年 11 月正式发布的 Spring Boot 3.0 带来了多项重要的更新和改进,包括对Java 17的强制支持、Spring Framework 6的集成、模块化增强、Web框架更新以及数据库访问技术的革新。这些变化促使开发者考虑将现有项目升级,以充分利用新版本带来的优势。在开发者社区中,3.0 的升级当然也引起了广泛关注和期待。不过,升级过程也面临挑战,一些开发者出于开发习惯,或是遗留项目的维护难度、公司组织规定等,表示 JDK8 或 JDK11 不能动就是不能动。

总结

相比之下,Vue.js 和 Spring Boot 从 2.x 到 3.x 的升级,虽然也涉及到一些重大的改变和新特性,但它们的升级路径通常提供了较为明确的迁移指南,且社区和框架本身提供了较多的支持工具,如迁移助手和详细的文档,来帮助开发者平滑过渡。Vue 和 Spring Boot 的升级更多的是对现有特性的增强和对新技术栈的采纳,如 Vue 3 中对 Composition API 的支持,Spring Boot 3 对 Java 17 和 Jakarta EE 的支持,这些升级虽然也需要开发者投入时间和精力进行代码迁移,但总体上争议和阻力小于 Python 2 到 3 的升级。

总之,太阳底下无新事,前端、后端、语言、框架,寰球共此凉热,除了版本上的巧合因素,大致也有一些规律蕴含其中。1.x 版本青涩烂漫肆意挥洒,2.x 版本成熟稳定满身负担,3.x 版本百尺竿头更进一步;你在迁移代码,却逐渐看清了自己。



相关文章
|
2月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
263 0
|
3月前
|
存储 JavaScript 关系型数据库
基于python+vue的居家办公系统的设计与实现
本居家办公系统基于B/S架构,采用Python语言及Django框架开发,结合MySQL数据库和Vue.js前端技术,实现家具销售库存的科学化、规范化管理。系统旨在提升办公效率,降低数据错误率,优化信息管理流程,适应多行业信息化发展需求,具有良好的扩展性与实用性。
|
3月前
|
JavaScript 关系型数据库 MySQL
基于python+vue的贫困生资助系统
本文介绍了餐厅点餐系统的开发环境与核心技术,涵盖Python语言、MySQL数据库、Django框架及Vue.js前端技术,详细说明了各项技术的应用与优势,助力系统高效开发与稳定运行。
|
9月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的商城管理系统源码+运行步骤
基于Python+Vue开发的商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
310 7
|
3月前
|
存储 关系型数据库 MySQL
基于python+vue的商城购物系统
本文介绍了电子商务的发展背景及研究现状,分析了当前电商市场的挑战与机遇,提出了自建电商平台的优势,旨在通过创新设计与技术实现(如Python、Django、B/S架构等),构建一个高效、低成本、用户导向的电商系统,以提升企业竞争力。
|
7月前
|
SQL 安全 算法
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
Python 3.14 引入了七大核心技术特性,大幅提升开发效率与应用安全性。其中包括:t-strings(PEP 750)提供更安全灵活的字符串处理;类型注解惰性求值(PEP 649)优化启动性能;外部调试器API标准化(PEP 768)增强调试体验;原生支持Zstandard压缩算法(PEP 784)提高效率;REPL交互环境升级更友好;UUID模块扩展支持新标准并优化性能;finally块语义强化(PEP 765)确保资源清理可靠性。这些改进使Python在后端开发、数据科学等领域更具竞争力。
312 5
解读 Python 3.14:模板字符串、惰性类型、Zstd压缩等7大核心功能升级
|
6月前
|
IDE 开发工具 Python
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级,不升级无法使用,安装python扩展包的时候一直停留在installing
181 4
|
8月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
273 6
|
8月前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
138 9
|
8月前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
205 3

推荐镜像

更多