PG Paul Graham 文集
100%
Part 5 · 早期文章 Early Essays

Python悖论

2004年8月

在最近的一次演讲中,我说了一些让很多人不满的话:相较于Java项目,你更有可能吸引到更聪明的程序员来参与Python项目。

我并非意指Java程序员愚钝,而是想说Python程序员聪慧。学习一门新编程语言需要付出大量努力。人们学习Python并非为了谋得职位;他们学习它,是因为真正热爱编程,且对已掌握的语言感到不满足。

这恰恰使他们成为公司应当渴求招募的那类程序员。因此,姑且称之为“Python悖论”:如果一家公司选择用一种相对冷门的语言编写软件,他们将能够聘用到更优秀的程序员,因为这样只会吸引那些出于热爱而学习该语言的人。而对于程序员而言,这一悖论更为显著:若想获得一份好工作,应学习的语言,恰恰是那些人们并非仅为求职而学习的语言。

迄今为止,只有少数公司明智地意识到了这一点。但这里也存在着一种筛选:他们恰恰是程序员最渴望为之效力的公司。例如,谷歌在招聘Java编程职位时,也要求应聘者具备Python经验。

我的一位朋友精通几乎所有广泛使用的语言,而他在大部分项目中都使用Python。他说主要原因是喜欢源代码的外观。这或许看似是以肤浅的理由来选择一种语言而非另一种。但这并不像听上去那么轻率:编程时,你花在阅读代码上的时间远多于编写。你移动源代码块,正如雕塑家摆弄黏土块。因此,一种使源码丑陋不堪的语言,对于精益求精的程序员来说,简直是折磨,就像满是疙瘩的黏土对于雕塑家一样。

提及丑陋的源代码,人们自然会想到Perl。但Perl表面的丑陋并非我所指的那种。真正的丑陋并非语法刺眼,而是不得不以错误的概念来构建程序。Perl或许看起来像卡通人物在咒骂,但在某些方面,它在概念上超越了Python。

至少目前如此。当然,这两种语言都在不断演变。但它们与Ruby(以及Icon、Joy、J、Lisp、Smalltalk)共享一个事实:它们由真正关心编程的人创造,并被这些人所使用。而这些往往就是那些把编程做得好的人。