PYTHON悖论
Original2004年8月
在最近的一次演讲中,我说了一些让很多人不高兴的话:在一个Python项目上,你可以找到比在一个Java项目上更聪明的程序员。
我并不是说Java程序员很笨。我的意思是Python程序员很聪明。学习一种新的编程语言需要大量的工作。而人们学习Python不是为了找工作,而是因为他们真的喜欢编程,对他们已经掌握的语言不满足。
这正是公司应该想要雇佣的程序员类型。因此,我称之为Python悖论:如果一家公司选择使用一种相对晦涩的语言编写软件,他们就能够雇佣到更优秀的程序员,因为他们只会吸引那些真正热爱学习这种语言的人。对于程序员来说,这种悖论更加明显:如果你想找到一份好工作,你应该学习一种人们不仅仅为了找工作而学习的语言。
到目前为止,只有少数公司足够聪明地意识到了这一点。但这里也存在一种选择:这些公司正是程序员最想为之工作的公司。比如谷歌。当他们发布Java编程工作时,他们也希望有Python经验。
我的一个朋友精通几乎所有广泛使用的语言,但他大部分项目都使用Python。他说主要原因是他喜欢Python代码的样子。这可能看起来是一个很肤浅的理由来选择一种语言。但这并不像听起来那么肤浅:当你编程时,你花更多时间阅读代码而不是编写代码。你像雕塑家一样推动源代码块,所以一种使源代码看起来很丑陋的语言会让一个挑剔的程序员感到沮丧,就像一块充满瑕疵的粘土会让雕塑家感到沮丧一样。
提到丑陋的源代码,人们当然会想到Perl。但Perl的表面上的丑陋并不是我所指的那种丑陋。真正的丑陋不是语法看起来很刺眼,而是不得不用错误的概念来构建程序。Perl可能看起来像一个咒骂的卡通人物,但在某些情况下它在概念上超越了Python。
不过,这种情况可能会改变。这两种语言当然都在不断发展。但它们与Ruby(以及Icon、Joy、J、Lisp和Smalltalk)共享一个事实,那就是它们是由真正热爱编程的人创造和使用的。而这些人往往也是做得最好的人。