Python 是给法定成年人使用的语言。
——Alan Runyan
Plone 的联合创始人
Alan 的精辟定义道出了 Python 最好的特质之一:它不妨碍你,让你做你该做的事。这也意味着,它不会给你提供工具,让你限制其他人能对你的代码和代码所构建的对象做什么。
当然,Python 不完美。对我来说,最没法接受的是,Python 在标准库中混用驼峰式和蛇底式,或者直接把单词连在一起。但是,语言的定义和标准库只是生态系统的一部分。用户和贡献者组成的社区才是 Python 生态系统最重要的部分。
有一个例子可以说明社区的好处。一天早上,我在撰写 asyncio 包相关的内容时,感到很沮丧,因为那个包的 API 有很多函数,其中有些是协程,可是协程必须使用 yield from 调用,而常规的函数不能这么做。这在 asyncio 包的文档中有说明,可是有时阅读几段文字之后才能确定某个函数是不是协程。因此,我给 python-tulip 邮件列表发了一个消息,题为“Proposal: make coroutines stand out in the asyncio docs”(https://groups.google.com/forum/#!topic/python-tulip/Y4bhLNbKs74)。asyncio 包的核心开发者 Victor Stinner、aiohttp 包的主要作者 Andrew Svetlov、Tornado 的首席开发者 Ben Darnell,以及 Twisted 的发明者 Glyph Lefkowitz 加入了讨论。Darnell 提出了一个方案,Alexander Shorin 解说如何在 Sphinx 中实现,Stinner 添加了所需的配置和标记。我提出这个问题不到 12 小时,asyncio 包的整个线上文档都更新了,添加了今天你所看到的“coroutine”标签(https://docs.python.org/3/library/asyncio-eventloop.html#executor)。
在排外的社区中绝不会有这种事。任何人都能加入 python-tulip 邮件列表,我编写那个提议之前只发布过几次消息而已。这个故事表明,Python 社区特别开放,广纳新想法和新成员。Guido van Rossum 也在 python-tulip 邮件列表中,即使是简单的问题也经常回答。
还有一个例子能说明 Python 的开放:Python 软件基金会(Python Software Foundation,PSF)一直在努力提升 Python 社区的多样性,而且已经达成一些令人欣喜的成果。2013— 2014 年,PSF 董事会首次选出了女性董事——Jessica McKellar 和 Lynn Root。2015 年在蒙特利尔举办的 PyCon North America 大会(Diana Clarke 主持),约 1/3 的演讲者是女性。我还没见过其他 IT 大会如此追求性别平等。
如果你是 Python 程序员,但尚未加入社区,我建议你快点加入。寻找你所在地区的 Python 用户组(Python Users Group,PUG)。如果没有,那就创建一个。任何地方都有人使用 Python,你并不孤独。如果可能的话,参加别处举办的会议。来参加 PythonBrasil 大会吧,多年以来这个大会都有来自世界各地的演讲者。与其他 Python 程序员见面比任何线上互动都好,除了可以获得别人分享的知识外,还有很多好处,例如工作机会和真正的友谊。
我知道,如果没有多年来我在 Python 社区中结交的朋友的帮助,我不可能写出这本书。
我的父亲说过,“Só erra quem trabalha”,这是葡萄牙语,意思是“只有真正做事的人才会犯错”。这个建议很棒,能让你不再害怕失败,迈步向前。撰写这本书的过程中,我肯定犯了错误。审校、编辑和预先发布版的读者帮我找出了很多错误。早期发布版刚发布几小时,就有一个读者在本书的勘误页面(http://www.oreilly.com/catalog/errata.csp?isbn=0636920032519)报告拼写错误。其他读者报告了更多错误,我的朋友还直接联系我,提供建议和更正。我写完本书后,O'Reilly 的文字编辑会在出版过程中找出其他错误。如果还有任何错误和词不达意的表述,责任都在我,在此向各位读者致歉。
终于写完这本书了,我特别高兴,无论有没有错误,我都十分感激一路上给我帮助的每个人。
希望很快就能在会议上见到你。如果见到我,请过来打声招呼。