PYTHON 悖论
Original2004 年 8 月
在最近的一次演讲中,我说了一些让很多人不高兴的话:你可以让更聪明的程序员来从事 Python 项目,而不是 Java 项目。
我这样说并不是说 Java 程序员很笨。我的意思是 Python 程序员很聪明。学习一门新的编程语言需要付出很多努力。人们学习 Python 并不是因为它能给他们一份工作;他们学习它是因为他们真的喜欢编程,并且不满足于他们已经掌握的语言。
这使得他们成为公司想要聘用的程序员。因此,由于没有更好的名字,我将其称为 Python 悖论:如果一家公司选择使用一种相对深奥的语言编写软件,他们将能够聘请更好的程序员,因为他们只会吸引那些足够用心学习它的人。对于程序员来说,这个悖论更加明显:如果你想找到一份好工作,那么要学习的语言是人们不会仅仅为了找工作而学习的语言。
到目前为止,只有少数公司足够聪明,意识到了这一点。但这里也存在着一种选择:它们正是程序员最想为之工作的公司。例如谷歌。当他们发布 Java 编程职位时,他们也希望应聘者有 Python 经验。
我的一个朋友几乎了解所有广泛使用的语言,他的大部分项目都使用 Python。他说主要原因是他喜欢源代码的外观。这似乎是选择一种语言而不选择另一种语言的无聊理由。但它并不像听起来那么无聊:当你编程时,你花在阅读代码上的时间比写代码的时间多。你把一团团的源代码推来推去,就像雕塑家把一团团的粘土推来推去一样。因此,一种使源代码变得丑陋的语言会让一个严谨的程序员抓狂,就像一个满是块状的粘土会让雕塑家抓狂一样。
提到丑陋的源代码,人们当然会想到 Perl。但 Perl 表面上的丑陋并不是我所说的那种。真正的丑陋不是看起来粗糙的语法,而是必须用错误的概念来构建程序。Perl 可能看起来像一个卡通人物在骂脏话,但在某些情况下,它在概念上超越了 Python。
到目前为止,这两种语言都是不断变化的。但它们与 Ruby(以及 Icon、Joy、J、Lisp 和 Smalltalk)一样,都是由真正关心编程的人创建和使用的。这些人往往是编程高手。