PYTHON 的悖论
OriginalAugust 2004
在最近的一次 演讲 中,我说了一些让很多人不高兴的话:你可以找到比 Java 项目更聪明的程序员来做 Python 项目。
我并不是说 Java 程序员很笨。我的意思是 Python 程序员很聪明。学习一门新的编程语言需要付出很多努力。人们学习 Python 不是因为这会让他们找到工作;他们学习 Python 是因为他们真心喜欢编程,并且对他们已经知道的语言不满意。
这使得他们正是公司应该聘用的程序员。因此,我将这种现象称为“Python 悖论”:如果一家公司选择用一种相对深奥的语言编写软件,他们将能够聘用更好的程序员,因为他们只会吸引那些足够关心学习这种语言的人。对于程序员来说,这种悖论甚至更加明显:如果你想找到一份好工作,要学习的语言是一种人们不会仅仅为了找工作而学习的语言。
到目前为止,只有少数公司足够聪明地意识到这一点。但这里也存在一种选择:它们正是程序员最想为之工作的公司。例如,谷歌。当他们发布 Java 编程职位时,他们也希望有 Python 经验。
我的一位朋友精通几乎所有常用的语言,他用 Python 完成了他大部分的项目。他说主要原因是他喜欢源代码的外观。这似乎是一个选择一种语言而不是另一种语言的轻率理由。但这并不像听起来那样轻率:当你编程时,你花在阅读代码上的时间比编写代码的时间更多。你像雕塑家处理粘土一样处理源代码块。因此,对于一个严谨的程序员来说,一种使源代码难看的语言是令人抓狂的,就像一块满是疙瘩的粘土对于一个雕塑家来说一样。
说到难看的源代码,人们当然会想到 Perl。但 Perl 的表面上的丑陋并不是我指的那种。真正的丑陋不是难看的语法,而是不得不从错误的概念中构建程序。Perl 看起来可能像一个卡通人物在咒骂,但有一些 情况 它在概念上超越了 Python。
至少到目前为止是这样。当然,这两种语言都在 发展。但它们与 Ruby(以及 Icon、Joy、J、Lisp、Smalltalk)一样,都是由真正关心编程的人创建和使用的。而这些人往往是那些做得很好的人。