GuidoVanRossum - huangyuefeng/study GitHub Wiki

Guido van Rossum,三十来年Python路,君王退位为哪般?

src_url

Guido van Rossum这样一个荷兰名字,相信大家并不是很熟悉,但是,他有另一个全球享誉的桂冠:Python之父。

因为Python的图标是蟒蛇,所以国内圈子又称呼他为蟒爹。

Guido

至于Python这样的人工智能第一语言,就不过多介绍了。

Guido青年成名,27岁就已经发明了Python,之后一直推广和开发Python三十多年,现年62岁。

就在昨天(180713),蟒爹一份公开邮件让Python圈炸开锅了。

Guido君王退位邮件

因为他宣布退出Python决策层PEP(Python提升提案),并宣布卸任BDFL(Python之王)。

究其原因,居然是因为一行代码。下面,我们代码说话。

  • 代码说话

这段代码被叫做PEP-572,是Chris Angelico和Tim Peters提出的提案,旨在用更简练的语言表达同样的逻辑。

PEP-572连接

说白了,就是语法糖,给用Python的人,发个语法上的糖果。把下面老的写法,升级成新的写法。

# without PEP-572
while True:
    command = input("> ");
    if command == "quit":
        break
    print("You entered:", command)

# with PEP-572
while (command := input("> ")) != "quit": #注意,这就是那行代码,罪魁祸首啊
    print("You entered:", command)

笔者非常喜欢这种新写法,NAME := expr,用上之后,代码简练不少。 上面的两段代码,第一段可以在Python2和3都能运行,就是不断读标准输入stdin, 如果是quit(),退出,否则就回声echo下。

第二段代码是一样的业务含义,是不是简洁了不少? 有读者会说,在C语言里,把:=替换成=,照样能跑, NO NO NO,我们现在说的是Python,这样做只会得到一个语法错误。

现在问题来了,社区里有不同的声音,说这种语法糖让Python语义是越来越复杂了。

反对者声音

但是,Guido使用BDFL的权力,通过了PEP-572。这么细节的事情,这使得,很多人开始鄙视Guido的决定。

这里正好解释下BDFL是什么,

根据 Wikipedia 的引用,这个说法来自于 Benevolent dictator for life 这篇采访文章,文章里 GVR 提到,社区对 Python 的热情与自己对 Python 的控制相冲突,社区与自己存在着相互约束。并亲口说:只要社区承认我是Python 的 BDFL,我就对任何更改提案拥有有效的否决权。

BDFL是Benevolent Dictator For Life,直译为:仁慈的独裁者。

该童鞋百科

  • 事件本质

Python本来是Guido个人的作品,因为开源运动,成为了集体作品,但是,身为BDFL,Guido在三十多年了,独挑重担。

现在Python已近而立之年,老爷子62岁了,也该退了。

Python送走了BDFL,应该从帝制变成元老院制,预计会减慢开发速度,但是python已经成熟了,不会有大问题的。

  • 蝴蝶效应

Guido的推特是gvanrossum,有个叫JBD的迷妹上去说了句,Your work will be remembered forever.

蟒爹回了一句,I'm not dead yet!

牛人,想做什么就做什么。一般人呢,能做什么就做什么.

哈哈,蟒爹毫无疑问,是前一种人.

大家还是不要去骚扰蟒爹的清净啦。