InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

Python 登顶 TIOBE 结束多年霸榜,新版本发布带来多项功能更新

  • 2021-10-09
  • 本文字数:2188 字

    阅读完需:约 7 分钟

Python 登顶 TIOBE 结束多年霸榜,新版本发布带来多项功能更新

10 月 7 日,TIOBE 公布了 2021 年 10 月份编程语言榜单,历经几个月的排名角逐,Python 编程语言成功以 11.27% (领先 C 0.11% 的微弱优势)的评级登上榜一,结束了 Java 和 C 的多年霸榜时代,成为 20 多年来新的语言霸主。C 和 Java 分别以 11.16% 和 10.46% 的评级位列榜单第 2 和第 3 位。与此同时,几日前 Python 官方也发布了 Python 3.10.0 正式版本,带来多项功能更新与性能改进。

 

对此 TIOBE CEO Paul Jansen 称:“Python 作为一种简单的脚本语言开始是 Perl 的替代品,现在已经越来越趋于成熟,它的易用性、大量的库以及在各种领域的广泛使用,使其成为当今最流行的编程语言。”

强势登顶结束多年霸榜

 

从榜单中可以看出,Python 从去年的第 3 名,超越 C 和 Java 跃居第 1,C 和 Java 相比去年 10 月份,评级分别下降了 5.79%、2.11%。除 C 和 Java 有所降低外,前十其他语言均有不同程度的增长。其中 Assembly language 进步最大,从去年的 17 名来到今年的第 10 名。而去年第 9 的 R 语言,已被挤出前十。

 

TIOBE 10 月 编程语言指数 Top 10

 

近 20 年编程语言指数走势(2002-2020)

 

从下图的走势图中,可以清楚看到 2002 -2020 这近 20 年来编程语言的排名走势变化曲线。对应的数据或多或少显示了该语言的流程程度与变化。

 

TIOBE 指数定义

 

TIOBE 编程社区指数是衡量编程语言受欢迎程度的一个指标。该指数每月更新一次。评级的依据是世界范围内熟练的工程师数量、课程和第三方供应商的数量;流行的搜索引擎,比如谷歌、必应、雅虎、维基百科、亚马逊、YouTube 和百度等都被用来计算评级。

 

TIOBE 指数可以让你检查自己的编程技能流行度如何,是否跟得上时代的步伐,当需要学习一个新的语言时,如何做出合适的选择。值得注意的是,TIOBE 指数与最佳编程语言或大多数代码行所使用的语言无关。关于 TIOBE 指数更详细的解释,可以在这里找到。

Python 3.10.0 正式版发布

 

正值国庆假期的 10 月 4 号,Python 官方正式发布了 Python 3.10.0,小编梳理了一下,挑选几个重要的更新功能呈现给大家。

更准确友好的错误提示

 

当解析包含有未关闭括号、引号的代码时解释器会报错提示更多信息并提供更准确的位置而不是只显示 SyntaxError: unexpected EOF while parsing 并指向某个不正确的位置。

 

以下面代码举例来说,(注意未关闭的 “ { ”)

 

expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,            38: 4, 39: 4, 45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 54: 6,some_other_code = foo()
复制代码

 

之前版本的解释器会报告一个不太准确的语法错误位置,如下面代码所示:

 

File "example.py", line 3    some_other_code = foo()                    ^SyntaxError: invalid syntax
复制代码

 

Python 3.10.0 中则优化了此问题,给出了信息量更多更准确的错误提示:

 

File "example.py", line 1    expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,               ^SyntaxError: '{' was never closed
复制代码

带括号的上下文管理器

 

现在支持使用外层圆括号来使多个上下文管理器连续多行地书写。能够使用与之前 import 语句类似的方法,将过长的上下文管理器集格式化为多行的形式。例如下面的示例代码:

 

with (CtxManager() as example):    ...with (    CtxManager1(),    CtxManager2()):    ...with (CtxManager1() as example,      CtxManager2()):    ...with (CtxManager1(),      CtxManager2() as example):    ...with (    CtxManager1() as example1,    CtxManager2() as example2):    ...
复制代码

新的类型联合运算符

 

启用X | Y语法的类型联合运算符,在类型提示中,提供了比typing.Union 更清晰简洁的方式。

 

在之前的 Python 版本中,要为可接受多种类型参数的函数应用类型提示,需要这么写:

 

def square(number: Union[int, float]) -> Union[int, float]:    return number ** 2
复制代码

 

现在类型提示可以使用更简洁的写法:

 

def square(number: int | float) -> int | float:    return number ** 2
复制代码

类型别名

 

新增类型别名的概念,使用 TypeAlias 显示标注类型别名,减少混淆或难以区分类型别名和普通赋值的情况,提高可读性。例如下面的代码:

 

StrCache = 'Cache[str]'  # a type aliasLOG_PREFIX = 'LOG[DEBUG]'  # a module constant
复制代码

 

现在typing模块使用一个特殊值 TypeAlias 表明这是个类型别名:

 

StrCache: TypeAlias = 'Cache[str]'  # a type aliasLOG_PREFIX = 'LOG[DEBUG]'  # a module constant
复制代码

函数 zip 新增 strict 参数严格模式

 

Python 3.10.0 中对于 zip 新增加可选参数 strict。顾名思义,strict 参数就是要严格遵守参数长度的匹配原则,用于要求所有可迭代对象的长度都相等。当该选项为 True 时,传入 zip 的两个可迭代项长度必须相等,否则就会报错 ValueError。旧的版本中,没有 strict 参数的情况下,长度不等时,以较小的为准。

 

其他更新改动内容诸如结构化模式匹配、自定义类型保护器、形参规格变量、弃用 distutils 模块、要求 OpenSSL 1.1.1 或更新的版本等内容与更多优化改进请查阅官方文档。

 

参考链接:

 

https://www.tiobe.com/tiobe-index/

 

https://www.python.org/downloads/release/python-3100/


关联阅读:


2021 最 Top 的编程语言是 Python,而不是 JavaScript?


Python 之父:Python 4.0 可能不会有了

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2021-10-09 12:458009

评论

发布
暂无评论
发现更多内容

校招面试真题 | 测试流程大概是什么?

霍格沃兹测试开发学社

JavaScript, ABAP 和 Scala 里的尾递归(Tail Recursion)

Jerry Wang

JavaScript 编程语言 尾递归 abap 11月月更

新能源锂电池极片制造设备如何实现故障智能诊断?

PreMaint

智能诊断 故障诊断 新能源 设备健康管理

CSS写一个圣诞树Chrome浏览器小插件

肥晨

11月月更 css写圣诞树 Chrome插件

网站停服、秒杀大促…解析高可用网站架构云化

华为云开发者联盟

云计算 后端 华为云 企业号十月 PK 榜

基于OpenHarmony L2设备,如何用IoTDeviceSDKTiny对接华为云

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

COSCon'22 第七届中国开源年会圆满落幕

腾源会

开源

读懂React原理之调和与Fiber

xiaofeng

React

佛萨奇1.0 2.0矩阵公排项目系统开发详情

开发微hkkf5566

知识蒸馏相关技术【模型蒸馏、数据蒸馏】以ERNIE-Tiny为例

汀丶人工智能

nlp 知识蒸馏 11月月更

【JVM】关于JVM,你需要掌握这些 | 一文彻底吃透JVM系列

冰河

Java 性能优化 JVM Java虚拟机 系统编程

ironSource 与 Sensor Tower 宣布达成战略合作,共同拓展应用市场增长潜力

Geek_2d6073

自学前端达到什么水平才能找到工作,来看这套前端学习路线图

千锋IT教育

技术分享 | 如何确保API 的稳定性与正确性?你只需要这一招

霍格沃兹测试开发学社

4步消除漏洞积压

SEAL安全

漏洞修复 软件供应链安全 漏洞管理 11月月更

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

测试人

软件测试 自动化测试 测试开发

MySQL 5.7.21 移植指南(openEuler 20.03 LTS SP1)

openEuler

MySQL Linux 开源 操作系统

如何通过机器学习赋能智能研发协作?

LigaAI

人工智能 智能化 LigaAI 研发协作平台 亚马逊云科技

细说React组件性能优化

xiaofeng

React

【愚公系列】2022年11月 微信小程序-日期时间组件封装

愚公搬代码

11月月更

CnosDB 2.0 产品发布会预告:一切为了万物智联,用 Rust 打造云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB CnosDB 2.0发布会

Java应用在docker环境配置容器健康检查

程序员欣宸

Java Docker 11月月更

用低代码平台搭建低代码平台

iofod jude

【LeetCode】二叉树最大宽度Java题解

Albert

算法 LeetCode 11月月更

从 0 开始学 Python 自动化测试开发(二):环境搭建

霍格沃兹测试开发学社

更轻量的百度百舸,CCE Stack 智算版发布

Baidu AICLOUD

AI工程化 高性能计算 异构计算 百度百舸

修改ElementUI样式

源字节1号

软件开发 前端开发 后端开发 小程序开发

Istio Ambient Mesh七层服务治理图文详解

华为云开发者联盟

云原生 后端 华为云 企业号十月 PK 榜

工作多年,技术认知不足,个人成长慢,职业发展迷茫,该怎么办?

霍格沃兹测试开发学社

京东云开发者|经典同态加密算法Paillier解读 - 原理、实现和应用

京东科技开发者

联邦学习 同态加密 隐私计算 加密算法 多方安全计算

解密GaussDB(for Influx) :让智能电网中时序数据处理更高效

华为云开发者联盟

数据库 华为云 企业号十月 PK 榜

  • 扫码添加小助手
    领取最新资料包
Python 登顶 TIOBE 结束多年霸榜,新版本发布带来多项功能更新_语言 & 开发_辛晓亮_InfoQ精选文章