enter image description here

◎ 世界顶尖的程序员是怎么走上编程道路的?

◎ 他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?

◎ 他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?

◎ 他们对培养、发现、选拔、面试优秀的程序员有什么建议?

 放下手头的工作,听听这些软件先驱们的故事和建议,眼界可以更开阔,思路可以更清晰,方向可以更明确,人生可以更精彩。

enter image description here

Jamie Zawinski

  名字的三字母简写与全名同样知名的黑客并不多,Lisp黑客、Netscape早期开发者和夜总会老板Jamie Zawinski,又称jwz,便是其中之一。

  Zawinski十几岁就开始编程,当时受雇于卡内基•梅隆大学(CMU)人工智能实验室,从事Lisp开发。他在大学没待多久就选择了退学,因为他发现自己厌恶大学。随后近十年他一直投身Lisp和人工智能(AI)领域,阴差阳错地浸染于一种日渐式微的黑客亚文化中,而同年龄段的其他程序员则是伴着微型计算机一起成长。

  Zawinski曾在加州大学伯克利分校(UC Berkeley)为Peter Norvig工作过,后者形容他是“自己雇过的最优秀的程序员”。后来Zawinski去了Lisp公司Lucid,最终领导开发了Lucid Emacs。Lucid Emacs后来更名为XEmacs,终成一大Emacs流派,堪称最著名的开源分支之一。

  1994年,Zawinski最终离开了Lucid公司和Lisp领域。随后他加入当时羽翼未丰的初创公司Netscape。他是Netscape浏览器Unix版本及其后Netscape邮件阅读器最初的开发人员之一。

  1998年,作为主要推动者之一,Zawinski与Brendan Eich一道,通过mozilla.org促成了Netscape浏览器的开源。一年后,因对发布遥遥无期备感失望,他退出了该项目,在旧金山买了一家夜总会,这就是他现在运营的DNA Lounge。目前,他正集中精力与加州酒类管制局打官司,力争让这家夜总会成为各年龄层都能进入的现场音乐表演场所。

  在这次访谈中,我们谈到C++为什么令人厌恶,几百万人使用其软件给他带来的快乐,以及新手程序员多动手实践的重要性。


   Brad Fitzpatrick

enter image description here

  Brad Fitzpatrick是所有受访者中最年轻的一位,也是其中唯一一位从未在没有因特网或个人电脑的世界里生活过的。他出生于1980年,很早就开始了自己的程序员生涯,5岁时就在一台自制的Apple II克隆机上学习编程。在十几岁时,正好赶上因特网革命的大潮,他一头扎入其中,在高中时就建立了自己的第一个商业网站,在进入大学前的那个夏天创立了著名社区LiveJournal。

  LiveJournal的日渐流行迫使Fitzpatrick走上了学习构建可伸缩网站的艰难之旅,期间他和他创办的Danga交互技术公司里的程序员们开发了几个开源软件,其中包括memcached、Perlbal和MogileFS,现在被用于很多世界上最繁忙的网站的服务器上。

  Fitzpatrick是个典型的极有才华的世纪之交的Web程序员,他的主要编程语言是Perl和C,需要时也会用Java、C++、Python、JavaScript和C#。他做的所有编程工作基本都与网络相关,比如为网站构建更好的后端基础设施,设计协议和软件来让博客阅读软件获知博客更新,甚至为他的手机编写代码以便在摩托车上就能自动打开车库门。

  我们将谈到他在读著名儿童系列丛书Clifford the Big Red Dog的年龄就开始学习编程,为什么能够很高兴地一边念大学,一边运行LiveJournal,以及他是如何学会不惧怕去阅读他人的代码的。


enter image description here

Douglas Crockford

Douglas Crockford是Yahoo!的资深JavaScript架构师,他在上世纪70年代初求学期间就开始从事程序开发工作了,那时的他主修电视广播专业,但苦于无法进入演播室工作,转而学习了学校开设的Fortran课程。在其职业生涯中,Crockford曾先后供职于Atari、Lucasfilm和Electric Communities,以各种方式联姻计算机与传播媒介,现在他就职于Yahoo!。

  Crockford生来就是一个至纯至简的人。深感于XML的复杂性,他发明了JSON这一广泛用于Ajax应用的数据交换格式。Crockford在最近出版的新书JavaScript: The Good Parts中谈到如果能避免使用某些特性的话,JavaScript实际上是一门相当优雅的语言。在接受采访的时候他强调了以子集方式来管理复杂度的重要性,同时介绍了他所使用的一种代码阅读方法:从清理代码开始。

  在采访之际,Crockford就已经因极力反对将ECMAScript 4(ES4)纳入到ECMAScript(JavaScript)语言标准中而名声大噪,因为ECMAScript 4实在是太复杂了。他倾向于更加简洁的ES3.1提案,最后Crockford与其他ES3.1拥护者大获全胜——ES3.1更名为ES5而ES4则被官方彻底抛弃。

  在本次采访中,Crockford谈到了ES4提案的缺陷,作为团队行为的代码阅读的重要性,以及在现有系统当道的情况下如何推进Web向前发展。


enter image description here

Brendan Eich

Brendan Eich现任Mozilla公司CTO,是JavaScript的发明者,这种脚本语言是现代Web开发中使用最普遍却又最受争议的语言。Mozilla公司是Mozilla基金会的附属公司,专注于火狐浏览器(Firefox)的持续开发。

  Eich拥有坚实的理论基础和较强的工程实践能力,早期在Silicon Graphics和MicroUnity公司从事网络和系统内核开发。离开MicroUnity之后,Eich去了网景(Netscape)。在开发网景浏览器的巨大时间压力下,他创造了JavaScript。

  1998年,Eich和Jamie Zawinsk带头劝说网景公司将浏览器变成开源项目,并最终成立mozilla.org组织,Eich在该组织中担任首席构架师。

  近几年来,Eich既参与确定Mozilla平台发展的大方向,也会深入到底层去开发那个新的JavaScript即时虚拟机TraceMonkey。并且,采访中他还强调正在尝试让Mozilla的项目“引领科学方向”,会吸收更多的具有务实精神的研究机构人员参与到Mozilla当中,让理论研究和行业实践结合得更紧密。

  另外,我们还谈到了JavaScript和Java看起来有几分相似的原因;为什么ECMAScript 4的失败并不会阻碍JavaScript成长为一门真正的语言;以及JavaScript对类似于静态代码分析方法多样化的需求。


enter image description here

Joshua Bloch

Joshua Bloch现任Google公司首席Java架构师。之前他在Sun公司工作,曾获杰出工程师称号,领导并实现了Java 2中的Java Collection Framework,还参与了Java 5发行版中几项语言附加特性的设计。Bloch在哥伦比亚大学获得学士学位,在卡内基梅隆大学获得博士学位。读博期间他参与设计了Camelot分布式交易处理系统,这个系统后来演变为Transarc公司的产品Encina,而他则成为Transarc的资深系统设计师。他编写的Effective Java一书获得了2001年Jolt大奖,他还与人合著了《Java解惑》 和《Java并发编程实践》。

  没错,Bloch是Java的忠实拥护者,他的工作就是推动Java在Google公司的广泛使用。最近风行于世的并发解决方案,如软件事务内存或者Erlang的消息传递机制等,Bloch都不太看重,他认为Java是并发运算的“最佳语言”,并预言随着越来越多程序员需要开发应用于多核CPU的程序,Java将会再次风行起来。

  Bloch也很推崇把编程看作API设计,我们探讨了这对他自己的设计流程有何影响,同时还讨论了Java是不是太复杂了,以及为什么说选择编程语言就像选择酒吧。