首页IT科技python development(Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用)

python development(Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用)

时间2025-06-14 14:50:23分类IT科技浏览4419
导读:大家好,我是猫哥,好久不见!2022 年末的时候,我不可避免地阳了,借着身体不舒服就停更了,接踵而至的是元旦和春节假期,又给自己放了假,连年终总结也鸽了,一懈怠就到了 2 月中旬……...

大家好              ,我是猫哥                    ,好久不见!2022 年末的时候       ,我不可避免地阳了       ,借着身体不舒服就停更了                    ,接踵而至的是元旦和春节假期              ,又给自己放了假       ,连年终总结也鸽了                    ,一懈怠就到了 2 月中旬……

现在是我家娃出生的第三个月              ,全家人大部分的时间和精力都在他身上,结果是幸福与疲累共存             。新生儿是那么的可爱                    ,又是那么的“吵闹              ”                    ,影响着我们的情绪和生活节奏                     。这三个月的基调跟过去的日子完全不同,它是新一年的开始              ,是未来日子的底色                    ,引导着我们的生活重心偏移       。

在过去的两年时间里       ,我工作上的任务与 Python 基本无关了              ,转向了 Java 的阵营             。然而                    ,在业余时间里       ,我对 Python 的热情一直不灭(尽管有退减)       ,直到近期                    ,懒怠的念头变多了                     。

身心状态与家庭节奏是这段时间停更的主要原因吧       。

今年的这第一篇文章              ,就当作给大家问声好       ,给自己打个气吧      。唯愿 2023 年                    ,家庭              、工作与兴趣都能顺顺利利              ,不留遗憾,相信前方有美好的未来!

最近的 Pycoder‘s Weekly 中有一篇《Three Python trends in 2023》                    ,它介绍了当下较为热门的三个话题                     。我简略翻译/摘录出来                    ,分享给大家              。

趋势一:Python?Rust

Rust 对 Python 技术生态的影响越来越大了      。关键的赋能者是 PyO3,它为 Python 提供了 Rust 绑定                    。有了 PyO3 后              ,Python 可以轻松调用 Rust 代码                    ,同时 Rust 也能执行 Python 代码              。

另外       ,下面的工具在进一步加深这两门语言的友谊:

pydantic-core:pydantic v2 的校验核心。pydantic 的作者 Samuel Colvin 将在 Pycon 2023 上发表相关演讲                    。 ruff:速度极快的 linter                     。它拥有几乎与 Flake8 相同的功能              ,包括一些流行的插件。此外                    ,它具有与 autoflake                    、isort       、pydocstyle 和 pyupgrade 等工具相同的功能             。因此       ,它基本上是检测 Python 代码的瑞士军刀                     。 polars:更快的 DataFrames       ,是超级广泛使用的 pandas 的性能竞争对手       。 Robyn:带 Rust 运行时的异步 Python web 框架             。这有一篇博客关于《Robyn 的 2023 年路线图》                     。

Rust 目前的热度极高                    ,未来它将融入到更多 Python 相关的项目和工具中       。Python + Rust 的组合在未来的就业市场上              ,也可能有很高的需求      。

趋势二:Web 应用

从历史上看       ,用户界面并不是 Python 的强项                     。然而                    ,最近机器学习和数据应用的兴起              ,催生了一批                    ”使用纯 Python 的 Web UI       ”框架,例如 Streamlit       、NiceGUI 和 Pynecone              。这样的框架为 Pythonistas 提供了构建 Web 应用的快捷方式                    ,不再需要学习 JavaScript+HTML+CSS 技术栈      。

另一条线路是浏览器中的 Python                    。通过 Pyodide                    、PyScript和相关工具                    ,这已经实现了              。它的基础推动者是与所有主流浏览器兼容的 WASM (WebAssembly)。在写本文时, CPython 源码库中已经有了对 CPython 的 WASM 构建的实验性支持                    。如果你想深入了解              ,可以查看 Python 3.11 in the Web Browser                    ,这是 Cristian Heimes 在 PyConDE 2022 上的演讲                     。

WASM 的故事还处于早期阶段       ,但它有着巨大的潜力              ,将使 Python 更容易访问并支持新的使用场景。我希望在不久的将来这个领域会有大量的创新             。

趋势三:类型安全

CPython 对类型的支持在不断发展                     。例如                    ,Python 3.10 发布了 4 个与类型相关的 PEP, 3.11 发布了 5 个       。此外       ,PyCon 还有专门的 Typing Summit             。与此同时       ,与类型相关的工具已经成熟化和多样化                     。例如                    ,现在有一大把静态类型检查器可供选择(例如 mypy              、Pyright       、pytype 和 Pyre)       。此外              ,一些包(例如 pydantic)可以在运行时巧妙地利用类型信息      。(延伸阅读:介绍几款 Python 类型检查工具)

*args, **kwargs 的时代即将结束       ,它们将被带有类型注释的签名所取代                     。类型极大地提高了代码可读性              。当可读性与便利的 IDE 相结合                    ,阅读庞大的 Python 代码库将变得相对容易      。另一方面              ,在习惯了类型信息带来的超能力之后,无类型的代码库会更让人感到难受                    。

无论现今和未来的趋势如何                    ,Python 比以往任何时候都更受欢迎              。在写本文时(2023 年 2 月)                    ,PyPI 中有 431k 个项目和 665k 个用户。在“how often language tutorials are searched in Google       ”中,Python 以 27.93% 的份额领先(来源)                    。Reddit 上的 r/Python 话题有 1.1 万订阅              ,r/learnpython 有 68 万订阅                     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
曹冲是谁的儿子(C++ Sockets Library) uniapp获取位置信息(【uni-app教程】四、UniAPP 路由配置及页面跳转)