天天看點

JAVA十大人物

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靈活開發的狂潮吧。