Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Python 悖论

原文:The Python Paradox
作者:Paul Graham 发表:2004-08
译者:Claude(baoyu-translate)

2004 年 8 月

最近一次演讲里,我说了一句惹恼很多人的话:你为一个 Python 项目能招到的程序员,会比 Java 项目能招到的更聪明。

我不是说 Java 程序员蠢,我是说 Python 程序员聪明。学一门新编程语言要花不少功夫。而人们学 Python 不是因为它能让他们找到工作——他们学 Python,是因为他们真心喜欢编程,对自己已经会的语言不满足。

正是这种程序员,才是公司应该想招的那一种。于是有了我姑且称之为“Python 悖论“的现象:如果一家公司选择用一门相对小众的语言来写自己的软件,它就能招到更好的程序员——因为它只会吸引那些足够在乎、愿意去学这门语言的人。对程序员来说,这个悖论甚至更明显:如果你想找到一份好工作,要学的,恰恰是那种不是为了找工作才去学的语言。

到目前为止,只有少数公司聪明到看出了这一点。但这里也存在一种筛选:那些公司,恰恰也是程序员最想去的公司。比如 Google。他们招 Java 程序员的时候,也会要求有 Python 经验。

我有一个朋友,几乎所有常用语言他都会,但他绝大多数项目用 Python。他说主要原因是他喜欢源代码看起来的样子。在两门语言之间这样选,听上去理由轻浮。但其实没那么轻浮:编程时,你花在读代码上的时间比写代码多。你像雕塑家摆弄一团团黏土那样摆弄一块块源代码。所以一门让源代码看起来丑的语言,对一个挑剔的程序员来说,是抓狂级的——就像满是硬块的黏土对雕塑家一样。

提到丑陋的源代码,人们当然会想到 Perl。但 Perl 那种表面上的丑,不是我说的那种丑。真正的丑不是看起来扎眼的语法,而是被迫用错误的概念来搭程序。Perl 也许看上去像卡通人物在骂街(漫画里把脏话画成 @#$%& 一类符号),但有些场合下,它在概念上比 Python 更高一筹。

至少目前是这样。两门语言当然都是移动靶子。但它们和 Ruby(以及 Icon、Joy、J、Lisp、Smalltalk)一样,有一个共同点:它们由真正在乎编程的人创造出来,也由这些人在用。而这些人,往往就是把编程做得最好的那批人。