文/Paulgraham , 译/藏精阁
最近(2004年)一次演讲中,我提出一个让大伙不爽的观点:“Python程序员比Java程序员更聪明”。
我不是说Java程序员笨,我是说Python程序员更机敏。学习一门新语言要下很多功夫。不学Python的人,因担心承担额外工作;主动学习的人,喜欢编程本身,且不满于已知语言。
而这,正是公司想要的程序员。一时想不到更好的名字,就叫它Python悖论好了:如果一家公司选用隐晦的语言工作,反而能招到更好的程序员,因为它恰好能吸引那些足够上进的家伙。对程序员来说,这个悖论更显著:学一门编程语言的动机只是为了找工作。
只有少数几家公司足够精明,意识到了这个问题。它们成为了程序员最中意的公司。比如,谷歌。即便招收Java程序员,也希望有Python经验。
我一个朋友,几乎通晓所有编程语言,他用Python做大多数项目。主要原因是,他就喜欢Python源代码看起来的那个样子。为此选择一门语言,乍听有点无聊。其实不然,编程时,盯代码比写代码费时更长。程序员就像雕塑家,一行一行添代码。所以一门让源代码变难看的语言,对程序员来讲简直难以忍受。如同雕塑家面对一坨烂泥。
说到难看的代码,人们自然会想到Perl。但Perl的浅陋不是我说的那种难看。真正的难看不必从语法上评判,而是你得基于错误的概念构建程序。Perl也许像卡通角色的脏话,但在某些地方,它的概念甚至优于Python。
我还是就此打住。这两种语言都在变化。不过它们同Ruby(还有Icon,Joy,J,Lisp,以及Smalltalk)共享一个事实,创造、使用它们的人真的醉心编程。这些人善于把事做好。