1990-1994:Java緣起
文/孟巖
Larry Wall說,優(yōu)秀程序員應有的三個特點:懶惰、急躁和傲慢。Java就是誕生在一群懶惰、急躁而傲慢的程序天才之中。
1990年12月,Sun的工程師Patrick Naughton被當時糟糕的Sun C++工具折磨的快瘋了。他大聲抱怨,并威脅要離開Sun轉(zhuǎn)投當時在Steve Jobs領(lǐng)導之下的NeXT公司。領(lǐng)導層為了留住他,給他一個機會,啟動了一個叫做Stealth(秘密行動)的項目。隨著James Gosling等人的加入,這個項目更名為Green。其目標是使用C++為嵌入式設備開發(fā)一種新的基礎平臺技術(shù),James Gosling本人負責開發(fā)一個SGML編輯器。正如人們事后分析的那樣,這位天才的程序員太懶惰,所以沒有把C++學好,開發(fā)中碰了一頭包;太急躁——所以不愿意停下來讀讀Scott Meyers的新書《Effective C++》;太傲慢——所以輕易地決定開發(fā)一中新的編程語言。他把這種語言命名為C++++--,意思是C++“加上一些好東西,減去一些壞東西”。顯然這個糟糕的名字不可能長命百歲,很快這種頗受同伴喜愛的小語言被命名為Oak。
到了1992年9月,Oak語言連同Green OS和一些應用程序一起發(fā)布在稱做Start 7的小設備上,從而使之有了第一次精彩的亮相。隨后,Sun開了一家名為FirstPerson的公司,整個團隊被轉(zhuǎn)移到這家公司里研發(fā)機頂盒,以投標時代華納公司的一個項目。這幫天才被技術(shù)狂熱所鼓舞,開發(fā)出了一個高交互性的設備,結(jié)果沒想到時代華納公司和有線電視服務商并不愿意用戶擁有那么大的控制權(quán),從而在競標之戰(zhàn)中敗給了SGI。Oak的鋒芒之銳,竟然把客戶都給嚇懵了。Sun沮喪地關(guān)閉了FirstPerson,召回了整個團隊。事實證明,傳統(tǒng)行業(yè)中那些腦滿肥腸的保守主義者是腐朽沒落的。回去!回到激情澎湃的IT產(chǎn)業(yè),抓住互聯(lián)網(wǎng)的大潮,這才是出路!1994年,Oak被命名為Java,針對互聯(lián)網(wǎng)的新一輪開發(fā)如火如荼,一切已經(jīng)就緒,熔巖在地下奔流,火山即將噴發(fā)。
1995: Java香濃世界
文/馬偉
1995年,Sun正式對外公布了Java,并且發(fā)布了JDK 1.0。這種外形酷似C++,卻包含一顆Smalltalk般純潔的面向?qū)ο笾牡娜鲁绦蛟O計語言及其平臺,幾乎在一夜之間就成為軟件產(chǎn)業(yè)的新寵兒。Java當時僅僅被用來為網(wǎng)站制作一些動態(tài)應用,諸如動畫圖片之類,但這仍然引起了很多Web開發(fā)者們的注意,他們非常渴望有一種安全的語言,可以在靜態(tài)的HTML網(wǎng)頁上制作動畫圖片。Sun最終把Java集成到NetScape瀏覽器。同時因為它具有“只寫一次,隨處運行”的特性,而引起了很多開發(fā)者的注意,他們可以再也不用為了使程序能夠在不同型號的硬件上運行而耗費大量的時間來編譯代碼了。
當時的Web瀏覽器的出現(xiàn)也為Java的出現(xiàn)起到了很好的推動作用,通過Java和Web瀏覽器的結(jié)合,人們似乎看到了什么,有人甚至預言PC將在一兩年內(nèi)退出歷史的舞臺,取而代之的是基于Java的瀏覽器應用程序,通過網(wǎng)絡計算設備來進行應用。Java的出現(xiàn)為當時的軟件產(chǎn)業(yè)帶來了無限的遐想。
1996:Java大躍進,盟主地位就此定
文/馬偉
SUN在1996年一開始首先成立了JavaSoft組織,并在1月23日正式發(fā)布自己的Java 1.0,作為20世紀業(yè)界出現(xiàn)的最重要的技術(shù)之一,Java引起了編程世界的革命。直到現(xiàn)在,Java仍然是互聯(lián)網(wǎng)上最流行的語言。
在Sun正式發(fā)布Java 1.0之后,Java這門新生的語言就擁有了自己的會議——JavaOne,這次會議初試啼音就吸引了600多名參與者。除了擁有這么多的積極參與者來進行Java的開發(fā)之外,各大知名公司也紛紛向Sun申請Java的許可。一時間,NetScape、惠普、IBM、Oralce、Sybase甚至當時剛推出Windows 95的微軟都是Java的追隨者。
Java的應用就像是世界上的頂級玩家們組成的一個公開聯(lián)盟,告訴全世界我們大家就是都在用著Java。也正是因為如此,Java也找到了自己的歸宿。現(xiàn)在的J2EE已經(jīng)成為中大型企業(yè)級應用的標準,成為承接數(shù)據(jù)庫和Web之間的一個重要橋梁。
當年Java的機會實在太多了,以至于很難知道到底該做什么。最終Java在應用服務器市場獲得了難以取代的地位,也確定了J2EE的發(fā)展方向,并且仍將延續(xù)下去。
1997-2001: 微軟與Sun的Java官司
文/孟巖
Java誕生的1995年,正是微軟在軟件產(chǎn)業(yè)地位達到巔峰的時代,Windows 95發(fā)布時的風光場面給人們留下的深刻印象至今難忘。盡管如此,作為最卓越的技術(shù)領(lǐng)袖,比爾?蓋茨仍然敏銳地注意到Java。當他了解了Java的一些細節(jié)之后,給予了這樣的評價:“Java是很長時間以來最優(yōu)秀的程序設計語言。”基于此,微軟于1996年3月申請并獲得了Java許可證。微軟對于Java的這一熱情態(tài)度在當時大大提高了人們對Java的興趣和信心,但也有不少人擔心微軟會依靠自己強大的影響力在標準之外另立標準,從而破壞Java的純潔性。
果然,從1997年發(fā)布Visual J++的第一個版本開始,微軟就開始在Java中摻入自己的私有擴展。這毫無疑問引起Sun的高度重視。1997年10月,Sun向美國加州地方法院起訴微軟公司違反兩公司就微軟使用Java技術(shù)所簽定的合同,指控微軟公司在自己的Java產(chǎn)品中做了“不恰當?shù)男薷摹保`反了合同中承諾向用戶提供Java兼容產(chǎn)品的條款。這一官司曠日持久,直到2001年1月雙方達成和解,微軟將繼續(xù)提供采用Sun開發(fā)的Java技術(shù)的現(xiàn)有產(chǎn)品(包括測試版)。不過,Sun有限制地僅對包括Java 1.1.4的微軟產(chǎn)品提供許可。到了2001年7月,微軟公布新版的Windows XP將不再支持Sun的JVM,并且推出了.NET平臺與Java分庭抗禮。
現(xiàn)在回過頭去看,當時的這一場官司對Java世界產(chǎn)生了深遠的影響。如果沒有這一場官司,也許很多Java程序員都在使用Visual J++,基于WFC開發(fā)Windows客戶端程序,同時不得不面對被兩個不同的事實標準所分裂的Java世界。
1998:Java 2平臺發(fā)布
文/陶文
1998年,Java 2平臺正式發(fā)布。經(jīng)過了三年時間的發(fā)展、熱熱鬧鬧的攻關(guān)宣傳、紅紅火火的眾廠商的熱情參與,Sun終于知道Java適合干什么了。對比Java剛發(fā)明時的技術(shù)定位,與Java的戲劇性觸“網(wǎng)”的那段歷史,Java 2平臺的發(fā)布可真算得上是有的放矢了。根據(jù)官方的文檔,Java 2是Sun意識到“one size doesn’t fit all”之后,把最初的Java技術(shù)打包成三個版本的產(chǎn)物,也就是著名的J2ME、J2SE、J2EE。
之所以說Java自從Java 2平臺發(fā)布之后,進入了現(xiàn)代。那是因為之前的歷史怎么看來都和現(xiàn)在程序員日常開發(fā)使用的技術(shù)無什么關(guān)系,比如Applet,已經(jīng)很少有人使用了。Java 2之后的歷史就不一樣了,至少人們在推崇輕量級開發(fā),猛批EJB時還不時會引用J2EE這個詞是如何誕生的。而Java 2的三大版本中,除了J2EE得到了長足發(fā)展和廣泛使用之外,J2ME也在手機市場上取得了遍地開花的結(jié)果。相較之下,J2SE難免落寞,只剩SWT這個血統(tǒng)不純的家伙在Rich Client回歸的時代吸引著人們的眼球了。無論今天看來當時的Java 2有多么的不成熟,至少經(jīng)過市場和時間的檢驗,Java 2規(guī)劃出來的三大方向把Java技術(shù)指向了光明的方向是勿庸置疑的。
1998:JCP成立并正式運作,
Java開源社群開始蓬勃發(fā)展
文/黃海波
1998年,JCP組織成立,并且開始把握Java的發(fā)展方向。JCP組織的開放性,不但使得所有對Java感興趣的商業(yè)公司可以參與Java的發(fā)展,更重要的是JCP允許個人、非盈利組織、學校等加入,這就給Java帶來了巨大的活力。隨之興起的Java開源運動的最大貢獻是實現(xiàn)和鼓勵了知識共享,在眾多熱情的開源程序員們的努力和分享下,很多原先只被商業(yè)公司掌握的技術(shù)、思想和產(chǎn)品可以被所有需要的開發(fā)人員免費或者以較低的價格獲得使用權(quán), 并通過開放源代碼更容易的獲得反饋和改進意見從而進一步演化發(fā)展。我們知道,所謂知識不是孤立發(fā)展認知,而是人們的經(jīng)驗,認識是思考交流和積累的產(chǎn)物。而開源運動所帶來的開放、反饋、交流的風氣正是符合人類社會知識形成和發(fā)展的規(guī)律。
開源運動起源于西方的發(fā)達國家,有其現(xiàn)實背景和文化根源。1990年代可以說是IT產(chǎn)業(yè)的一個黃金時代。信息時代的興起對IT人員,特別是軟件人員有著巨大的需求。而軟件開發(fā)又是一種類似藝術(shù)創(chuàng)作的腦力活動,和所有的藝術(shù)家、作家們一樣,在作品打上自己的印記并流傳在世界上是每一個創(chuàng)作人員的夢想。互聯(lián)網(wǎng)時代下的高收入的舒適生活,早九晚五的編寫公司的代碼并不能滿足很多有激情的軟件開發(fā)人員的夢想,再加上西方傳統(tǒng)的基督教文化中十分推崇的分享和交流,開源的出現(xiàn)和興起也就水到渠成了。今天,開源運動已經(jīng)不僅僅是一些個人天才程序員們的游樂園地,而是發(fā)展成為一項開源軟件產(chǎn)業(yè)。
1998:WebLogic打開J2EE的魔匣
文/霍泰穩(wěn)
Java語言的出現(xiàn)使得互聯(lián)網(wǎng)絡有了良好的交互性能,但這些很“酷”的技術(shù)僅被人們認為是一些小花招,它還無法消除企業(yè)級用戶對它的懷疑。1998年,BEA公司宣布收購WebLogic公司,并接著推出由Sun公司第一個授權(quán)使用J2EE許可證的WebLogic Server應用服務器,這個Java版的AppServer一推出就引起業(yè)界極大的興趣。WebLoigc Server以其對標準的支持、強悍的運算能力和安全的架構(gòu)設計等特性也很快征服了那些懷疑J2EE應用的人們。推出市場后不到一年,WebLogic Server就成為業(yè)內(nèi)第一Java應用服務器。
這里我們援引一些當時著名咨詢公司的調(diào)查數(shù)據(jù)來說明問題,“在IDC的報告中,BEA在應用服務器和交易服務器領(lǐng)域市場份額第一;在Gartner的報告中,BEA WebLogic Server擁有業(yè)內(nèi)最廣泛的EJB應用安裝基礎;在Giga Group的報告中,BEA WebLogic Server市場份額占32%”。
因為應用服務器市場極大的發(fā)展?jié)摿Γ赪ebLogic Server之后,其它的很多公司也推出了自己的AppServer,如IBM的WebSphere、Sun公司的iPlanet等,逐漸地應用服務器取代了傳統(tǒng)意義上的各類中間件,成為企業(yè)應用的基礎平臺。應用服務器的出現(xiàn)使得Java有了真正意義上的發(fā)展。
2002-2004: Sun與微軟的法律碰撞最終以喜劇收場
文/惡魔
2003年4月2 日,Sun與微軟達成16億美元的法律和解。如果不是晚了一天,許多人會以為這是一個在4月1日愚人節(jié)開的玩笑。盡管當時所有人都像是看到“太陽從西邊出來了”那樣張大了嘴巴,但這的確是事實。
根據(jù)兩家公司達成的版權(quán)協(xié)議,雙方會為采用對方的技術(shù)而支付專利費用,微軟向Sun提前支付3.5億美元使用費,Sun則承諾,如果Sun集成微軟的某些技術(shù),也會向微軟付款。
毫無疑問,“私下了結(jié)”的方式對雙方而言都是最好的結(jié)果。就在協(xié)議簽署的當天,在美國舊金山由Sun和微軟為“拋棄十年恩怨、攜手合作“舉行的新聞發(fā)布會上,盡管比爾?蓋茨沒有到場,但這并沒有防礙現(xiàn)場看起來異常輕松的氣氛。麥克尼利和鮑爾默各自穿了一件密歇根州底特律“Red Wings”曲棍球隊的運動服,并談及了一起在哈佛大學讀書的經(jīng)歷,麥克尼利還說:“當時我們兩人是非常要好的朋友,當然我們也有吵架的時候。”人與人當然可能成為終生的知己,但是公司與公司之間有的只能是利益上的分分合合。
2000-2004: JBoss和Eclipse
——Java開源軟件的王者
文/莫映
Java和開源幾乎就是天生的一對,這可以從無比興盛繁榮的Java開源軟件社區(qū)得到佐證。目前最有影響力的Java開源軟件項目,要數(shù)JBoss和Eclipse。可以說,幾乎所有的Java開發(fā)人員都獲多或少的聽到過或接觸和使用過它們。前者是目前最優(yōu)秀、應用最為廣泛的企業(yè)級開源J2EE應用服務器,后者是功能完全可以替代商業(yè)產(chǎn)品的Java IDE。二者的覆蓋功能之全、支持工具之廣、子項目之多,幾乎可以僅憑借它倆來完成企業(yè)應用的開發(fā)構(gòu)建到部署實施的全過程,而軟件開發(fā)者和客戶也都可以最大程度上享受高質(zhì)量,高可靠Java開源軟件所帶來的低成本優(yōu)勢。
JBoss和Eclipse的巨大成功,幾乎令各自領(lǐng)域的商用競爭者抓狂,其中BEA的WebLogic和IBM的WebSphere在商業(yè)利潤上受到JBoss的巨大侵蝕,而Borland的JBuilder、JetBrains的IDEA等諸多優(yōu)秀的商用開發(fā)工具也不得不面對Eclipse獨大的現(xiàn)實。JBoss的CEO兼創(chuàng)始人 Marc Fleury曾直言不諱地表示,希望占據(jù)市場主導地位。“我們希望打敗IBM,成為中間件領(lǐng)域里最大的廠商。”JBoss在4.0以前還只是以一個Group存在,盈利手段主要靠服務和銷售文檔。但在最近,JBoss已經(jīng)發(fā)展成為一個有限公司,并吸納多家風險投資,專注于獲取利潤為目標之一的第二代開源軟件模式(JBoss自己稱為“Professional Open Source”)的創(chuàng)新和運營。這區(qū)別于以理論研究為愛好的學院型開源或大公司為基礎的非盈利組織開源,如Linux和Apache。當然JBoss的這種運營方式勢必會導致更多的代碼控制和專有修改權(quán),但按JBoss的說法是這樣更能獲得企業(yè)客戶的信賴。JBoss的這種模式是否能獲得成功還要我們拭目以待。
不管JBoss和Eclipse的未來發(fā)展如何,JBoss和Eclipse的成功已經(jīng)讓我們看到了Java開源軟件的威力,祝愿它們一路走好。
2004:Java 5.0
文/莫映
2004年9月30日,代號為“Tiger”,研發(fā)歷時近三年的J2SE 5.0發(fā)布正式版本,這是Java平臺歷來發(fā)布版本中改動面波及最大的一次。
縱觀Tiger,“Ease of development”是其核心主題,這一點著重體現(xiàn)于語言特性上的改進,這在很大程度上,簡化了開發(fā)人員日常的編程任務,以往一些瑣碎的手工勞動都代之以輕松自然,而又安全可靠的自動化實現(xiàn)。其中的注解功能,以及隨之而來的聲明式編程,還對構(gòu)筑于J2SE 5.0之上的J2EE 5.0產(chǎn)生了巨大影響。盡管Tiger在語言特性上做了很大的動作,但作為Java技術(shù)的基礎支撐,這些改動都是深思熟慮的結(jié)果。
Tiger發(fā)布至今也有大半年了,那么Sun又是如何規(guī)劃J2SE的未來藍圖的呢?據(jù)悉,J2SE的下兩個版本分別是代號為“Mustang”的J2SE 6.0和代號為“Dolphin”的J2SE 7.0,預計Mustang將于明年發(fā)布。在吸取了Tiger研發(fā)周期過長的教訓之后,Sun副總裁Graham Hamilton表示,Mustang的發(fā)布周期將不會那么長。并且,Sun還將“Becoming more open” 作為Mustang的主題之一。未來JCP對Java技術(shù)的影響將會愈加深入,而整個研發(fā)過程也將會愈加透明。Mustang在正式發(fā)布前的內(nèi)部版本也會陸續(xù)見諸于眾,如此,廣大Java開發(fā)者便可以更加及時的了解到Java發(fā)展的最新情況。在語言層面上的擴展依然會比較謹慎,比如像AOP這樣的當下熱門技術(shù),依然不太可能會見諸其中。據(jù)Hamilton所言,一個有可能被引入的語法特性被稱作“friends”import機制,它將使由多個包組成的大型項目變得易于管理。