当初由于无法忍耐编程语言的种种缺点,Guido van Rossum 一手创建了 Python 编程语言。如今 Python 已有数百万使用者,在本文中将基于 Python 的过去及今后的计划展开了讨论。
作者 | Nick Heath
译者 | 弯月,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
1994 年底,一群来自美国各地的顶级程序员开会讨论他们的新式秘密武器。
Barry
Warsaw 是当初参加首次 Python 编程语言研讨大会的 20 名成员之一,对他来说,当年那个激动人心的时刻至今仍历历在目。
“我还记得有一个人说,我们不能告诉任何我在这里,因为使用 Python 是一种竞争优势。这是一种秘密武器,对吧?”
那次大会在马里兰州的那个后来成为了美国国家标准局的地方举行,Warsaw 说,他们能明显感受到 Python 提供的新功能能够降低编写代码的难度,让开发工作更为轻松。
他回忆道:“在第一次接触 Python 的时候,我就感觉到一些特别之处。编写 Python 代码是一种乐趣,而且可读性非常高。”
Python 之父 Guido van Rossum
如今,人们对 Python 的喜爱已远远超出最初的那几名开发者的圈子,有人预测 Python 很快就会成为世界上最流行的编程语言,因为这种语言新用户的增长速度超过了任何其他编程语言。数百万计的程序员每天都在使用 Python,而且其用户的增长指数没有丝毫减缓的趋势。
无论是专业人士还是业余开发,无论项目的大小,人们纷纷选择了 Python,尤其是 Web 开发人员、数据科学家和系统管理员,他们尤其喜欢 Python。今年早些时候,有人利用 Python 合成了首张距离地球 5500 万光年的黑洞照片,而另一方面,Python 也成为了全球电脑上为无数黑客攻击脚本提供动力的编程语言。
Python 在全世界一些知名的组织中也发挥着关键性作用,它帮助 Netflix 为全球超过 1 亿个家庭带来了在线视频,帮助 Instagram 为千家万户提供了照片共享,还帮助 NASA 展开太空探索。
Python 这个名字源自英国的一组超现实幽默表演团体蒙提·派森(Monty Python),从某些方面来说,该编程语言的发展与这个表演团体如出一辙——同样的离奇曲折,又惊世骇俗。而 Python 编程语言本身也在自己的领域享有盛名和影响力。
Python 编程语言始自荷兰程序员 Guido
van Rossum 的一个业余项目。20 世纪 80 年代末,Van Rossum 在荷兰国家数学和计算机科学研究中心(Centrum Wiskunde
& Informatica,CWI)开发分布式系统。现有编程语言的缺陷令他感到万分沮丧,于是他决定创建一门新的编程语言——一门易于使用且功能齐全的编程语言。
在外人看来,创建自己的编程语言就好像是说“我要建造自己的飞机”,但是当时三十多岁的 Van Rossum 拥有一些先发优势。他在一个 CWI 的团队中工作了三年,期间他们创建了一种解释性的编程语言 ABC,所以他对执行程序指令的解释器以及新语言所需的语法基本构成已有深入的了解。
此外还有很重要的一点,当时的 Van Rossum 意识到使用那些功能有限的编程语言来完成工作的难度太大。当时他在研究 Amoeba 分布式计算系统,写代码需要使用 C 或 Unix shell,这两者都有很大的局限性。C 不仅要求开发人员应对手动管理内存的复杂性以及遇到潜在错误的危险,而且还缺少开发人员日常工作所需的可重用代码库,每次遇到新项目开发人员都需要重新开发基本的组件。而 Unix shell 则有完全不同的问题:它为解决常见的任务提供了一套实用程序,但其运行速度太慢,无法处理复杂的逻辑。
这些语言上的限制让开发人员的工作痛苦不堪,因此对于 Van Rossum 来说,创建自己的解释语言才是最好的选择(而且他还可以借鉴 ABC 语言的部分功能)。
“当时我就在想,为什么不创建自己的编程语言呢?我从 ABC 中借鉴了一些想法,同时将项目的规模从三年的开发降低到我可以独自承受的工作量,作为我的业余项目在三个月内完成。于是,Python 诞生了。”他说。
1989 年底,Van
Rossum 正式启动了这个项目,这门编程语言的名字来自他最喜欢的戏剧表演团蒙提·派森(Monty Python),由于 Python(蟒蛇)与蛇有关,所以后来他选用了样子有点像蛇缠绕的 Python 标志。
“当时的我并没有太多丰富的社交生活。因此,我把看电视的时间花在编程上,有时也会边看电视边写代码。”他承认说。
虽然名义上他创建 Python 是为了帮助减轻自己的工作负担,但 Van Rossum 说更大的动力来自面对创建自己的编程语言的巨大挑战。
“我并不清楚我是不是真的相信创建这样一门编程语言可以提高我的工作效率。可能在某种程度上,我只是很喜欢亲手创建一个大项目的想法,展示我想展示的代码,按照我想要的方式设计。我很享受编程的乐趣。”他说。
尽管仅凭个人的力量创建一门编程语言的想法听起来很不寻常,但当时的 Van Rossum 生在一个英雄辈出的年代。20 世纪 80 年代后期,在开发工具给当时的开发人员造成的重重挫败感的刺激下,各大主流编程语言如雨后春笋般纷纷涌现。拉里·沃尔(Larry Wall)曾说,他创建 Perl 语言的动力就来自通过编程解决问题的难度过大,以及自身的“懒惰、急躁和狂妄自大”。还有,John Ousterhout 坚持不懈地寻找更好的语言来创建构建集成电路的交互式工具,最后他设计出了 Tcl。
在短短三个月内,Van Rossum 就创建了 Python 这种解释语言的工作原型,他说这个原型缺少现代功能,但仍不失为一种现代的编程语言。
“如今的Python有很多重要的抽象,当时没有,但语言本身看起来还是差不多。”他说。
“当时,我只做了解释器和编程语言的基本组件。一些简单的能在第一个Python解释器上运行的程序在如今的Python上仍然有效。”他说,并补充说函数的定义方式相同,缩进也相同,字典和元组也是用相同的语法创建的,而且还有一个熟悉的交互式提示符,你可以在上面键入Python代码并立即执行计算。
虽然Van Rossum的两位同事在拿到这门语言后立即开始使用,但他本身对进一步的推广并没有抱太大期望,因为他们心知肚明在互联网出现之前的时代,顺利推广一门编程语言是多么困难。
虽然如今在与整个世界共享软件时,你只需点击几下鼠标,然而在20世纪80年代你需要付出更多的努力,Van
Rossum想起当时(在Python前)发布ABC时的困难重重。
“记得85年左右,我去美国度假,那是我第一次去美国,我的行李箱里装满了磁带。” Van Rossum说。
他通过当时简陋的基本电子邮件系统找到了对ABC有兴趣的人的地址和电话号码,由于无法通过电子邮件传输庞大的源代码,所以他不得不挨家挨户发磁带。尽管付出了这么多努力,ABC仍然没能取得成功。
“尽管我们的ABC有很好的特性,但是发行量依然不理想。”他说。但随着互联网革命的蓬勃发展,如今无需装满磁带的行李箱,就可以很轻松地分发Python。
1991年,Van Rossum通过alt.sources新闻组向世界发布了Python,采用的授权很像现在的开源许可——尽管直到6年后开源这个词才首次问世。虽然Python解释器仍然需要将21个单独的文件合并成一个压缩包,而且需要在Usenet网络上花一整夜的时间才能下载完毕,但仍然比几年前的手工发放方便多了。
“我希望这次能有一点起色,但我之前就经历过一次发布,而且基本以失败告终。”他说。
回忆起往昔,Van Rossum表示,过了很久以后他才听到有关Python用户群不断增长的消息。渐渐地,他感觉到了 Python 崛起的力量,在与 Python 社区定期互动了一段时间后,他意识到自己创建的这门编程语言可能要成功了。
“我感觉整个过程非常非常缓慢。在我们完成了第一个开源版本后,我一直在坚持定期发布新版本,并与刚刚兴起的 Python 社区交互。我感觉这非常重要。”
20世纪90年代早期,Python开始备受关注,感觉Python的时代已经到来,Van Rossum也感觉到了。
Van
Rossum认为开发人员被Python所吸引的原因与当时他创建这门编程语言的初衷一致。他们想要一种高级脚本语言,能够在方便使用和功能健全之间取得平衡,在处理复杂逻辑时没有Unix shell的限制。他们希望结束开发人员使用C时繁琐的内存管理,也希望改变每个项目开始之初都需要为相同的基本功能编写重复代码的局面。
Barry Warsaw在1994年的第一次Python研讨会上
Warsaw表示,Python保持了语言的方便使用,同时也没有牺牲功能的健全——在20世纪90年代早期,任何一门主流的编程语言都未能真正提供这种平衡性。“我尝试过Perl、Tcl和C编程,感觉都不是很有趣。直到Python的出现让我眼前一亮,感觉原来编程可以如此有趣。”他说。
Python提供了清晰明确的语法,通过缩进将代码分组成块,让开发人员更容易理解代码。
分析公司Gartner的应用程序平台战略团队的研究主管Fintan Ryan表示,清晰性在赢得开发人员方面起着重要的作用,无论是现在还是在20世纪90年代,即使仅凭缩进实现的清晰性也可以扭转整个局面。“Python提供了一种非常干净的语法。在使用其他编程语言时你需要强迫人们遵守缩进,但使用Python时这种强制是自动的。有些程序员喜欢这种做法,有些人却很讨厌。”他说。
事实上,Python优先考虑代码清晰性和可读性并非偶然,Van Rossum表示,对于编程语言来说,开发人员之间的思想交流与他们和计算机之间的交流同等重要。
除了可读性之外,Ryan表示,从早期开始,Python就提供了一系列内置功能,所以它才能从众多编程语言之中脱颖而出。“Python从一开始就具有类和异常处理等功能,此外它还提供了lambda、map和filter等辅助函数,事实证明在很多情况下这些功能都非常实用。”他说。
如果80年代后期流行的编程语言出色一点的话,可能Python压根就不会出现了,因为Van Rossum创建Python的动机之一就是Perl脚本语言与Amoeba分布式计算系统(他在CWI的工作)的不兼容。“对于Python来说,Perl无法移植到Amoeba是一件幸事,”他说,“如果Perl可以移植到Amoeba上的话,我也不会想起创建自己的编程语言。”
尽管Python在发布后吸引了众多铁杆粉丝的用户群,但在20世纪90年代,Python仍然是一种不被看好的编程语言。Van Rossum表示,Python的竞争对手有Tcl / Tk和Perl,这两种编程语言的目标与Python相同:简单易用、功能齐备。
“论90年代排名前三的编程语言的话,Perl以绝对的优势居首位,Tcl / Tk排名第二,而第三名才是Python。”他说。
根据Stack Overflow的年度开发人员调查报告(这是目前最全面的编程语言使用情况调查)显示,Python是活跃的开发人员中间增长最快的编程语言,但报告中甚至都没有提及Perl。
下图中Python的爆炸式增长表明,近年来Stack Overflow上有关Python提问的增长速度远远超过了其他编程语言。
那么,究竟Python是如何超越昔日的竞争对手的呢?我们又该如何解释两种语言截然不同的命运呢?Van Rossum认为,这与代码库的增长超过一定规模后维护代码库的容易度有关。“按人们的经验来看,如果某个脚本只有10行代码,那么Perl是完美的选择。”他说,“但是,如果你有500行主线代码和几千行库,那么就需要严加约束才能维护好这些代码。而在Python,即使没有那么严格的约束,代码仍然具备一定的可读性和可维护性。”
正是这种特性促使Python成为了一种容易上手的编程语言,同时也非常强大,足以编写大型应用程序,因此Van
Rossum才在20世纪90年代取得了初步的成功。
“有一些互联网开发人员(很多是早期的互联网工作者),他们编写的应用程序越来越大,而且他们发现用Python编写应用程序所需要付出的努力远低于C、C++或Java。”
随着20世纪90年代Python使用范围的扩大,仍然在CWI工作的Van Rossum发现越来越多来自世界各地的人就他的编程语言与他联系。
“我创建了一门编程语言,而它与澳大利亚、美国、欧洲等世界各地的人联系到了一起。我享受到了生命中的美好时光。”他说。
到 20 世纪 90 年代中期的时候,Python 出现新的使用方式,最初用于音频的录制和回放脚本,后来开始涉足 Web 开发——而 Web 成为了 Python 后续发展的支柱。
“这期间的一件大事就是 Web 开发,这对我来说也是一件非常有趣的事情,” Van Rossum 说道,人们开始用 Python 编写 Web 服务器上的后端脚本(就像 Perl 和 Shell 脚本一样)。他说,“你可以创建动态网页,这是我最喜欢的 Python 应用程序之一。”
Gartner 的 Ryan 说,在 20 世纪 90 年代,Python 在开发人员中间流行的原因就在于它是快速创建强大脚本的最佳选择。“作为一门功能强大的脚本语言,Python 降低了许多用户的门槛。”他说。
不仅如此,Ryan 还说这门语言的功能多样化,且容易上手,因此吸引了许多拥有不同技术专长的各类用户。“系统管理员和其他人采用 Python 实现系统自动化和编程,开发人员喜欢它的函数式编程、支持继承的类等特性—— 而其他语言,例如 Perl,这方面的功能相对就弱一些,”他说,“这门编程语言的学习曲线很低,而且一旦上手,就会迅速提高工作效率。”
1994 年,Python 引起了 Michael McLay 的注意,他曾在当时的美国国家标准局(NBS)(现在的美国国家标准与技术研究院(NIST))担任高级职务。McLay 的关注预示着 Python 将受到研究人员和科学家的青睐——他认为 Python 简单易用,非常适合 NBS 的科学家使用,Van Rossum 说,“这些科学家需要处理大量的数据,但他们都不熟悉编程。”
为了在 NBS 内的其他人中推广 Python,McLay 邀请了当时仍在荷兰 CWI 工作的 Van Rossum 到 NIST,作为客座研究员工作了两个月。事实证明,此次安排给 Python 未来的发展和 Van Rossum 的生活带来了重大变化。
在 Van Rossum 这两个月的工作期间,NBS 举行了第一次 Python 研讨会,Van Rossum、Barry Warsaw 和其他早期的 Python 爱好者聚集在一起讨论Python 的使用,以及这门语言未来的发展。
在 NBS 的办公室里,Van Rossum 遇到了 Bob Kahn——此人开发了互联网的一项基础技术:TCP / IP 协议。
在此次会议上,Van Rossum 收到了邀请,前往美国全国研究创新联合会(CNRI,这是一家位于弗吉尼亚州的非营利性研究组织,专注于网络技术的战略发展)与 Kahn 一起工作。
虽然 Python 已经满足了新型编程语言的需求,但 Van Rossum 表示他开始质疑自己在 CWI 的发展前景,而这个工作机会的出现恰逢其时。
“CWI 是一个学术机构,我感受到了一定的压力,要么攻读博士学位,要么就需要另谋高就。”他说。
“当时我已经35岁了,在这个年纪攻读博士学位并非我所愿。早些时候,由于 Python 的原因,我也收到过很多工作机会,但是经过电话交谈和慎重的考虑后,我还是决定留下。但是,此次机会十分难得,我喜欢这些人,喜欢他们提出的条件以及项目,所以我动摇了。”
Van
Rossum 在加入 CNRI 以后,在一个 Python 爱好者团队的帮助下建立了许多管理 Python 语言的结构。1995年4月,Van Rossum 加入 CNRI,他开始带领一个小团队的开发人员致力于构建 Knowbot 程序——该软件被称为“移动代理”,旨在跨分布式计算机系统(如互联网)上运行。
该团队的工作采用了 Python,除了 Van Rossum 之外,还有 Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer 和 Fred Drake,所有人都在 Python 社区中发挥着重要的作用。
“最终我们组建了一支4-10人的团队,其中大多数人都是在CNRI工作,他们是Python开发的核心力量。”Van Rossum说。
Van
Rossum在CNRI工作期间,这个团队帮助他创建了python.org网站、管理核心代码库变动的CVS服务器,还建立了改进和维护Python语言的特别小组邮件列表。
自1991年公开发布以来,Python用户社区的增长非常显著,到本世纪下半叶时,该编程语言已经吸引了大批全球用户群。在此期间,该编程语言的管理开始步入正规,同时还于2001年建立了Python软件基金会(PSF)的前身。随着社区的发展,于1994年开始的两年一度的Python研讨会演变成了盛大的年度活动,还有如今仍在盛行的由PSF主办的Python年度大会。
到21世纪之交,Python编程语言空前壮大,庞大的社区在其发展中发挥着积极的作用。回想1994年的那个夏天,早期的Python用户还在担心如果Guido发生意外,这门编程语言该何去何从(请参考《如果Guido被公共汽车撞了》,https://legacy.python.org/search/hypermail/python-1994q2/1040.html)。
然而,Van Rossum一直在Python语言的发展中发光发热,而且他的思想在该编程语言发展中依然处于核心地位,因此大家都亲昵地称呼他为“仁慈的独裁者”,多年以来这个半开玩笑的头衔一直陪伴着他。
“长期以来,在大多数时候,我都能够承受这些压力,而且我也具备了管理项目的能力,我可以将很多工作委派出去,让人们掌握自己的命运。”Van Rossum说。
Gartner的Ryan表示,由编程语言的创始人出面管理语言的情况并不常见,参考一下Larry Wall和Perl以及Ryan
Dahl的JavaScript运行时Node.js就可见一窥,但大家都认为Van Rossum管理Python的方式很公平。
“大家都认为他能够在整体的管理工作中,很好地平衡项目的方向。”
事实上,Van Rossum认为Python成功的决定性因素在于Python开发中的开放性,而这种开发性建立在核心开发人员社区之间的公开讨论之上。
在此期间,Python 取得了重大飞跃,2008 年 Python
3.0 的引入让该编程语言走向了现代化,然而,近期该编程语言的管理方式也发生了重大改变。
有些变化始自去年,当时 Van Rossum 辞去了作为“仁慈的独裁者”的领导身份,因为公众在 Python 引入赋值表达式的问题上产生了分歧(请参照 Python 改进方案 PEP572,https://www.python.org/dev/peps/pep-0572/)。
虽然引入该功能的目的是编写更有效的代码,但 Van Rossum 在网上遭到了那些反对变革的人的严厉批评,有些人认为该功能会降低代码的可读性,且难以维护。
Van
Rossum 表示,他习惯了有关新功能的争论,但他不愿与某些诋毁他的人妥协,而某些攻击者的人品致使他下决心辞职。
“我感到非常失望,有人在技术上有不同的看法,就去社交媒体上咆哮说 Python 的决策过程遭到了破坏,或者说我犯了极其严重的错误。我感觉背后被人摆了一道。”他说。
“过去,大家都很清楚,如果需要在语言上做出某些改变或改进某个功能,那么就需要经由一大堆核心开发人员讨论这些变化的利弊。有时大家会达成明确的共识,有时无法取得统一的意见,那么我就在脑海中仔细考虑,并做出决定。在 PEP572 的问题上,尽管存在明显的争议,但我做出了选择:我想引入这个功能,而且大家也没有说不同意。”
“我不想撂挑子不干了,但我觉得我没有获得足够的核心开发者社区的信任,无法再领导整个团队继续前进。”
他认为,有关语言的争论方式的变化部分是因为如今使用 Python 的人数过于庞大。
“可能是因为 Python 社区的规模过于庞大。这些人之间很难达成共识,因为无论你做出怎样的决定,总有一些持异议的人士。”
今年早些时候,Python 核心开发人员(那些致力于维护和更新 Python 使用的 CPython 解释器的人)选出了一个指导委员会来监督该语言的发展。Van Rossum 与 Warsaw 以及核心开发人员 Brett Cannon、Carol Willing 和 Nick Coghlan 一起当选。
Warsaw 表示,为了管理 Python 增长速度如此迅速的用户群,这种变化是必要的。
“我感觉 Guido 想凭一己之力挑起整个世界。”他说。
“放在 25 年前,当时 Python 还是一个很小的语言,社区规模也很小,一个人管理也没问题。但今非昔比,而且我觉得为他的个人健康考虑,应当让社区的五个人共同分担这项重任。”Warsaw 说。
在每次新 Python 功能发布后,指导委员会都会进行新一届的选举,Warsaw 表示,这可以为下一任领导 Python 发展的人铺平道路。
“即便从现在开始 25 年后 Python 仍将健康发展,那么届时也不是我和 Guido 所能管辖的世界了。”他说。
广大的 Python 核心开发人员社区非常欢迎指导委员会的设立,核心开发人员Mariatta
Wijaya 表示,此举意味着 Python 朝着正确的方向迈出了一步。“对我来说,通过委员会来共同做决定好过让一个人全权决定,毕竟这份责任和负担太大了。”她说,“这是一个好兆头,社区可以听到更多人的心声。”
虽然 Python 持续以惊人的速度吸引着新用户,但社区中的有些人预见到了未来的挑战,如果想维持 Python 的高度关注,那么就必须不断发展。
在今年的 Python 语言峰会上,BeeWare 的联合创始人 Russell Keith-Magee 发出了警告,如果 Python 无法改善对移动和新网络平台的支持,那么就可能面临“生死存亡的风险”。
“手机和平板电脑对市场的渗透力是台式机和笔记本电脑无法比拟的,但作为一个社区,我们却未能提供在这些设备上使用 Python 的渠道。”他说。他调查了他儿子在学校使用 iPad 的情况,他问:“如果笔记本电脑被小型设备取代,那么 Python 该何去何从?”
Keith-Magee 希望通过 BeeWare 的项目,编写一个 Python 应用程序,并在所有设备上运行,解决目前 Python 无法支持标准 x86 PC 之外的平台的问题。
他表示,Python 需要更好地支持在非 x86 的新兴硬件平台上编译代码;Python 的测试套件容易在移动和 Web 平台上崩溃;Python 应用程序的安装过大,且无法缩减到一小部分的依赖项;在 Android、Windows 和 Web 上编写 GUI 代码时,使用 asyncio 库需要付出额外的工作量;标准库中存在大量无法与 CPython 以外的 Python 解释器兼容的模块。
Warsaw 表示,Keith-Magee 提出的意见非常中肯,而且他相信考虑 Python 与新平台(包括手机、平板电脑和 WebAssembly 等新技术)的关联性非常重要。
“现在,Python 并没有一个很好的途径,”Warsaw 表示他希望有一天用户通过 iPhone 或 Android 手机下载应用时“从来不知道该应用是用 Python 编写的。”
随着现代芯片内部处理器核心数量的不断攀升(英特尔最新的服务器中核心的数量高达 48 个),Warsaw 也希望看到 Python 能够更好地处理多核心上的分散任务。
他对 Eric Snow 在子解释器上的工作进展,以及扩展 Python 并行运行代码的能力充满了期待。“我真心希望看到 Python 能够利用多核心完成更多工作的能力。”他说。
Snow 参与了一个长期项目,旨在提高 Python 在多个处理器核心之间有效地分割任务的能力,Snow 的主要工作是重新编写 Python 现有的子解释器功能,并改变每个子解释器与 Python 全局解释器锁交互的方式。
Warsaw 说:“这个项目应该不会在 Python 3.8 上发布,可能 3.9 也来不及。“我估计我们会在两年到两年半以后看到它。我非常乐观。我很高兴 Eric 依然在努力,因为我认为这个工作非常重要。”
他说,即使是那些尝试在多个核心上运行多线程 Python 应用程序的失败项目,例如 The Gilectomy,也可以让我们吸取有意义的经验教训,说明 Python 可以在多个核心之间分散工作负载方面有更出色的表现。
Python 社区还采取措施,提高了语言内置代码标准库的现代化水平,最近他们发表了一项提议,建议从库中删除过时模块。这样做是为了应对最近对 Python 标准库的一些批评。该库常常被当作 Python 的优势之一,因为它可用于执行广泛的常见任务,这就是为什么 Python 被称为“自带电池”的原因。然而,在今年的 Python 语言峰会上,有人在演讲中说,应该允许人们从 PyPI 中选择库,而不应该作为标准库与语言捆绑在一起,这样 Python 才能更好地服务于人。
还有一些问题是,负责语言开发的 Python 核心开发人员和 Python 指导委员会是否可以更好地代表 2019 年 Python 用户群的多样性。
Wijaja 说:“我希望看到各个方面表现出更多的代表性,不仅仅是性别的平衡,还包括种族和其他一切。”
“在 Python 大会上,我与来自印度和非洲的 PyLadies(Python 女性联盟组织)成员进行了交谈。她们说,‘当听说 Python 或 PyLadies 时,我们就会想到北美或加拿大人,实际上世界其他地方也有很多用户群。为什么我们看不到呢?’我认为她们说得很有道理。我肯定也希望看到更多的用户群,我认为我们都需要尽自己的责任。”
Warsaw 说,尽管外间流传着让一位“仁慈的独裁者”掌管一切的玩笑话,但近年来改变 Python 的想法皆源自社区中,他们敞开大门欢迎新用户的到来,并推动 Python 的使用。
“整个社区是从底层向上构建的,而不是自上而下的命令。”他说。
说到社区项目对 Python 产生的巨大影响,我想到了一个例子 Type Hints,这是一个 Python 3.5 的功能,该功能受到了 2012 年由某个博士生创建的 mypy 项目的启发。这些提示允许可选类型的检查,可以让开发人员发现一类其它方式很难发现的 Bug。
当多个人在大型代码库上工作时,这个额外的防护层绝不仅仅是锦上添花,这种对于代码应该做什么、不应该做什么的额外规定可以产生重大影响。
“在我看来,让 Python 在更大的组织中得以应用的机会非常珍贵。比如 Instagram,他们基本上用的都是 Python 3。”Warsaw 说。他还说 asyncio 是社区想法对语言产生巨大影响的另一个例子。
有了指导委员会,以及前所未有的庞大用户群,Van Rossum 乐观地认为“社区驱动的语言演变”将会继续“非常成功”。
“我们有非常可靠的核心开发人员社区,现在这个社区有了新的治理系统,因此我认为我们已经做好了准备迎接任何语言发展的需求。”他对社区在 Python 特定方面的深刻认识表示赞许。
Warsaw 表示,如果有人怀疑 Python 社区能否继续为这种编程语言找到令人震惊的新用途,那么可以了解一下 Python 在帮助捕获首张黑洞照片方面时发挥的作用。
“我对此感到非常震惊。我认为 Python 社区中有几个人是疯狂的 Python 科学家。他们总是在寻找新机会——如今我们能做的就这么多,那么今后还能走得更远吗?”
原文:https://www.techrepublic.com/article/python-is-eating-the-world-how-one-developers-side-project-became-the-hottest-programming-language-on-the-planet/
下面给大家推荐 CSDN 的好朋友——程序人生。
为什么推荐程序人生?
程序人生聚集百万程序员,在这里你可以笑谈开发轶事,吐槽百味的程序人生。
无论是从行业热点到经验解析,从职场困惑到风口趋势,还有程序员不为人知的秘密,我们将为你一一揭晓。
【End】
长按下方二维码关注程序人生,可了解更多程序员的开发趣事、热点资讯:
龙泉寺的IT高僧是用哪种编程语言呢?Java ? Python?这篇10W+文章告诉你↓↓↓
程序员下班时,为啥电脑不关只揣了手机就走啦??这篇9W+文章过于真相了↓↓↓
调查上万名程序员,竟然发现女程序员比男程序员更懂 Java?怎么回事啊??↓↓↓
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
☞
☞
文章评论