档案库 · 产品创意 · 产品决策 · 1989–2019
Python:吉多·范罗苏姆的副业项目语言,以可读性为核心,征服世界
一个程序员,三个月:范罗苏姆的可读脚本语言击败Perl、C和shell,成为全球增长最快的语言。
Python
当时的题目
In late 1989 Guido van Rossum was building the Amoeba distributed system at CWI in the Netherlands. His tools were C (manual memory management, no reusable standard library) and the Unix shell (too slow for complex logic); Perl, the era's scripting leader, would not port to Amoeba. After three years on CWI's ABC language team he knew exactly how interpreters and syntax design worked.
它是怎么成立的
1989年底,三十多岁的吉多·范罗苏姆在荷兰国家数学与计算机科学中心CWI构建Amoeba分布式系统。每个可用工具都让他沮丧:C迫使开发者手动管理内存,并为每个项目重新发明基本库,而Unix shell运行太慢,无法处理复杂逻辑。Perl,明显的更高级替代品,却无法移植到Amoeba——范罗苏姆后来称这一缺口对Python来说是幸运的,因为如果Perl可移植,'我就从没想过自己创造一门语言。'
他有一个不寻常的先发优势:在CWI创造ABC(一种解释型语言)的团队中工作了三年,教会了他解释器和语法设计的工作方式。因此,他没有等待更好的工具,而是决定自己构建——'从ABC中窃取我的想法,但将项目规模从需要三年完成缩到我能单独完成的东西,作为一个个人秘密项目,在三个月内完成。'Python在1989年末正式开始,以Monty Python命名,利用业余时间编写,而不是看电视。
他的设计核心是可读性。缩进将代码分组为块,自动强制执行清晰的格式;类、异常处理、lambda/map/filter和一个深度的内置库从一开始就存在。范罗苏姆说过,编程语言不仅是告诉计算机做什么,更是开发者之间思想的交流。他于1991年在alt.sources新闻组上以开源许可证发布了这门语言,并通过定期发布和新兴的邮件列表社区(2001年成为Python软件基金会)来壮大它。
在1990年代,Python一直处于劣势——Perl第一,Tcl第二,Python是温和的第三——最终通过随着代码库的增长保持可维护性而获胜:一个500行的项目可以在Python中保持可读,而Perl则需要极高的自律。到2019年,根据Stack Overflow的调查,按活跃开发者数量计算,它是增长最快的语言,被Netflix、Instagram和NASA使用,也是拼接第一张黑洞图像的工具。Perl则萎缩到从同一调查中消失的程度。
妙在哪
- 将项目范围缩小到一个人和三个月,使得构建能够可发布,而三年团队的语音不可能——一个独立项目可以立即开始。
- 将可读性作为核心约束,使采纳具有自我强化效应:可理解的代码就是可维护的代码,这正是它能在更大项目中战胜Perl的原因。
- 强制干净的语法和低学习曲线降低了非专家的门槛——美国国家标准局的科学家成为早期用户。
- 开源许可证和1991年的Usenet发布让分发依赖于日益增长的互联网,而不是手提磁带,这是范罗苏姆从ABC中学到的分发教训。
- 持续的单所有者管理('仁慈的终身独裁者')在社区治理接管之前维持了数十年的连贯设计愿景。
做出来什么
Python was a modest third behind Perl and Tcl through the 1990s; by 2019 the article reports it was adding new users faster than any other language while Perl vanished from Stack Overflow's survey. It helped stitch the first black-hole image and runs Netflix streaming, Instagram and NASA work; the feature drew 879 points and 957 comments on Hacker News.
可以借走的
选择一个困难的设计价值观,将构建缩小到一个人能发布的范围,并让开放分发和一个小型社区来承载它——一件大事可以从一个人的副业项目开始。
后来
范罗苏姆作为BDFL管理Python二十年,于2018年因在PEP 572的赋值表达式争论中遭受人身攻击而卸任。2019年,核心开发者选举了一个五人指导委员会——范罗苏姆、Warsaw、Cannon、Willing和Coghlan——来分担职责。文章以开放挑战结尾:BeeWare的Russell Keith-Magee警告说,除非移动和Web支持得到改善,否则Python面临'生存风险',而开发者们则讨论了修剪标准库、用于多核的子解释器,以及更公平地代表Python全球用户群的问题。
资料来源
- Python is eating the world: How one developer's side project became the hottest programming language on the planet
- Python Is Eating the World (Hacker News discussion)
发现哪里写错了?告诉我们。
轮到你了
你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。
免费账号 · 3 次免费提问 · 不用绑卡