(本文转自阮一峰的日志)

\"Alt

JAMIE ZAWINSKI

他是一个非常传奇的人,高中都没有毕业,却是世界上最好的程序员之一,Netscape公司的主力程序员,划时代产品”网景浏览器”的主要开发者。

他在公司里就是一身摇滚明星的打扮,留长发、穿皮夹克、戴金属饰品,非常有个性。当微软公司不正当竞争,将IE与Windows捆绑在一起,击败Netscape的时候,他就公开发誓,终身不使用微软公司的任何产品,也不授权任何人将他的代码用于Windows平台。他是Mozilla这个名字的创造者,也是第一个提议将”网景浏览器”开源的人。当同事们决定彻底放弃以前的代码,重头编写一个全新的浏览器,他心灰意冷,辞职离开,在旧金山买下一家酒吧,不再编程,改当一个小店主,从此退出江湖。

我知道他的故事,是因为纪录片《Code Rush》。我强烈推荐这部作品,那是1998年一个摄制组在Netscape公司整整跟拍一年的结果。你不仅可以从中了解”网景浏览器”衰落的那一段历史,还可以看到硅谷程序员的日常生活。

我最大的收获是得知Jamie Zawinski还写过日记。

我把他的这份日记读了一遍,感触非常多。日记的名称叫做”the netscape dorm.”,直译过来就是《睡在Netscape的日子》,记录了1994年Netscape刚成立时的情景:小公司,没有产品,急需证明自己,必须赶在资金用完之前写出代码。那些日记是创业公司的真实写照,以及一个非常孤独、拼命工作的程序员的内心独白。

编程是一种非常单调枯燥的工作,长时间、全身心、独自一人地与机器打交道,人际交往和日常生活难免会受到影响。这份日记告诉我们,一个优秀程序员怎么看待这些事情:为什么要这么做?值得吗?乐趣在哪里呢?…… 日记的开头,有这样一段话,一下子就打动我了。

“Time always softens the pain and makes things look like more fun than they really were. 时间总是淡化痛苦,让一切变得比实际情况更轻松。

But who said everything has to be fun? 但是谁说生活一定是轻松的?

Pain builds character. (Sometimes it builds products, too.) 痛苦造就性格。(也许还造就产品。)”

我反复看着这段话,心里只有一个愿望。如果经受的这些痛苦无法避免,那么我希望它们是值得的,最终带来想要的结果,一切皆有所偿。

下面是我翻译的他的部分日记。

JAMIE ZAWINSKI日记(节选)

Alt text

1994年6月26日,星期二,凌晨四点

我已经在Mosaic工作一个半月了。睡眠很少,不常回家。 今天一整天,Lou和Rob都在玩遥控汽车。这真让人恼火,因为其他所有人都忙得不可开交,他们却在那里玩耍。我走到Chouck旁边,问他”你生气吗?”他张开双臂,板着脸,说”我的火气有这么大”。我点点头,走回自己的办公桌。 十分钟后,他走过来问:”你是因为自己也生气,还是因为你想看看,我是否容易被激怒?”我说我也生气,但是可能程度比他稍稍轻一点。

大约凌晨四点,Lou收拾东西,准备离开办公室了。他跟我说,Marc把他叫进办公室,问他是不是无事可干。我心里也是这么想的,就说”是这样吗?”他说,这些天来彻底筋疲力尽,真的需要放松。我完全理解他的感受,但是我说最好在办公室以外的地方放松,而不是工作时当着其他人的面这样做。

Marc要我去写Unix客户端,配合SGI公司与Irix 5.3一起发布。这意味着巨大的工作量,时间却不到两个月。我还一点代码都没写,甚至没有把握,这个产品是否可行,任务就已经来到了我的面前。所有部件散落一地,我脑海中却还没有整体的概念。Marc可以很轻易地把这个任务强加给我,但是我不愿意冒失败的风险。这个项目的影响太大了,太多的人在等着我们出丑……

1994年6月28日,星期四,晚上十一点

昨天,我又在干活的时候睡着了。缩在办公桌底下,盖着毯子,从中午11点睡到下午1点半,2个半小时。然后突然惊醒,想起来开会要迟到了。我们在会上要讨论如何在可怕的8位空间的条件下,生成彩色图案。不过,迟到就迟到了,可以找别的时间讨论。如果你因为长时间工作、极度疲劳而迟到,大概不会有人因此指责你。

1994年8月5日,星期天,凌晨5点

我回家了。距离上一次入睡,已经39个小时了。我现在还不觉得累,正处在第二次或者第三次也许第十八次回光返照。我回家只是因为担心,如果再待在办公室,可能又要在那里睡了。我不想连续在那里熬夜,因为现在真的必须洗个澡。昨天太热了,我和Lou玩air hockey太投入,汗流浃背。

哦,我一定是累了。打开电视机,觉得MTV画面动得太快了,完全无法理解。

过去一个星期,我一直喉咙痛和咳嗽。但是,我没有采取任何措施,因为没时间。我觉得,自己纯粹靠意志力,在抵御感冒的进攻。

我上一次起床还是在星期五,大概下午三点到了公司,已经有一吨的电子邮件等着我,全部与工作有关。下午四点还有全体大会,开会前每个人都在找我。我感到自己真的被击溃压倒了。我的意思是,其实我只离开了办公室7个小时!不过,会议很振奋人心,一份OEM合同已经达成(我忘了与哪家公司),可以安装60万个客户端。不错啊,我真觉得市场部的那些人有两下子!以前我从没有这种感觉,太疯狂了。

60万个用户!我写过的所有软件的用户数字,从来没有到达过这个级别。真是骇人啊! 我的手最近伤了。我希望,不断的打字不会废掉我的手腕。如果我不能打字,我的人生就完了。我的右手一直在抖,中间两根手指的最后一个关节在疼,好像淤青得很厉害。我猜想是时候了,该去问问公司提供的医疗保险怎么用。如果医生不说”停止大量打字”,我就该笑死了。

1994年8月11日,星期四,凌晨二点

几个月来第一次,我见到了Ian。他的第一句话就是,”哇,你看上去一团糟。” 他说我有点神情恍惚、浑身痉挛。可是,我自我感觉还不错啊!昨晚,睡了一个完整的觉,其他的事情也都正常。我只是没有正常的生活,看不到任何一个与工作无关的朋友,我正在浪费自己只有一次的青春。我应该离开办公室,去做一些更好玩更积极的事情。等我的精神和肉体都衰老的时候,就做不动这些事情了。但是,现实是我守在荧光灯下,往计算机里输入一个个比特位,只有其他与我一样的怪人才会对这种事情感兴趣。我看着一张最新的电影排片表,发现一部也没有听说过。怎么会这样?我真是吓坏了。

我在药店里买了一些腕部护套,这几天都戴着它们打字。我觉得没什么用,我的中指疼得不算严重,但食指的情况很差。这份工作摧垮了我的身体,这是不值得的。

1994年8月26日,星期五,凌晨一点

我重读了过去几个月的日记,很多部分根本连不起来!完全是只言片语,一个个不连贯的词,各种随机的超现实意向,我自己也理解不了,只记得打字时的情景。这是不是我在梦里写下的?我希望,人际交往之中,我留给别人的不是这种印象。我很想知道,我的代码看上去什么样!不过还好,它们至少还能运行。

晚上9:30,我离开办公室,因为Eric和Susan打电话约我一起看电影。我已经工作了31个小时,其中零零星星合计睡了4个小时。我还在等编译结果出来,但是他们已经替我买了10点半的电影票,我还怎么拒绝呢?我说:”我太累了,但是你们是对的,我需要看场电影。”

1994年8月28日,星期天

Mozilla已经有点像一个产品了,也许我们最终可以活下来。今天我到办公室的时候,大家都坐着看影碟Repo Man。我完全认同他们,花掉几个小时看电影,我没有产生任何负罪感。

1994年10月12日,星期三,上午十一点

今天,我们将发布Mozilla 0.9。我刚刚结束在6种不同的Unix平台上的编译。上午9点,我们发现了一些灾难性的bug,然后立刻修正。现在我正在重新编译所有的二进制文件。它们应该在一个半小时后完成,然后再过不到一个小时,出现在我们的FTP上。 毫无疑问,这太疯狂了。

下午六点,所有人都有一种缓期执行的感觉,因为发布时间推迟到了今天午夜。大家开始测试我在下午1:50分新编译出来的文件。这时我开始去睡觉。

午夜,我们终于把这该死的程序放上了FTP,200万人立刻尝试下载,这时我们甚至还没发布软件上线的消息。我们终于完成了,我想从此所有人都可以幸福生活了。

我们坐在会议室里,将显示器与一台大电视机连在一起。在黑暗里,我们看着FTP的下载日志快速向下滚动。jg即兴写了一个脚本,每当一次下载成功,电脑就发出一声加农炮的声音。我们听着这声音,坐在黑暗里庆祝。 接着,我就回家了。我想如果现在就走,应该不至于在路上因过度疲劳而发生车祸,否则今晚我又只能蜷缩在办公桌下睡觉了。 (完)