Graph + AI 中国峰会火热报名中,点击探索图分析更多可能! 了解详情
写点什么

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

2021 年 10 月 09 日

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 可能不会有了

2021 年 10 月 09 日 12:454190

评论

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

Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试

刘悦的技术博客

Python Docker 自动化 自动化测试 Genymotion

架构实战营 模块 3作业 - 消息队列架构设计文档

Geek_8c5f9c

架构师训练

字节跳动内测音乐流媒体服务:能否在音乐领域分一杯羹

石头IT视角

【学习笔记】:使用Chrome浏览器的网络面板分析http请求

姬翔

网络攻防学习笔记 Day87

穿过生命散发芬芳

网络攻防 7月日更

模块三作业:外包学生管理系统架构文档

babos

#架构实战营

【Zookeeper源码阅读】leader选举源码分析

互联网架构师小马

浅析“关于区块链解决资本主义问题还是社会主义问题”的对与错

CECBC区块链专委会

零代码平台在大型企业的进化之路

明道云

记一次小有成就的代码审计

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 代码审计

架构实战营模块三作业

袁小芬

“区块链+物联网”的发展现状和应用案例

CECBC区块链专委会

首张区块链《代理出口货物证明》 区块链技术首次应用于出口退税

CECBC区块链专委会

原来ReadWriteLock也能开发高性能缓存,看完我也能和面试官好好聊聊了!

冰河

Java 并发编程 多线程 高并发 异步编程

Linux之kill命令

入门小站

Linux

通过运行期类型检查实现泛型算法

喵叔

7月日更

明道云与阿里1688对接案例

明道云

Vue深入学习1—mustache模板引擎原理

魁首

Vue 3

中国高校竟然有两个“智能”专业?

脑极体

优秀!Alibaba全新出品亿级流量并发系统架构设计实录太香了

程序员小毕

Java 程序员 架构 分布式

在线MarkDown转HTML工具

入门小站

模块三作业

秀聪

架构训练营

架构训练营-学生管理系统详细架构文档

sophiahuxh

生态和场景一站式集成?来看看小程序的“共享主义”

蚂蚁集团移动开发平台 mPaaS

小程序 支付宝 移动开发 生态 mPaaS

Go语言:代码检查和优化!

微客鸟窝

Go

倒数第四天

IT蜗壳-Tango

7月日更

架构实战营 - 模块三作业: 架构文档

Julian Chu

架构实战营

架构实战营 模块三 作业

脉醉

#架构实战营

声网 X Yalla:面对面不如线上见,中东年轻人最偏爱的语聊房是怎样“炼”成的?

声网Agora

人工智能 产品方案

毕业设计:设计电商秒杀系统

张大彪

模块三作业

Tina

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