查看原文
其他

Python 生态在2023年的三大趋势

21CTO 21CTO 2023-02-26

最近,Python生态系统发展迅速,由jerrycodes 平台最近发布了最新趋势与观点。我们整理详细内容如下:

趋势一:Python x Rust

使用 C 扩展来提升 CPU 密集型的工作已经让 Rust 成为有力竞争者。其关键推动者是PyO3(https://github.com/PyO3/pyo3),它为 Python 提供 Rust 绑定。

PyO3 使从 Python中轻松使用 Rust 代码(https://github.com/PyO3/pyo3#using-rust-from-python)成为可能。PyO3还支持从 Rust 中使用 Python(https://github.com/PyO3/pyo3#using-python-from-rust)。

但是我们更相信前者对 Python 生态系统的影响更大。


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

  • pydantic-core:pydantic v2 的校验核心。pydantic 的作者 Samuel Colvin 也将在 Pycon 2023 上发表相关演讲。

    pydantic-core地址:https://github.com/pydantic/pydantic-core

  • ruff:速度极快的 linter。它拥有几乎和 Flake8 相同的功能,包括一些流行的插件。此外,它具有与 autoflake、isort、pydocstyle 和 pyupgrade 等工具相同的功能。因此,它是检测 Python 代码的瑞士军刀。

    ruff地址:https://github.com/charliermarsh/ruff

  • polars:更快的 DataFrames,是广泛使用的 pandas 之性能竞争对手。

    polars地址:https://github.com/pola-rs/polars

  • Robyn:带 Rust 运行时的异步 Python Web 开发框架。

    Robyn地址:https://github.com/sansyrox/robyn


除了PyO3,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)可以在运行时巧妙地利用类型信息。

*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 万订阅。

编辑:场长


相关阅读:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存