站长之家
站长之家
2019-10-31 15:03
+关注

Python之父宣布退休,但Python仍在吞噬世界

Python 与 Web

20 世纪 90 年代中期,Python 出现了新的应用场景,从音频录制和播放到首次涉足 Web 开发,而 Web 开发后来成为 Python 的主要应用场景。

van Rossum 说,“Web 开发很重要,它对我来说也是一件非常有趣的事情”。Python 开始与 Perl 和 Shell 脚本一起被用于 Web 服务器后端开发。“你可以创建动态网页,这也是我最喜欢的 Python 应用场景之一”。

Gartner 公司的 Ryan 说,上世纪 90 年代,Python 之所以能够在开发人员当中流行起来,主要是因为它可以用来快速地创建强大的脚本。“作为一门功能非常强大的脚本语言,它降低了很多用户的使用门槛”。Ryan 还说,这门语言非常灵活,容易上手,因此吸引了很多具备不同程度技术专长的用户。

1994 年,Python 引起了 Michael McLay 的注意。McLay 当时在美国国家标准局(NBS)担任高级职位,现在在美国国家标准与技术研究所(NIST)。McLay 当时在想如何也让国家统计局的科学家们从 Python 的易用性中得到一些好处。在 van Rossum 看来,国家统计局的科学家们“需要处理大量数据,但他们都不擅长编程”。

为了在 NBS 中推广 Python,McLay 邀请当时还在荷兰 CWI 工作的 van Rossum,让他到 NIST 做了两个月的客座研究员。这一举动成了 Python 未来发展的催化剂,也是 van Rossum 人生的一次重要转变。

正是在这个时候,他们在国家统计局的办公室里举行了第一个 Python 研讨会。van Rossum、Barry Warsaw 和其他早期的 Python 爱好者聚在一起,分享他们正在用 Python 做什么,以及对 Python 未来发展的期望。

也就是在这间办公室里,van Rossum 认识了 Bob Kahn。Kahn 是 TCP/IP 协议的作者。

那次会面给 van Rossum 带来了一份工作邀请——与 Kahn 一起在美国国家研究创新联合会 (CNRI) 工作。CNRI 是一个位于弗吉尼亚州的非盈利研究组织,专注于网络技术的战略发展和研究。

自 1991 年 Python 公开发行以来,Python 用户群有了显著的增长。到了 90 年代后期,Python 吸引了大量来自全球各地的用户。在此期间,随着 Python 软件基金会(PSF,于 2001 年正式成立)前身的组建,Python 语言的管理工作开始走向规范化。随着社区的发展,两年一度的 Python 研讨会逐渐演变成更大型的年度活动,并最终演变成 PSF 的年度 PyCon,直到今天仍然很受欢迎。

到了 21 世纪,Python 用户群越来越壮大,早期的 Python 用户担心如果 van Rossum 发生意外会对 Python 造成什么样的影响。

不管怎样,van Rossum 继续扮演着 Python 的核心角色。他就是 Python 的核心,这种想法从未消失,有人称他是 Python“仁慈的终身独裁者”(BDFL)。这个半开玩笑式的头衔流传了多年。

van Rossum 说:“在很长一段时间内,我承受住了压力,还培养出了项目管理技能。我将很多事情委派给别人,让他们按照自己的想法做事”。

实际上,van Rossum 确立的 Python 开放本质(在社区核心开发者之间公开讨论)是 Python 成功的决定性因素。

Python 的演变

在这期间,Python 有了飞跃式的发展。2008 年,Python 3.0 发布,让 Python 成为一门现代化的编程语言。近来,Python 的管理方式也发生了重大变化。

这些变化是去年发生的,当时 van Rossum 卸掉了 BDFL 的头衔,原因是人们对 PEP572 中引入的赋值表达式存在分歧。

虽然赋值表达式的引入是为了更高效地编写代码,但 van Rossum 在网上遭到了反对者的严厉批评,一些人认为这一提案会降低代码的可读性和可维护性。

van Rossum 说,虽然他已经习惯了围绕新功能而展开的争论,但这次有人诋毁他,他们的态度十分强硬,甚至有人对他进行人身攻击,所以他决定辞职。

他说:“那些在技术上持不同意见的人在社交媒体上开始抱怨我破坏了 Python 的决策流程,或者说我犯了一个严重的错误。我感到非常失望,我感觉受到了来自背后的攻击”。

“过去,在决定是否要对 Python 做出变更或改进时,一群核心开发人员会讨论这件事的利弊。他们会得出一个明确的共识,如果结果不明确,我会在脑子里反复考虑,然后做出决定。在 PEP572 这个提案上,尽管它存在争议,但我还是选择了“是的,我想做这个”,但人们并不买账。

“这并不是一种反叛,但我觉得我没有得到核心开发者社区足够多的信任”。

他认为,Python 的争议方式之所以发生变化,部分原因在于现在有太多的人使用 Python。

“Python 社区的规模越来越大,这可能也是原因之一。当然,要达成任何形式的共识都很困难,因为不管你做出什么样的决定,总会有一些持不同意见的人”。

今年早些时候,负责维护 CPython 解释器的核心开发人员成立了一个指导委员会,用来监督 Python 未来的发展。成员包括 van Rossum、Warsaw 以及其他核心开发者 Brett Cannon、Carol Willing 和 Nick Coghlan。

Warsaw 说,当一门编程语言的用户群以如此快的速度增长,使用这种方式来管理语言的发展是很有必要的。

他说,“我认为 van Rossum 真的把所有事情都扛在自己的肩上了”。

“25 年前,当 Python 还只是一门小众编程语言的时候,社区规模也小得多,van Rossum 可能还能自己扛,但即使是这样,他一个人的工作量也很大。我认为,考虑到他个人的健康以及社区的参与度问题,将这些重担分摊到五个人身上会更好”。

Warsaw 说,在每发布一个 Python 新特性版本后都会进行一次指导委员会选举,为建立下一代 Python 语言核心领导层做好准备。

他说:“如果 Python 在 25 年后还能保持常青,那时候应该不是 van Rossum 和我在管事了”。

指导委员会的成立也受到了 Python 核心开发者社区的欢迎。核心开发人员 Mariatta Wijaya 说,这一举动感觉像是朝着正确的方向迈出了一步。她说:“对我来说,指导委员会比让一个人决定所有事情要好得多——这是一个巨大的责任和负担。这是一个好迹象,它意味着社区将会有更多的输入”。

Python 的未来

虽然 Python 继续以惊人的速度吸引新用户,但社区内的一些人也看到了未来要面临的挑战。如果 Python 想要保持常青,就要不断进化。

在今年的 Python 语言峰会上,BeeWare 联合创始人 Russell Keith-Magee 说,如果对移动和 Web 平台的支持得不到改善,Python 将面临“生存危机”。

他说:“手机和平板电脑对市场的渗透程度是台式机和笔记本电脑从未达到过的,但整个社区都没有一个关于如何在这些设备上使用 Python 的案例。那么,当有一天笔记本电脑逐渐成为小众设备时,Python 又将面临怎样的窘境?”

他指出了 Python 的一些问题,比如,Python 还不支持在非 x86 硬件平台上编译代码,Python 的测试套件很容易在移动和 Web 平台上崩溃,Python 应用程序的体积太大,在 Android、Windows 和 Web 平台上开发 GUI 代码时需要使用 asyncio 库,而这需要做额外的工作,标准库中的很多模块与 CPython 之外的解释器不兼容。

Warsaw 说,Keith-Magee 提出了很多很好的观点,并认为 Python 需要与新的平台——手机、平板电脑以及 Web 技术(如 WebAssembly)保持接轨,这点很重要。

Warsaw 说,“目前 Python 在这方面并没有出彩的表现”,他希望 iPhone 或 Android 手机也能下载到使用 Python 开发的应用程序,而用户甚至都不知道“原来它们是用 Python 开发的”。

现代处理器芯片的核心数量在不断增长(英特尔最新的服务器处理器核数已经达到了 48 个),Warsaw 也希望 Python 能够更好地让任务运行在多个处理器核心上

Warsaw 说:“这些功能不会出现在 Python 3.8 中,但或许会在 3.9 中加入。我觉得我们将在未来两到两年半的时间内看到这些功能。我真的很高兴 Eric 能够继续做下去,这是一项非常重要的工作”。

Python 社区正在对标准库进行现代化。最近发布了一项提案,建议将过时的模块从标准库中移除。Python 的标准库通常被认为是 Python 的优势所在,因为它被用来处理很多常见任务,这也就是为什么人们都说 Python 有“内置电池”。但在今年的 Python 语言峰会上,有人提出了这样的一个问题:如果人们能够从 PyPI 自行选择模块,而不是使用内置的标准库,这样是否会更好?

还有一个问题是,Python 指导委员会的成员组成能否更好地反映 2019 年 Python 用户群的多样性?

Warsaw 说,尽管有一个“仁慈的独裁者”在掌管一切,但近年来,有很多有关 Python 发展的理念来自于社区。

他说:“这些想法真的是从社区中冒出来的,而不是自上而下推行的。”

简单的社区项目也能对 Python 产生巨大影响。比如,类型提示功能,Python 3.5 的一个特性,灵感来自于 2012 年一位博士生发起的 mypy 项目。类型提示可以执行可选类型检查,帮助开发人员发现某一类 bug,避免让这些 bug 渗透到程序中。

mypy 项目链接:http://mypy-lang.org/

当有一群人同时开发一个大型的代码库时,这个额外的安全层就会非常有用。

Warsaw 说,“在我看来,这样可以让 Python 渗透到更大的组织中(比如 Instagram 基本上都在使用 Python 3)”。

此外,asyncio 是另一个社区在驱动 Python 发展的例子。

asyncio 链接:https://docs.python.org/3/library/asyncio.html

随着指导委员会的成立和空前的用户群增长,van Rossum 乐观地认为:“由社区驱动的 Python 进化”将继续取得“无与伦比的成功”。

他说,”一个拥有坚实的核心开发者的社区,现在有了一个新的管理制度,我想我们为 Python 语言的进化做好了更充分的准备”。

Warsaw 说,如果有人怀疑 Python 社区是否有能力继续为 Python 找到新的应用场景,那就让他们看看使用 Python 捕捉的第一张黑洞图片。

“Python 社区中总有那么一些人,我把他们看成是疯狂的 Python 科学家。他们总是在想,今天能把它做成这样,那么明天能不能走得更远?”

免责声明:本文来自站长之家合作媒体,不代表站长之家的观点和立场。
Python
628篇文章
查看
猜你喜欢
最新趣闻
最新推荐