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

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

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

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

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


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

趋势一:PythonRust

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”框架,例如 StreamlitNiceGUIPynecone。这样的框架为 Pythonistas 提供了构建 Web 应用的快捷方式,不再需要学习 JavaScript+HTML+CSS 技术栈。

另一条线路是浏览器中的 Python。通过 PyodidePyScript和相关工具,这已经实现了。它的基础推动者是与所有主流浏览器兼容的 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 万订阅。

Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用的更多相关文章

  1. 北鲲云超算如何让仿真技术、HPC和人工智能之间的深度融合?

    在CAE领域,随着仿真技术在多个行业的深度应用,也带来了仿真模型日益复杂.仿真过程数据倍增.仿真计算费用昂贵等问题,降阶模型.人工智能.云计算等多种技术和仿真技术的深度融合,成为了仿真技术的重要发展趋 ...

  2. 4.1 python中调用rust程序

    概述 使用rust-cpython将rust程序做为python模块调用: 通常为了提高python的性能: 参考 https://github.com/dgrunwald/rust-cpython ...

  3. [转]AI+RPA 融合更智能

    本文转自:https://www.jianshu.com/p/cf25b3dfc0f0 前面已经分析过多次RPA的本质,可以参考 [脱下外衣],看看RPA机器人到底是什么?     哪些AI相关应用技 ...

  4. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  5. zwPython,字王集成式python开发平台,比pythonXY更强大、更方便。

    zwPython,字王集成式python开发平台,比pythonXY更强大.更方便. 更强大,内置opencv.cuda/opencl.NLTK自然语言.pygame游戏设计等多个重量级模块库. 更方 ...

  6. vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松

    vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...

  7. 使用这7个隐藏技巧让您的Mac更易于阅读和使用!

    macOS Mojave(10.15)可以说是苹果公司功能最强大,功能最强大的现代Mac软件更新版.它带来了一系列新功能,安全和隐私控制,稳定性增强以及Dark Mode主题! 它也代表了最易于使用的 ...

  8. 使用python制作ArcGIS插件(2)代码编写

    使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...

  9. Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  10. 50个实用的jQuery代码段让你成为更好的Web前端工程师

    本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助 ...

随机推荐

  1. SpringCloudAlibaba 微服务组件 Nacos 之配置中心源码深度解析

    大家好,这篇文章跟大家聊下 SpringCloudAlibaba 中的微服务组件 Nacos.Nacos 既能做注册中心,又能做配置中心,这篇文章主要来聊下做配置中心时 client 端的一些设计,主 ...

  2. AI音乐创作,让每一个人都成为音乐家

    从录音带.MP3到专业的耳机.音箱,随着音乐消费方式的不断升级,音乐创作的专业"门槛"也在AI技术的加持下逐渐大众化,创作者的创新设计.创作频率也在持续增强,能降低创作门槛且智能化 ...

  3. 基于jenkins+kubernetes的cicd流程实践一:环境搭建及方案原理实现

    1.基础环境:Centos7.9,kubernetes:v1.21.5 node-1@112(master):docker,containerd,harbornginx(80),git,etcd no ...

  4. 【云原生 • Docker】mysql、tomcat、nginx、redis 环境部署

    注意在应用部署之前,docker 服务必须是开启状态 systemctl start docker. 目录 一.MySQL 部署 二.Tomcat 部署 三.Nginx 部署 四.Redis 部署 一 ...

  5. Linux 系统用户文件缺失造成“bash-4.2$”错误的解决办法

    一.问题出现的原因 造成这个现象的原因是因为用户文件夹下的bash_logout.bash_profile和bashrc这三个隐藏文件缺失 二.问题复现 现在删除这三个文件 此时问题出现了 三.问题解 ...

  6. redis集合 实现 队列

    先说一下需求:用队列解决 流量削峰,主要应用场景:商城秒杀功能. 以下是业务流程图可以参考一下: 然后本地实现思路 截图下单页面 每次购买数量会减少1,设置了1000个库存,用户id 是随机生成的. ...

  7. Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈

    本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentatio ...

  8. vue 强制刷新数据 this.$forceUpdate()

    vue项目中,修改了数据可能已经渲染的地方不会发生变化,所以加上 this.$forceUpdate()可以强制刷新数据

  9. 红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01

    书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了. Ruby是一门在面向对象层面无所不用其极的解释型编程语言. 我们可以把编写Ruby代码看作是一场行为 ...

  10. [机器学习] t-SNE聚类算法实践指南

    ​  转载于比PCA降维更高级--(R/Python)t-SNE聚类算法实践指南-阿里云开发者社区 作者介绍:Saurabh.jaju2 Saurabh是一名数据科学家和软件工程师,熟练分析各种数据集 ...