Python 生态发展之路

目录

# Python 是如何炼成的 #

# 生态系统持续扩张 #

# Python 开发的开源社区运作

# 更加广义的 Python 社区

# 广泛应用

## Web 开发、数据科学

## 不得不提的人工智能

# 支持 Python 成长的商业公司

# Python 成功之路小结 #

# 附:Python 生态发展大事记 #

参考


Python 是现今最受欢迎的编程语言之一,2021 年  8 月的 TIOBE 编程语言排行榜中,Python 排名第二,仅次于 C [1]。2017 年之后,Python 是 TIOBE 指数增长最快的语言,从 3.78%(2017 年 12 月) 一路上升至 11.86%(2021 年 8 月)。

图片

图 1:TIOBE Index [1]

2021 年第一季度 SlashData 发布的开发者分析 [2] 中估算,Python 社区已拥有 1000 万开发者,仅次于 JavaScript 的 1300 多万,对比 2020 年增长了 160 万左右的开发者,约 20% (SlashData 估算的参考数据源 [3]:安卓 App 市场需求、GitHub 账号、Stack Overflow 账号和欧美劳动市场)。

那么 Python 是如何吸引到 1000 万开发者的?

Python 是如何炼成的 #


回到上世纪 80 年代,Guido van Rossum 还任职于 CWI(Centrum Wiskunde & Informatica,荷兰数学和计算机科学研究学会),必须使用 C 或 Unix Shell 来处理 Amoeba 系统上的工作,两个语言各有优缺点,让当时的 van Rossum 非常苦恼。C 语言要求开发者像机器一样思考,且没有可重复利用的基础库,每个新项目都需要重复造轮子;Shell 可以提供公共的工具包,但在处理复杂逻辑时运行缓慢,没有自己的数据类型,严格意义上并不能算一门编程语言 [4, 5]。因此 van Rossum 萌生了自己写一个新的编程语言的想法。

曾在 ABC 编程语言开发项目工作的经历让 van Rossum 了解了如何设计语言和编写解释器,1989 年圣诞,Guido 开始写 Python 编译器,1991 年发布了最初代码即 Python 0.9 [4]。第一个 Python 编译器是通过 C 语言实现的,它继承了 ABC 语言的可读易学性,同时可调用 C 语言的库,有了更好的扩展性 [6]。

Python 1.0 版本在 1994 年发布,加入了函数式的功能( labmdamapfilterreduce等),1.4 版本增加了参考 Modula-3 语言的关键词参数 [7]。

2000 年 Python 发布 2.0 版本,2.0 时代陆续扩充了一些重要特性,形成了 Python 基本稳定的框架。2.0 版本引入了列表推导式(参考 SETL 和 Haskell 语言),向垃圾收集系统增加了环监测算法,并且支持 Unicode;2.2 版本统一了“类型”和“类”,使 Python 拥有一致面向对象的模型,还增加了迭代器、生成器(参考 CLU 和 Icon 语言)和描述器协议 [7]。

Python 在 2.0 时代快速生长,功能特性逐渐臃肿,因此 2008 年发布的 3.0 版做出重大修订,去掉重复的结构和模块,回归设计初心“用一种方法,最好是只有一种方法来做一件事” [7]。Python 3.0 是更现代化、高效的编程语言,但不与 2.0 兼容,从 2.0 到 3.0 经过了一段艰难的过度,最初设定的 2.7 版本结束日期为 2015 年,随后由于大量现存代码移植问题延期至 2020 年,2020 年 4 月发布了最后一个 2.7.18 版本,标志着 Python 2.0 时代的结束 [7, 8]。

至此,今天流行的 Python 基本成型,支持多范式编程(函数式、命令式、结构化、面向对象和反射式),拥有动态类型和垃圾回收功能,除了标准库还有大量三方库 [8]。

图片

图 2:Python 历史版本 [7]

2008 年发布不向后兼容的版本是冒险的决定,随着参与 Python 开发和使用 Python 的开发者增加,van Rossum 也面临着各种质疑。但发展至今,Python 的成功不言而喻,除了语言本身不断迭代成熟,生态系统也随之完善,被广泛应用于各主要领域。

生态系统持续扩张 #

观察 Python 生态系统前,必须先了解 Python 的设计理念,这贯穿了 Python 本身的版本迭代过程,也是生态系统能迅速发展的核心原因之一。van Rossum 开发 Python 的初衷决定了 Python 的设计理念,1999 年 Tim Peters 汇总了 19 条 Python 设计的指导原则,并在 2004 年的 PEP 20 中正式提交,被作为彩蛋包含在 Python 解释器中,我们可以输入 import this 看到完整的 “Python 之禅” [9]。

图片

图 3:Python 之禅 [9]

ABC 语言和 Python 的设计隐藏了机器实现的细节,导致他们都对电脑配置有很高的要求,这与当时的主流观点相违背,在资源有限的背景下,程序员更加关注计算机资源利用的最大化,而不是语言是否易入门易阅读,因此最初 Python 只是一个小众编程语言。

但比 ABC 语言幸运的是,90 年代正是个人计算机性能开始大大提升的时期,网络技术开始广泛应用,软件世界越来越丰富。为了提高程序产量&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值