天天看点

《程序员的呐喊》一一1.3 作者手记:名词王国里的执行

本节书摘来自异步社区出版社《程序员的呐喊》一书中的第1章,第1.3节,作者:【美】steve yegge ,更多章节内容可以访问云栖社区“异步社区”公众号查看。

程序员的呐喊

这是我第一篇比较出名的牢骚,所以印象很深。2005年年中的时候,我离开亚马逊加入google,顺便把一些内部分享的旧文章转到了公共博客上。12月的时候,这些文章通过reddit和hacker news的推荐慢慢获得了一些关注——一下子我贴的每篇博客都吸引了几千人的阅读量。

与此同时,当时我在google做一个很讨厌的java项目。这块代码我就是看不对眼。之前做过的几个java项目都还可以忍受,但这个实在是设计过头了。在这里我就不点名了。不过代码真的写得很烂,它本身几乎就是个玩笑。它采用的是那种java界很流行的代码风格,追求组合性(composability)和不可变性(immutability)这两种java都不怎么支持的特性。更糟糕的是,这些还是java 5之前的代码。

我感觉那支团队非常爱自己的工作,因为他们不断地制造这样的代码。等读到我的解析,你就明白怎么回事了。

不管这么说,反正我是受够了,每天晚上都和我朋友托德·斯塔姆夫(todd stumpf)发牢骚,他也在google上班。我一直想寻求某种方法来描绘这些代码,让团队能像我一样看到他们的代码有多糟糕。

终于我想到了一个办法,有一天晚上,我写了一个讽刺性的寓言故事,啰里啰唆地写了很多不写也不妨的解释。发表后一下就炸锅了,所有人都疯了。当时大多数java程序员都极为震惊,好多人被冲昏了头,连生气都顾不上了。其他人则幸灾乐祸地跟着起哄,完全没意识到自己就是下一个。(我在接下来的几年里,几乎把所有语言都涮了一遍。)

反正在我写这篇东西的时候,都已经过去6年了,他们还是没把lambda加进来。我觉得我锲而不舍的奚落多少还是有点用的,他们终于打算在 java 8 里引入lambda了(假设这次不跳票——从历史经验来看并不乐观)。java社区非常害怕这个已经存在于其他语言里好几十年的东西,这是对“未知”事物的恐惧,而这份压力也迫使支持者们迟滞不前。

现在看起来java或许终于要有动词了,和我写这篇东西之间隔了整整7年。