Python正在蚕食全世界

开发 后端
世界上有几百种编程语言,而真正流行的不过20余种,Python就是其中之一。多年前,Guido van Rossum创造了Python,成为了如今的「Python之父」。面对数百万人忠诚拥趸,Nick Heath与van Rossum共同探讨了Python的过去以及未来。

 

 

[[274918]]

世界上有几百种编程语言,而真正流行的不过20余种,Python就是其中之一。多年前,Guido van Rossum创造了Python,成为了如今的「Python之父」。面对数百万人忠诚拥趸,Nick Heath与van Rossum共同探讨了Python的过去以及未来。

那一年是1994年底,来自美国各地的一群精英程序员召开会议,讨论如何打造出一款新的秘密武器。

Barry Warsaw正是二十位与会成员之一,回忆起首届研讨会上大家的激动之情,他至今仍记忆犹新。“我记得有个人反复强调,‘千万别告诉别人我们在这里,因为我们的Python是一招独门绝技’。”

在那时候,当时效力于马里兰州美国国家标准局的Warsaw就已经意识到,Python语言会带来一些前所未有的东西,极大降低代码编写与开发任务的难度。“当我第一次见到Python时,我就知道这里头一定有些不同寻常的东西。它非常重视可读性,而且编写Python代码也相当有趣。”Warsaw回忆道。

 

[[274919]]

▲ 图:1994年,Barry Warsaw在第一届Python研讨会上发言。

如今,Python所激发的热情已经远远超出最初的开发人员小团队。有些人预测,Python将很快成为世界上最流行的编程语言,因为它仍在以远超其它语言的速度吸引着更多新用户。每一天,都有数百万人在使用Python,且至今其用户指数在增长方面也几乎没有出现过下滑。

Python被无数专业以及业余开发人员用于处理大大小小的任务,尤其受到网络开发人员、数据科学家以及系统管理员们的青睐。今年早些时候,Python将来自约5亿公里外黑洞的第一张完整照片拼接出来(如下图),正如它在全球无数台计算机上为脚本提供支持一样。

 

Python正在蚕食全世界

Python在众多全球知名的组织当中发挥着关键作用,包括:帮助Netflix将视频流传输至全球超过1亿个家庭,为照片共享应用Instagram提供支持,协助NASA推进太空探索等等。

Python,早年的故事

从某些角度来看,Python同其名称来源、英国著名喜剧团体“巨蟒与圣杯”有着惊人的相似。同样是在自身的小众受众当中,Python语言声名鹊起并迅速积累起巨大的影响力。

该编程语言由荷兰程序员Guido van Rossum以编外项目的形式建立。上世纪八十年代末,van Rossum正在荷兰国家数学与计算机科学研究中心CWI当中开发分布式系统。由于对现有编程语言的不足感到沮丧,他决定创建一种新型语言——既要易于使用,又得功能充沛。

对于一个局外人来说,创建自己的编程语言在我听起来就像是“我要独力制造一架飞机”。但是,时年三十多岁的van Rossum有着自己的优势。他曾投入三年时间在CWI的一个团队内工作,并曾创建一种解释性编程语言ABC。因此,他已经深入理解到负责执行程序员指令的解释器在构建过程中存在哪些问题,以及新语言需要哪些语法构建单元。 

[[274921]]

▲ 图:Guido van Rossum摄于2001年,当时正值Python软件基金会成立。

话虽如此,van Rossum当时只能利用有限的编程语言进行项目开发,其中的难度可想而知。他当时正在研究的Amoeba分布式计算系统只支持C或者Unix shell,而这两者都有很大的局限性。C不仅要求开发人员必须以手动方式管理内存(这项工作极为复杂),其导航机制当中也存在大量犯错空间;此外,C语言也缺乏能够显著减少开发人员日常工作的可复用代码库——换言之,开发者必须在每个新项目当中重新发明轮子。另一方面,Unix shell则有着自己的问题——它虽然为常见任务提供一整套实用程序,但却运行速度太慢,且无法处理复杂的逻辑。

考虑到这些语言给开发人员带来的种种限制,对于van Rossum来说,创建自己的解释语言——能够从ABC语言当中直接借用最佳特性——看起来确实是最好的选择。

他表示,“我当时的想法很简单,‘为什么不自己创造一种语言’,它可以从ABC当中借鉴自己的想法,从而将原本需要三年完成的项目压缩到一个人就能在三个月之内开发完成。作为一次寂寂无名的小尝试,Python正式进入孕育期。”

1989年底,van Rossum开始认真工作,并决定从他最喜爱的喜剧团体“巨蟒与圣杯(Monty Python)”处借用这个名字。有了与蛇相关的Python之名,再加上缠绕的徽标,接下来他把自己能够支配的所有时间都投入到了项目当中。

虽然创造Python在名义上能够帮助他完成自己的其它工作,但van Rossum认为最大的动机,其实来自自主创造语言所带来的挑战与激励。

他表示,“我还记得,最能让自己提高工作效率的,就是坚信自己能够做到的信念。在某种程度上,我真的很希望能够创建出一个伟大的项目,列出我想要代码,并让它按照我想要的方式进行布局与设计。编程对我来说是件很有趣的事儿。”

尽管单枪匹马创造编程语言听起来好像不太靠谱,但van Rossum同志还是很好地完成了工作。在上世纪八十年代末,各类主要语言的最大问题,就是会带来开发人员们非常强烈的挫败感。Larry Wall曾有一句名言,他说在开发Perl语言的过程中,最大的动力主要来自语言本身在解决编码问题上的笨拙,以及设计中体现出的种种“懒惰、急躁与狂妄自大”。同样的,John Ousterhout也是在构建集成电路交互工具的过程当中,在糟糕现状的驱使下设计出Tcl。

在短短三个月当中,van Rossum就开发出一套Python解释语言的工作原型。他表示这套原型缺少现代功能,但其中已经出现了当前Python所具备的种种特征。

他指出,“如今的Python当中拥有很多重要的抽象;当时没有,但语言本身看起来已经极为相似。”

“当时,我已经开发完成解释器以及语言的所有基本组件。来自首套Python解释器中的简单Python程序直到今天仍能正常运行。”他还补充道,函数的定义方式完全相同、缩进机制完全相同、字典与元组使用的语法完全相同,甚至连用户在使用Python开发时面对的交互提示符也完全相同。

不过,虽然他的两位同事接受了这种语言并立即开始使用,但van Rossum当时对其广泛流行并没有抱很大的期望。毕竟他们都很清楚,在互联网时代到来之前,获取一种编程语言有多么困难。

不同于如今只需几下点击就能完成软件共享的方式,上世纪八十年代的软件发布可谓困难重重。van Rossum回忆起最早推广ABC解释语言时的艰辛历程。

van Rossum表示,“我还记得那时候大概是1985年,我去美国度假。那是我第一次去美国,我把存储着ABC语言的磁带放在了行李箱里。”

通过当时才刚刚成形的基础电子邮件系统,他得到了一份对该语言有兴趣的开发人员的住址与电话清单。由于传输能力有限,这些报名信息就是邮件所能承载的极限了。他只能挨家挨户邮寄这些磁带。尽管付出了不小的努力,但ABC并没能获得成功。

“就是因为这种分发上的困难,虽然ABC也拥有一系列非常出色的特性,但却没能走得太远。”但随着互联网革命的蓬勃发展,即使不用装满磁带的手提箱,Python也能够被轻松分发到用户手中。

Van Rossum于1991年通过alt.sources新闻组向全世界发布了Python语言。这是一份开源许可,而这时距离开源许可这个概念的出现才刚刚过去六年。虽然Python解释器仍然由多达21个独立的压缩文件组成,但需要在Usenet网络上下载整整一夜,但其效率仍然远远高于几年前的手动邮寄。

他表示,“我希望这种新生的语言能够在一定程度上获得成功,但我之前也尝试过,最终却只是徒劳一场。”

根据以往的经验,van Rossum开始关注Python的用户群体,并发现其长期处于增长态势。渐渐地,他意识到相关生态正在建立。在经过一段时间与Python社区的定期互动之后,他意识到自己可能创造了一种有望大获得成功的编程语言。

 “我认为这种实现过程会非常非常缓慢。在我们完成第一个开源版本之后,我制定出一份新版本的规划方案,并与刚刚出现的新兴Python社区进行探讨。这种感觉很棒,有种在干大事的感觉。”

Python为什么取得成功?

从这种意义上讲,Python的黄金时代正步步来临。而这种年轻的语言,直到二十世纪九十年代早期至中期,真正在世界范围内引起广泛关注。

Van Rossum认为开发人员之所以会被Python所吸引,靠的就是他当初创造这款语言时感受到的种种问题。开发人员想要一种高级脚本语言,在易用性与功能性之间找到理想的平衡,且不像Unix shell那样在处理复杂逻辑方面存在种种限制。他们希望摆脱C语言给开发者带来的内存管理难题,也不愿再在每个项目的起步之初面对基本相同的任务重新编写实现代码。

Warsaw表示,Python在实用性方面找到了平衡,同时也没有牺牲出色的功能性——在上世纪九十年代初,没有任何一种其它主流编程语言能够实现这种平衡。他表示,“当时我一直在编写大量的Perl、Tcl以及C代码,但完全没有乐趣可言。这时Python出现了,我的感觉就像,‘哇哦,编程终于又有趣了起来!’”

Python带来的,是清晰明确的语法,其中通过缩进将代码进行分组,并使得开发人员能够更轻松地理解代码含义。

分析公司Gartner应用程序平台战略团队研究主管Fintan Ryan表示,这种清晰性使得Python成功赢得众多开发人员的“芳心”。无论是在当时还是现在,这种利用缩进实现代码分组的做法都非常重要、堪称天才的创举。“它提供一种非常干净的语法。我们在使用其它语言时需要强制执行,但Python却能够自动执行。当然,有些程序员喜欢这样,有些则非常讨厌这种设计。”

事实上,Python优先考虑代码的可读性并非偶然之举。van Rossum表示,编程语言与开发人员之间的思想交流非常重要,毕竟编程的本质就是由程序员告诉计算机该做什么。

除了可读性优势之外,Ryan表示从早期开始,Python就提供一系列内置功能,这也使其从其它编程语言当中脱颖而出。他表示,“Python从起步阶段就拥有类与异常处理等功能。Python还提供对lambda、map以及filter等函数的支持能力,这些在不少场景下都非常实用。”

如果八十年代后期的那些编程语言能够更完善一些,那么Python可能将永无出头之日。事实上,van Rossum创建Python的动机之一,就是Perl脚本语言在他使用的Amoeba分布式计算系统上无法兼容。他指出,“对于Python来说,最幸运的就是Perl根本无法被移植到Amoeba之上。如果能够完成这样的移植,我想自己压根不会想到着手创造自己的编程语言。”

尽管在发布之后很快吸引到众多硬核用户粉丝,但直到上世纪九十年代,Python仍然只是一种小众编程语言。Van Rossum表示,该语言的主要竞争对手包括Tcl/Tk与Perl,这两者与python一样非常重视简单易用与功能丰富这两大目标。

他指出,“在九十年代,如果要对这三种语言进行排名,那么Perl绝对是第一——而且优势超级明显。Tcl/Tk位列第二,Python则只能屈居第三。”

如今的Pythohn早已不同于往日。根据年度Stack Overflow开发者调查(目前最为全面的编程语言使用情况排名之一),Python已经成为活跃开发人员数量增长最快的编程语言,而Perl则早已萎缩至可以忽略不计的程度。下图同样体现出Python爆炸式的增长势头,目前在Stack Overflow上与Python相关的问题在增长数量上远远超过任何一种其它编程语言。

 

Python正在蚕食全世界

▲ 图:据Stack Overflow数据显示,在主流编程语言增长趋势中(包括Java、JavaScript、C#、PHP、C++、python),Python的用户呈现巨大增长。图片来源/Stack Overflow

那么,Python是如何超越旧日竞争对手的?两种设计思路类似的语言,又为什么会迎来截然不同的命运?Van Rossum认为,一旦代码库增长至一定规模,接下来考验的就是代码库的维护难度。他表示,“人们普遍发现,对于10行的脚本,Perl是最完美的语言选项。但如果面对多达500行的主线代码与几千行的库代码,那就需要大量约束才能保证Perl代码的可维护性。相比之下,即使不施加这么多约束,Python代码仍然具有相当的可读性与可维护性。”

“当时有不少互联网开发人员——主要负责早期互联网工作——希望编写更为庞大的应用程序。在他们看来,由于可维护性优势,使用Python语言编写应用程序要比使用C、C++或者Java语言简单得多。”

整个九十年代,Python的使用规模不断扩展,而继续效力于CWI的van Rossum则发现他的成果正为世界上越来越多的人们所接受并喜爱。

他指出,“我确实创造出了出色的成果,它把世界各地的人们联系在一起——澳大利亚人、美国人、其他欧洲国家的人等等。我很享受这样的成就。”

Python与Web

到九十年代中期,Python开始迎来新的使用方式——从原本的音频录制与回放脚本,逐步迈向Web开发。而后来,Web应用程序开发也成为Python语言的核心支柱之一。

van Rossum指出,Python最初在Web服务器上的应用主要面向后端脚本以及Perl与Shell脚本。“其中一件大事在于Web开发,这对我来说也是一种非常有趣的体验。大家可以创建动态网页,这也成为我个人最喜爱的Python应用方向之一。”

Gartner公司的Ryan表示,Python之所以能够在上世纪九十年代在开发人员中大受欢迎,凭借的就是它在快速创建强大脚本方面的出色表现。他表示,“作为一种功能强大的脚本语言,Python降低了大部分用户的入门门槛。”

除此之外,Ryan还强调称Python语言功能多样且易于上手,因此吸引到许多不同类型的用户,他们的技术专长也各不相同。他指出,“系统管理员及其他一些用户利用Python语言进行系统自动化与编程,开发人员则可以使用其中的函数编程等功能,同时使用继承类——相比之下,Perl在功能性方面要差得多。一旦人们熟悉了这种语言,而且考虑到Python的入门门槛相当低,整个开发工作很快就会变得效率可观。”

到1994年,Python引起了Michale McLay的注意——他在当时的美国国家标准局(NBS)、即如今的美国国家标准与技术研究院(NIST)担任高级职务。这预示着Python语言开始正式进入研究人员与科学家的视野。McLay当时很好奇国家标准局的科学家如何使用Python语言。Van Rossum表示,他们“有大量数据需要处理,但他们的编程水平往往不是很高。”

为了向标准局内的技术人员推广Python,McLay邀请当时仍在荷兰CWI工作的van Rossum以客座研究员的身份前来工作2个月。这一举动,不仅影响到Python语言的未来发展,同时也给van Rossum的生活带来了巨大变化。

在此期间,第一届Python研讨会在国家标准局的办公室里正式召开,van Rossum、Barry Warsaw以及其他Python早期支持者们共聚一堂,讨论他们各自在用Python实现什么、Python的未来发展方向又在哪里。

在这里,van Rossum遇到了Bob Kahn,而后者正是互联网基础技术之一——TCP/IP协议——的开发者。

正是此次会议,促成了Kahn与国家研究计划倡议(CNRI)之间的合作。CNRI是位于弗吉尼亚州的非营利性研究组织,专注于网络技术的战略发展事务。

正如Python回应了人们对于新型编程语言的需求一样,van Rossum表示就在他开始质疑自己是否还有理由留在CWI的时候,新的工作机会出现在他的面前。

他表示,“CWI更像是一个学术机构,因此给了我一些现实压力。要么考取博士学位,要么就得在其他地方重新找工作。”

 “大家可以想象一下,当时我大概35岁左右,那个时候再去攻读博士学位其实不是太好的选择,而且也没什么吸引力。而且在此之前,凭借着Python项目,已经有一些潜在选择摆在我的面前,但我没有同意。而在这里,我喜欢这些人,也喜欢他们提供的选项。所以我很快答应了下来。”

在CNRI,在一支Python爱好者小组的帮助下,van Rossum整理出大量用于管理Python语言的结构。在1995年4月正式加入CNRI之后,van Rossum带领一支开发者团队致力于构建Knowbot程序。这些软件被称为移动代理,负责运行互联网等跨分布式计算机系统。

该团队使用的正是Python语言,而van Rossum迎来了Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer以及Fred Drake等重要成员,他们也都继续在Python社区当中发挥重要作用。

 

[[274922]]

▲ 图:Van Rossum、Roger Masse、Barry Warsaw

Van Rossum表示,“我们最终建立起一个由4到10人组成的团队,其中大多数人都在CNRI工作,这也正是Python语言的开发核心。”

就在van Rossum效力于CNRI的同时,该团队协助他建立起python.org网站、用于管理核心代码库变更的CVS服务器,以及面向Python特别兴趣小组的邮件列表(用于改进及维护Python语言)。

自1991年公开发布以来,Python用户社区迎来了显著增;到九十年代下半叶,该语言甚至在全球范围内吸引到诸多拥趸。在此期间,语言的管理也开始步入正式化。Python软件基金会(PSF)的前身正式建立,并于2001年完成更名。在社区发展的同时,1994年起召开的两年一度的Python研讨会也逐步演变成规模更大的年度盛会,并最终发展成当下仍然人气爆棚的PSF年度PyCon大会。

到新世纪之交,Python语言的整体规模已经超出人们的想象,而庞大的社区也在项目管理当中发挥着积极作用。这时候,人们终于不再像过去那样,担心“如果Guido被公共汽车撞了”,Python语言该怎么办这类问题。

Van Rossum当然继续在项目中扮演着核心角色,而且他的思维也始终主导着语言的发展。正因为如此,多年以来他被很多Python称为“仁慈的独裁者”。

Van Rossum指出,“总体来讲,在很长一段时间里,我都能够很好地消化压力,并且培养起不少项目管理技能。我可以借此向他人委派任务,让人们掌握自己的命运。”

Gartner公司的Ryan指出,由语言创造者担任语言管理者的做法并不罕见。Larry Wall之于Perl,以及Ryan Dahl之于JavaScript运行时Node.js,都是类似的情况。但他强调称,van Rossum的不同之处在于他在管理Python时总是强调公平。

他表示,“人们普遍认为,van Rossum在项目的发展方向与整体管理之间找到了理想的平衡点。”

事实上,van Rossum认为这种允许核心开发人员在社区当中进行公开辩论的方式,正是Python语言长期保持开放性并获得持续成功的决定性因素所在。

Python的演变

这些年里,Python语言取得了重大飞跃。2008年,Python 3.0的推出使得该语言正式完成现代化,项目的管理方式也不断迎来关键性改变。

最重要的变化出现在去年,由于公众对于将分配表达式引入语言的决定(相关提议于Python增强提案PEP572当中提出)存在分歧,van Rossum辞去了自己在BDFL的领导者角色。

虽然此举是为了进一步提升代码编写的效率,但反对变革的人们在网上对van Rossum发出严厉批评,有些人认为这样会导致Python代码的可读性下降、进而导致难以维护。

Van Rossum表示,他习惯于围绕新功能的问题开展辩论,但正是一部分反对者保持的顽固态度,使他下定决心做出一些自己的决定。

他指出,“我对某些做法感到非常失望,有些人会把技术层面的意见,转化为社交媒体上的抱怨或者是对我个人的攻击。这让我感到非常沮丧。”

“过去,我一直很清楚,如果有人打算改变语言或者改进某些功能,那么社区的核心开发人员就会讨论事情的利弊。如此一来,要么是达成明确的共识,要么就是在争不出个结果时,由我在认真考虑之后以某种方式做出决定。对于PEP572号提案,虽然其中确实存在争议,但我的选择是「没错,我希望这样做」。不过很多人显然不打算求同存异。”

 “虽然这并不是什么太大的争端,但我觉得,核心开发者社区对我已经没有充分的信任,我不再适合带领这个项目继续前进。”

在他看来,之所以会出现这一次语言变化方面的纠纷,是因为Python在用户数量方面的快速增长。

“造成这样结果的原因,可能在于Python社区的规模已经如此之大。我们很难在其中达成任何形式的共识,因为无论决定采用哪个选项,总会有异见人士跳出来反对。”

今年早些时候,Python核心开发人员们(即致力于维护及更新Python引用CPython解释器的人员)选出了一个指导委员会,用以监督该语言的未来发展方向。Van Rossum与Warsaw,外加Brett Cannon、Carol Willing与Nick Coghlan等核心开发人员一同入选。

Warsaw表示,对于用户群体快速增长的Python语言来说,这样的变革非常必要。

他指出,“我认为Guido肩上的担子太重了。”

Warsaw表示,“25年前,一切都还很好。当时的Python社区还很小、语言受众也比较有限。但现在情况不同了,如果仍然把一切都交给一个人,那真的太夸张了。我认为单纯出于对他个人健康以及社区参与度的考虑,我们也有必要把这副担子分摊给五个人。”

每一次新的Python功能发布之后,指导委员会都会进行新一轮选举。Warsaw表示,这将给Python语言下一代领导者的轮替铺平道路。

他指出,“如果想让Python在未来25年当中继续保持健康的运作状态,那么就必须逐步把Guido和我这样的人排除在外。”

事实上,Python的整个核心开发人员社区也欢迎设立指导委员会。核心开发人员Mariatta Wijaya表示,此举代表着项目朝着正确的方向迈出了一大步。她指出,“对我来说,由委员会负责要比一切归于一人更好——毕竟其中的责任与负担都太重了。这是个好兆头,未来社区将有更多指导意见可供参考。”

 

[[274923]]

▲ 图:Python核心开发人员Mariatta Wijaya在Python指导委员会成立仪式上

Python的未来

虽然Python仍在以惊人的速度吸引新用户,但社区中的部分成员也意识到未来可能出现的挑战。要保持这种良好的势头,Python就必须持续发展。

在今年的Python语言峰会上,BeeWare公司联合创始人Russel Keith-Magee警告称,如果不能针对移动与新型网络平台做出改善,那么Python就将面临“生存风险”。

他指出,“智能手机与平板电脑正在向着台式机与笔记本从未触及过的市场领域渗透。但作为语言社区,我们一直没有考虑过如何在这些设备上使用Python语言。”他提到自己的儿子会在学校里使用iPad,“当笔记本电脑最终成为一类小众产品时,Python的生存空间又在哪里?”

Keith-Magee的BeeWare项目旨在实现Python应用程序的一次编写、随处运行目标,从而解决Pytho目前在标准x86 PC平台之外的支持能力问题。

他表示,Python语言的未来更新必须能够更好地支持非x86硬件平台上的代码编译需求;Python的测试套件很容易在移动及Web 平台上发生崩溃;Python应用程序的安装包大小一直在不断膨胀,且其中的依赖项无法得到有效缩减;在Android、Windows以及Web上编写GUI代码时,必须使用asyncio库;标准库中有大量模块无法兼容除CPython以外的其它Python解释器。

Warsa表示,Keith-Magee的思路非常好,而且项目现在确实有必要思考Python该如何与新平台实现顺畅对接——包括手机、平板电脑以及WebAssembly等新兴技术。

Warsaw坦言,“现在Python在这些新兴平台上的影响力确实比较有限。”他希望未来用户能够在iPhone或者Android手机上随意下载应用,而无需“意识到这是使用Python编写而成的。”

随着现代芯片内部处理器核心数量的不断攀升(英特尔最新服务器产品中的核心数量已经达到48个),Warsaw也热衷于推动Python在跨核心任务分散方面做得更好。

他对于Eric Snow在子解释器方面做出的努力,以及扩展Python以实现代码并行运行的能力感到兴奋。他表示,“我最希望看到的,就是Python代码能够利用多个核心完成更多工作。”

Snow参与了一个长期项目,旨在让Python能够轻松在多个处理器核心之间高效实现任务分割。Snow专注于对Python现有子解释器中的功能进行重新编写,以改变各子解释器间的彼此交互方式。而实现这一切的关键,正是Python的全局解释器锁(GIL)。

Warsaw指出,“GIL目前还没有完全准确就绪。也许会在Python 3.8或者3.9版本中推出。我想其正式发布时间,应该在未来的两年到两年半之间。我对结果感到乐观。我很高兴Eric能够为此不懈努力,这确实是一项非常重要的工作。”

另外,即使是在多核心多线程Python应用运行方面遭遇失败的尝试——例如The Gilectomy,也能够带来不少有趣的经验教训。这将指导后来者在Python的跨核心工作负载分散方面做得更好。

Python社区还采取措施以实现语言内置代码标准库的现代化。他们最近发布了一项删除库内过时模块的提议;在此期间,社区还开始着手解决针对Python标准库状态的一些批评意见。该库凭借着广泛的常见任务执行能力,而成为Python语言的一大主要优势。然而,这套被称为Python“内驱电池”的库却在今年的Python语言峰会上面临质疑,有与会者询问是否可以开放人们的代码库选择权,从而以更灵活的方式使用Python(目前Python会固定捆绑这套标准库)。

还有一些针对Python核心开发人员与Python指导委员会的问题,包括他们能否切实反映当下Python用户当中的不同细分群体。

Wijaya表示,“我希望看到委员会成员能够有更好的代表性,而不只是做到表面上的性别平衡——种族以及其它因素的平衡同样非常重要。”

 “在PyCon大会上,我与来自印度及非洲的PyLadies成员进行了交流。她们认为,「当我们听到Python或者PyLadies组织时,首先想到的只会是美国或者加拿大的成员。实际上,世界各地还有其他用户群体。为什么我们不能看到更多样化的组织方式呢?」我认为这很有道理,所以我觉得有必要在这方面做出尝试,毕竟我们都应该在社区当中尽到自己的责任。”

最后,尽管有着“仁慈的独裁者”的监督,近年来Python的运营思路已经变得愈发广泛。Warsaw表示,人们通过Python的多种使用方式探索着不同的可能性,而这正是通向新用途的大门。

他指出,“我们应该从社区中吸取更多养分,而非自上而下硬性贯彻自己的思路。”

社区项目对Python产生巨大影响的一个典型实例,正是Type Hints。这是一项通过Python 3.5推出的功能,源自2012年由一位博士生推出的mypy项目。其负责提示可选的类型检查,帮助开发人员发现某些可能通过其它方式被引入软件的错误。

对于Python的实际应用而言,往往会有众多开发人员立足同一大型代码库进行工作,因此添加这样的额外安全层不仅仅是多了一重保障——这实际上代表着建立起代码该做什么以及不该做什么的额外洞察见解,且无疑将产生重大影响。

Warsaw指出,“就个人而言,这使得Python能够被扩展至其它规模更大的组织当中——例如基本上以Python 3为基础的Instagram。这一点非常重要。”在他看来,asyncio正是社区创意的另一个好例子,同样对语言的发展产生了巨大影响。

随着指导委员会的建立以及远超以往的用户群体规模,van Rossum乐观地认为“社区驱动下的语言演变”将继续“取得辉煌的成功。”

他表示,“我们拥有一个非常可靠的核心开发人员社区,现在又有了一套新的治理系统,因此我想我们已经做好了准备,能够就会Python编程语言的一切演变需求。”他同时赞扬了社区内对于Python各个层面的支持与贡献。

Warsaw表示,如果还有人质疑Python社区探索新用途的能力,不妨先想想Python语言在帮助捕捉有史以来第一幅黑洞图像方面发挥的重要作用。

 “这真的让我感到惊喜万分。在Python社区当中,我就认识不少非常疯狂的科学家。他们总是在思考,琢磨当下能够做到的用例,并探索未来有望实现的更多新型用例。 

责任编辑:庞桂玉 来源: 科技行者
相关推荐

2020-04-28 10:15:54

云计算软件行业

2014-11-12 09:49:43

Linux开源

2014-11-12 10:22:50

Linux开源

2020-12-18 10:23:59

比特币美元金融

2014-03-11 09:30:00

面试职场

2014-01-26 21:45:06

微软

2016-03-21 14:52:25

2018-04-24 08:33:11

软件开发者 Bug

2020-03-02 15:48:26

戴尔

2018-03-06 10:45:25

无服务器基础设施

2009-11-04 10:33:57

Sun

2010-12-10 09:11:00

Oracle服务器操作系统

2015-02-04 11:03:34

时代马云阿里巴巴

2015-08-19 13:31:14

SDN

2023-08-02 07:12:35

2013-03-07 09:12:41

巨型电脑云计算

2014-11-04 10:57:42

移动优先

2021-05-12 14:46:46

数字货币人民币金融

2018-08-09 12:04:00

智能音箱

2022-05-10 11:32:51

动化测试的常见挑战
点赞
收藏

51CTO技术栈公众号