2004 年 8 月
在最近的一次演讲中,我说了一些让很多人感到不悦的话:你可以请更聪明的程序员来参与 Python 项目,而不是 Java 项目。
我并不是说 Java 程序员笨。我是说 Python 程序员聪明。学习一门新的编程语言是一项艰巨的工作。人们学习 Python 不是为了找工作,而是因为他们真的喜欢编程,对自己已经掌握的语言感到不满。
这使得他们成为公司应该愿意雇佣的程序员类型。因此,缺乏更好名称,我称之为 Python 悖论:如果一家公司选择用一种相对晦涩的语言来编写软件,他们将能够雇佣更优秀的程序员,因为他们只会吸引那些足够关心学习它的人。对于程序员来说,这种悖论更加明显:如果你想找到一份好工作,你应该学习那些人们不仅仅为了找工作而学习的语言。
迄今为止,只有少数几家公司意识到了这一点。但这里也存在一种选择:他们正是程序员最希望为之工作的公司。例如,Google。当他们招聘 Java 编程工作时,也需要 Python 经验。
我有一个朋友,他几乎掌握所有常用的编程语言,但大部分项目都使用 Python。他说主要原因是他喜欢源代码的外观。这可能看起来是一个轻率选择一种语言而不选择另一种的原因。但实际上并不像听起来那么轻率:在编程时,你花费的时间更多是在阅读代码而不是编写代码。你像雕塑家捏泥巴一样移动源代码的块。因此,一种使源代码看起来丑陋的语言对于一个苛刻的程序员来说是令人发狂的,就像一个充满坑洼的泥巴对于一个雕塑家来说一样。
提到丑陋的源代码,人们当然会想到 Perl。但 Perl 的表面丑陋并不是我所指的那种。真正的丑陋不是语法看起来粗糙,而是必须用错误的概念构建程序。Perl 可能看起来像一个说脏话的卡通人物,但在概念上有时超越了 Python。
到目前为止,两种语言当然都是不断发展的目标。但它们与 Ruby(以及 Icon、Joy、J、Lisp、Smalltalk)一样,共同之处在于它们是由真正关心编程的人创建和使用的。而那些往往是做得最好的人。
如果你喜欢这篇文章,你可能也会喜欢黑客与画家。