Python悖论
2004年8月
在最近的一次演讲中,我说了一些让很多人感到不安的话:你可以找到比Java项目更聪明的程序员来参与Python项目。
我并不是说Java程序员很笨。我的意思是Python程序员很聪明。学习一门新的编程语言需要付出很多努力。人们学习Python并不是因为它能帮他们找到工作;他们学习它是因为他们真正热爱编程,并且对他们已经掌握的语言感到不满足。
这使他们成为公司应该想要雇佣的那种程序员。因此,我称之为Python悖论:如果一家公司选择用一种相对小众的语言编写软件,他们就能雇佣到更好的程序员,因为他们只会吸引那些真正关心并愿意学习它的人。对程序员来说,这个悖论更加明显:如果你想找到一份好工作,应该学习的语言是那些人们不会仅仅为了找工作而学习的语言。
到目前为止,只有少数公司足够聪明地意识到了这一点。但这里也有一种选择:它们正是程序员最想为之工作的公司。比如谷歌。当他们在招聘Java程序员时,他们也要求有Python经验。
我有一个朋友,他几乎了解所有广泛使用的编程语言,但他大部分项目都使用Python。他说主要原因是喜欢源代码的外观。这看起来可能是一个轻浮的理由来选择一门语言而不是另一门。但这并不像听起来那么轻浮:当你编程时,你花在阅读代码上的时间比写代码的时间还多。你像雕塑家处理粘土块一样处理源代码块。所以,一门让源代码看起来丑陋的语言会让一个严谨的程序员感到恼火,就像满是结块的粘土会让雕塑家感到恼火一样。
提到丑陋的源代码,人们自然会想到Perl。但Perl表面的丑陋并不是我所说的那种。真正的丑陋不是看起来刺眼的语法,而是不得不用错误的概念来构建程序。Perl可能看起来像一个卡通角色在说脏话,但在某些情况下,它在概念上超越了Python。
到目前为止是这样。当然,这两种语言都是不断变化的目标。但它们与Ruby(以及Icon、Joy、J、Lisp和Smalltalk)有一个共同点:它们都是由真正关心编程的人创建和使用的。而这些人往往是那些做得很好的人。
英文版:paulgraham.com/pypar.html|中文版:HiJiangChuan.com/paulgraham/031-the-python-paradox
更新记录:
- 2024-12-06 HiJiangChuan 初稿翻译,术语待验证;