十大人物
James Gosling : Java 之父
文/陶文
作为 Java 之父,James Gosling 的名字可谓是耳熟能详。当人们评论一种编程语言时,总喜欢捎带着把下蛋的母鸡一起带上。Java 做为中国的编程语言学习者餐桌上有限的那么几样餐点中的流行款式,自然是让 James Gosling 风光不已。虽然 James Gosling 现在已经不是领导 Java 发展潮流的领军人物了,做为 Sun 的开发者产品组的 CTO,怎么算来也是身居高位了,俗事缠身吧,但是这并不妨碍其对于 Java 一如既往的爱护,表达着各式各样鲜明的观点,引发一场又一场的争论。
James Gosling 是很爱 Java 的——是啊,哪有当父母的不爱自己的孩子的呢。James Gosling 也是很爱 Sun 的——是啊,哪有当领导的不爱自己的公司的呢。于是我们在批评.NET 的安全性的队伍前头,在褒扬 Java 性能的队伍前头,在抨击 SWT 开倒车的队伍前头,在给 NetBeans 大唱赞歌的队伍前头,我们都看到了 James Gosling 的身影。无论对错、偏见或者固执,至少说明了 Gosling 的鲜明个性丝毫没有受到年龄的影响。也许也只有这种天才而偏执的人物才能创造出 Java 这般伟大的语言来吧。
Bill Joy : 软件业的爱迪生
文/徐昊
Joy 生于 1954 年,1982 年与 Vinod Khosla, Scott McNealy 和 Andy Bechtolsheim 一起创建了 Sun Microsystems,并从那时起担任首席科学家,直到 2003 年离开。他是一位令人崇敬的软件天才,他在软件和硬件的历史上留下了无数令人仰止的传奇。
在上个世纪 80 年代早期,DARPA 与 BBN 达成协议,准备将 Vinton Cerf 和 Bob Kahn 设计的 TCP/IP 协议添加到 Berkeley UNIX 中。Bill Joy 被委派来完成这项任务,然而他却拒绝将 BBN 的 TCP/IP 协议栈添加到 BSD 中,因为在他的眼中 BBN 的 TCP/IP 实现还远不够好,于是他就写了一个高性能的 TCP/IP 协议栈。John Gage 回忆道,“BBN 和 DARPA 签署了巨额合同来实现 TCP/IP 协议,然而他们的员工所编写的代码远没有一个研究生所做的好。于是他们邀请 Bill Joy 参加他们的一个会议,这位研究生穿着一件 T-Shirt 就出现了,他们询问他,‘你是如何做到的呢?’Bill 回答说,‘这是非常简单的一件事,你读一下协议然后就可以编码了’”。除了 TCP/IP 协议,基于分页的虚拟内存系统最早也是由 Bill Joy 添加到 Berkeley UNIX 内核当中的。同时他还是 vi、csh、早期 Pascal 编译器的作者。
关于 Bill Joy 惊人的软件才能流传最广的一个传奇是,据说他在上研究生的时候,想看看自己能不能写一个操作系统出来,于是就在三天里写了一个非常简陋,但是可以使用的 Unix 系统, 传说就是 BSD 的前身。虽然如此夸张的才情令人难以置信,但是考虑到主角是 Bill Joy,还是有一定的可信度的。Bill Joy 硕士毕业之后,决定到工业界发展,于是就到了当时只有一间办公室的 Sun, 他作为主要设计者参与了 SPARC 微处理器的设计,负责设计最为关键的一部分电路。这样兼精软硬件的天才实在是让人不得不佩服啊。1995 年,Sun 发布了轰动世界的 Java 语言。当然,Bill Joy 对 Java 也作出了不少的贡献,首先是 JINI——一种针对分布式服务的基础连接技术。任何可以内嵌 JVM 的电子设备都可以通过 JINI 相互连接; JXTA 是基于 Java 的 P2P 协议,允许互联网上的软件进行点对点交流和协作。
这个其貌不扬的瘦高个,有着凌乱的亚麻色头发,被《财富》杂志誉为“网络时代的爱迪生”的技术狂人,在短短的二十年间,创造了无数令人心动的软件。在 MIT 的 BBS 上曾有一个帖子,说微软电话面试有一道题,问“Who do you think is the best coder, and why?”虽然回复的帖子中大家都声明列举的 best coder 排名不分先后,然而大多数人仍把 Bill Joy 列在第一位,或许可以从一个侧面验证 Bill Joy 在广大 Programmer 心目中的地位吧。
Joshua Bloch : Java 2 元勋
文/莫映
早在 1996 年,适逢 Java 刚刚崭露头角,年内好事连连。先是 1 月份发布 JDK 1.0,然后是 5 月底在旧金山召开首届 JavaOne 大会,年末又是 JDK 1.1 紧跟其后。正是在 Java 技术如火如荼、大展拳脚的背景之下,Joshua Bloch 来到了 Sun,开始了他带领 Java 社区步入“迦南美地”的漫长历程。
很快,他被从安全组调入核心平台组,从事底层 API 设计。至此以后,每逢 JDK 的重大版本发布,总能在其中见到 Joshua 的“妙笔”。JDK 1.1 中的 java.math、1.4 中的 assertions,还有大家所熟识的 Collections Framework 皆是 Joshua 一手打造。其中的 Collections Framework 还获得了当年的 Jolt 大奖。到了 J2SE 5.0 研发阶段,身为平台组构架师的 Joshua 接掌了 Tiger 大旗,其核心地位已然无人可以替代。作为 Tiger 的代言人和领路人,没有谁比 Joshua 更清楚 Tiger。相信大家一定还记得 Joshua 当年仿效英国诗人 William Blake 所做的咏 Tiger 诗八首,优雅的笔调,透出大师深厚底蕴的同时,也道出了 Tiger 的几大重要特性,这些特性是自 JDK 1.1 引入 Inner Class 以来,Java 最大的语法改进。
Java 风雨十年,从 JDK 1.1 到 J2SE 5.0,Joshua 实在功不可没。难怪有人戏言,假如将 James Gosling 比作 Java 之父,那么 Joshua 就是一手将 Java “哺育”成人的 Java 之母。Joshua 对 Java 的贡献还不止于 JDK,提起他的大作《Effective Java》(Addison Wesley, 2001),相信 Java 粉丝们一定耳熟能详。该书荣膺 2002 年度 Jolt 大奖,且备受 James Gosling 推崇。书中 57 条颇具实用价值的经验规则,来自 Joshua 多年来在 JDK 开发工作中,尤其是 Collections Framework 设计中的实践心得,各个有理有据,剖析深入,也足见其深厚功力。该书对 Java 社群的影响,犹如 C++社群中的《Effective C++》。Joshua 对 JCP 的贡献也不小。他是 JSR201 和 JSR175 的领导者,前者包含了 Tiger 四大语言特性,后者则为 Java 提供了元数据支持。此外,他还是 JSR166 的发起人之一(该 JSR 由 Doug Lea 领导),并且是许多其他 JSR 的参与者。Joshua 目前是 JCP 为数不多的几个执行委员会成员之一。
Joshua Bloch 给人的印象是谦逊平和,行事低调而不喜抛头露面,一个典型的技术人员和实干家。不过即便如此,也丝毫不会减弱他对 Java 技术的卓越贡献和对 Java 社区的绝对影响力。有人说,如果他能更彰显一些,就很有可能成为 Java 开发者中的领军人物,就有如 Don Box 之于微软社群。
2004 年 7 月初,就在 Tiger 发布在即之时,就在 Jusha Bloch 刚刚荣获 Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开 Sun 而去了正值发展态势迅猛的 Google。当他离开 Sun 的消息在 TSS 发布之后,众多拥趸表达了怀念与不舍之情。一年过去了,我们还没有获知 Joshua 的任何近闻,似乎又是他行事低调的一贯作风所致,不知他在 Google 状况如何。希望 Joshua 依然能继续“摩西未尽的事业”,以他的影响力推动 Java 社群继续前行。据称,《Effective Java》的下一版会加入 Java 5.0 的部分,让我们翘首以待吧。
Bruce Eckel : 功勋卓著的机会主义分子
文/孟岩
Bruce Eckel 原本是一位普通的汇编程序员。不知道是什么因缘际会,他转行去写计算机技术图书,却在此大红大紫。他成功的秘诀不外乎两点:超人的表达能力和捕捉机会的能力。他最早的一本书是 1990 年代初期的《C++ Inside & Out》,随后,在 1995 年他写出了改变自己命运的《Thinking in C++》。如果说这本书充分表现了他作为优秀技术作家的一面,那么随后他写作《Thinking in Java》并因此步入顶级技术作家行列,则体现了他作为优秀的机会主义分子善于捕捉机会的另一面。写作中擅长举浅显直接的小例子来说明问题,语言生动,娓娓道来,特别适合于缺乏实践经验的初学者。因此《Thinking in Java》俨然成为天字第一号的 Java 教科书,对 Java 的普及与发展发挥着不可忽略的作用。不过公允地说,Bruce Eckel 的书欠深刻。比如在“Thinking in…”系列中对设计模式的解说就有失大师水准。这一方面是因为书的定位非常清晰,另一方面也是因为 Bruce 太过分心赶潮流,未能深入之故。TIJ 之后,他预言 Python 将火,就匆匆跑去写了半本《Thinking in Python》。后来 Python 并未如期而旺,于是他也就把书稿撂在那里不过问了,机会主义的一面暴露无遗。我们也可以善意的猜测一下,他的下一个投机对象会是什么呢?Ruby?.NET?MDA?总之,是什么我都不奇怪。
Rickard Oberg :J2EE 奇才
文/熊节
Oberg 的作品很多,流行的代码生成工具 XDoclet 和 MVC 框架 WebWork 都出自他的手笔。这两个框架有一个共同的特点,即它们的功能虽然简单,但设计都非常优雅灵活,能够很方便地扩展新功能甚至移植到新环境下使用。优雅的设计源自 Oberg 的过人才华,简单的功能则折射出他玩世不恭的人生态度。正是这两种特质的融合,才造就了这个不世出的奇才。
1999 年,JDK 1.3 发布,其中带来了一个重要的新特性:动态代理(Dynamic Proxy)。当所有人都还在对这项新技术的用途感到迷惑时,Oberg 发现用它便可以轻松攻克 EJB 容器实现中的一些难关。这一发现的产物就是一本《Mastering RMI》,以及大名鼎鼎的 JBoss 应用服务器。但 Oberg 很快又让世人见识了他的玩世不恭。由于和总经理 Marc Fleury 在经营理念上不合,Oberg 抱怨“法国的天空总让我感到压抑”,甩手离开了自己一手打造的 JBoss。此后的几年里,他和老友 Hani Suleiman 不断地对 JBoss 的“专业开源”模式和 Marc Fleury 的商人味道冷嘲热讽,让众人为他的孩子气扼腕叹息。
2002 年 10 月,微软推出 Petstore 示例应用的.NET 版本,并宣称其性能比 Java Petstore 高出数倍。正是 Oberg 深入分析这个示例应用的源代码,在第一时间指出它大量运用了 SQL Server 专有的特性,性能对比根本不具参考价值。后来 Oberg 又先后关注了 AOP 和 IoC 容器,两者都成为了 J2EE 架构的新宠。
Doug Lea : 世界上对 Java 影响力最大的个人
文/KIT
如果 IT 的历史,是以人为主体串接起来的话,那么肯定少不了 Doug Lea。这个鼻梁挂着眼镜,留着德王威廉二世的胡子,脸上永远挂着谦逊腼腆笑容,服务于纽约州立大学 Oswego 分校计算器科学系的老大爷。
说他是这个世界上对 Java 影响力最大的个人,一点也不为过。因为两次 Java 历史上的大变革,他都间接或直接的扮演了举足轻重的脚色。一次是由 JDK 1.1 到 JDK 1.2,JDK1.2 很重要的一项新创举就是 Collections,其 Collection 的概念可以说承袭自 Doug Lea 于 1995 年发布的第一个被广泛应用的 collections;一次是 2004 年所推出的 Tiger。Tiger 广纳了 15 项 JSRs(Java Specification Requests)的语法及标准,其中一项便是 JSR-166。JSR-166 是来自于 Doug 编写的 util.concurrent 包。
值得一提的是: Doug Lea 也是 JCP (Java 小区项目)中的一员。
Doug 是一个无私的人,他深知分享知识和分享苹果是不一样的,苹果会越分越少,而自己的知识并不会因为给了别人就减少了,知识的分享更能激荡出不一样的火花。《Effective JAVA》这本 Java 经典之作的作者 Joshua Blosh 便在书中特别感谢 Doug 是此书中许多构想的共鸣板,感谢 Doug 大方分享丰富而又宝贵的知识。这位并发编程的大师级人物的下一步,将会带给 Java 怎样的冲击,不禁令人屏息以待。
Scott McNealy :SUN 十年来的掌舵者
文/KIT
McNealy,Sun 的 CEO、总裁兼董事长。他曾经狂傲的说:“摧毁微软是我们每个人的任务。”这位英勇的硅谷英雄,似乎带头起义,试图组织一个反微软阵线联盟,以对抗微软这股庞大的托拉斯恶势力。他时常口出惊人之语,在公开场合大肆的批评微软,并曾经说微软的.NET 是.NOT。
Scott McNealy 先后毕业于哈佛大学及史丹佛大学,分别持有经济学学士学位及企管硕士。1982 年 MBA 毕业的他和三个同学共同合伙创建了 Sun,并于 1984 年成为 Sun 的执行官。“要么吞了别人,不然就被别人吞了”是 Scott McNealy 的名言录之一。他擅长以信念带动员工,鼓舞士气。极富自信的他,对于认定的事,总是坚持自己的想法,因此有人形容他是一个刚愎自用的决策者。
身为 Sun 这艘船的掌舵者,Scott McNealy 能够看多远,Sun 就能走多远。Scott McNealy 认为将来软件界是一个只有服务,没有产品的世代。他希望打造出 Sun 不是一个纯靠硬件赚钱的公司。从 Open Source 到 Open Solaris,Sun 希望可以成为提供整合性解决方案的服务厂商。Solaris 10 + UltraSPARC 是否可以像 Scott McNealy 希望的是下一匹世纪黑马呢?Sun 是否能以股价来证明华尔街分析师及普罗大众的诽短流长?Scott McNealy 是否能带领着 Sun 成为继微软之后的下一个巨人,一场场 IT 界的争霸战值得我们拭目以待。
Rod Johnson : 用一本书改变了 Java 世界的人
文/ 刘铁锋
Rod 在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位。更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。有着相当丰富的 C/C++技术背景的 Rod 早在 1996 年就开始了对 Java 服务器端技术的研究。他是一个在保险、电子商务和金融行业有着丰富经验的技术顾问,同时也是 JSR-154(Servlet 2.4)和 JDO 2.0 的规范专家、JCP 的积极成员。
真正引起了人们的注意的,是在 2002 年 Rod Johnson 根据多年经验撰写的《Expert One-on-One J2EE Design and Development》。其中对正统 J2EE 架构的臃肿、低效的质疑,引发了人们对正统 J2EE 的反思。这本书也体现了 Rod Johnson 对技术的态度,技术的选择应该基于实证或是自身的经验,而不是任何形式的偶像崇拜或者门户之见。正是这本书真正地改变了 Java 世界。基于这本书的代码,Rod Johnson 创建了轻量级的容器 Spring。Spring 的出现,使得正统 J2EE 架构一统天下的局面被打破。基于 Struts+Hibernate +Spring 的 J2EE 架构也逐渐得到人们的认可,甚至在大型的项目架构中也逐渐开始应用。
Rod Johnson 的新作《Expert One-on-one J2EE Development without JEB》则更让人吃惊,单单“Without EJB”一词就会让大多数 J2EE 架构师大跌眼镜了。不过 Rod Johnson 可能仅仅是想通过“Without EJB”一词表明应该放开门户之见。这也是 Rod Johnson 一贯的作风,。也许正是这种思想,促使得 Rod Johnson 创建了 Spring,真正改变了 Java 世界。
Alan Kay :Java 的精神先锋
文/徐昊
Sun 的官方 Java 教材中有一句话,说 Java 是“C++的语法与 Smalltalk 语义的结合”。而 Smalltalk 的创造者就是 Alan Kay。
Alan Kay 于 1970 年加入 Xerox 公司的 Palo Alto 研究中心。早在 70 年代初期,Alan Kay 等人开发了世界上第二个面向对象语言 Smalltalk,因此,Alan Kay 被誉为 Smalltalk 之父。2003 年,Alan Key 因为在面向对象程序设计上的杰出贡献,获得了有计算机界的诺贝尔奖之称的 ACM Turing Award。
Alan Kay 成名于 Smapltalk 和 OOP,而 Java 虽然在语言上类似于 C,但是在语义上非常接近 Smalltalk,很多 Java 中的设计思想在 Alan Kay 的文献中找到根源,也有些人将 Alan Kay 尊为 Java 思想的先驱。不过遗憾的是似乎 Alan Kay 老先生对 Java 并不买账,反倒攻击说 Java 是存在致命缺陷的编程语言,Java 的成功不是由于 Java 本身的内在价值,而是其商业化的成功。 Alan Kay 欣赏的是 Lisp,他认为 Lisp 是软件的麦克斯韦方程,其中的许多想法是软件工程和计算机科学的一部分。看来拥有 Alan Kay 这样一位重量级的 Java 先驱仍是我们 Java 一厢情愿的单恋吧。
Kent Beck : 领导的敏捷潮
文:刘铁锋
Beck 全家似乎都弥漫着技术的味道。生长在硅谷, 有着一个对无线电痴迷的祖父,以及一个电器工程师父亲。从小就引导 Kent Beck 成为了业余无线电爱好者。
在俄勒冈州大学读本科期间,Kent Beck 就开始研究起模式。然而在他最终拿到计算机学位之前,他却是在计算机和音乐中交替学习。似乎 Java 大师都能够有这样的能耐,另一 Java 大牛 Rod Johnson 同样也拥有音乐学的博士学位。
Kent Beck 一直倡导软件开发的模式定义。早在 1993 年,他就和 Grady Booch(UML 之父)发起了一个团队进行这个方面的研究。虽然著有了《Smalltalk Best Practice Patterns》一书,但这可能并不是 Kent Beck 最大的贡献。他于 1996 年在 DaimlerChrysler 启动的关于软件开发的项目,才真正地影响后来的软件开发。这次的杰作就是 XP(极限编程)的方法学。
和软件开发大师 Martin Fowler 合著的《Planning Extreme Programming》可谓是关于 XP 的奠基之作。从此,一系列的作品如《Test Driven Development: By Example》,《Extreme Programming Explained: Embrace Change》让更多的人领略到了极限编程的精髓,也逐步导致了极限编程的流行。
Kent Beck 的贡献远不仅如此。对于众多的 Java 程序员来说,他和 Erich Gamma 共同打造的 JUnit,意义更加重大。也许正式这个简单而又强大的工具,让众多的程序员更加认可和信赖极限编程,从而引起了 Java 敏捷开发的狂潮吧。