程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java標准迎挑戰 未來由誰主宰

Java標准迎挑戰 未來由誰主宰

編輯:關於JAVA

Java從它的誕生到現在已經11年了。在這11年裡,有無數的企業、組織和個人為Java貢獻過自己的力量。這就象梁山一百單八將要按著自己的貢獻和威望排名一樣,誰為Java所做的工作越多,誰就對Java的未來發展方向越有發言權。

自從Java成為國際標准後,支持它的企業也隨著Java的成熟逐漸多了起來。

當然,人一多,就會帶來另一個問題,誰說了算!作為Java的始作俑者Sun一直想將Java標准據為已有,而IBM憑著它在世界的影響對Java也是虎視眈眈。俗話說得好,三流的公司賣產品、二流的公司賣服務、一流的公司賣標准。當然,如果想做世界第一的IT企業,那就得標准、服務和產品一起賣。因此,以Sun、IBM為首的利益集團圍繞著Java以及相關標准明爭暗斗了11年,在這11年裡,Java標准幾度風雨、幾度春秋。隨著Java的全面開源,Java標准又面臨著前所未有的挑戰,未來的Java還會象它宣稱的那樣,一處編譯、到處運行嗎?到底誰能主導未來的Java呢?

Java剛一誕生就成待宰羔羊

在1995年,Sun正式公布了Java,並且發布了JDK1.0。Java在外形上酷似C++,但它卻有一顆形如Smalltalk般純潔的面向對象之心。正因為如此,Java幾乎在一夜之前就香濃世界,成為軟件行業的新寵。雖然Java剛開始只是通過Applet為網站做一些動態的效果,但它的殺手锏,“一次編譯、到處運行”使Java迅速成為各大企業及眾多開發人員競相追捧的對象。

正是因為Java的流行使眾多有實力的企業垂涎三尺。一開始,Java的JVM是由Sun單獨開發的。而在當時,開發工具的老大Borland卻蠢蠢欲動。由於Borland以開發語言編譯器著稱,因此,在Java的早期,除了Sun的JVM,比較著名的還有Borland JVM。

這個世界上除了Sun,沒有哪家公司象Borland一樣和Java走得如此之近。在Java的早期,Borland幾乎參與了Java的各種層次的設計,如JVM、JDK以及開發工具。甚至Sun和Borland曾經進行了一場關於JVM的軍備競賽。當初Sun設計一個JVM版本,Borland也跟著設計一個更快的JVM版本。就這樣持續了有幾個月時間。Borland負責這方面事務的就是Anders Hejlsberg,他的第一個成名作就是Delphi,因此,他也被稱為Delphi之父。說起Anders Hejlsberg,也許大家不太熟悉,但要是提起C#之父,也許大家會很熟悉,對,他也是Anders Hejlsberg(在1996被微軟用年薪300萬美元、加盟獎金以及一個開發團隊從Borland挖去的),因此,Anders Hejlsberg同時被稱為Delphi / C#之父。這位天才以匯編語言編寫了Borland JVM,從某種程度上,Borland JVM的效率要比Sun JVM高一些(如果你用過Visual J++就知道了)。但由於Borland後來專注於Java開發工具(JBuilder)的開發而放棄了和Sun的JVM爭奪。

在Sun和Borland的JVM爭奪戰結束後,真是樹欲靜而風不止。自從Anders Hejlsberg到了微軟後,立刻被比爾.蓋茨派去負責微軟的Java開發工具Visual J++的開發,至此,又要上演一場龍爭虎斗。大家都知道,微軟和Sun一直因為Java而互相攻擊。但一開始,比爾. 蓋茨是非常喜歡Java的,他曾經稱贊Java是“到現在為止世界上最好的開發語言”,微軟也很早就購買了Java許可證。但微軟作為軟件公司的老大,看到別人的孩子茁壯成長,自已心裡卻暗生嫉恨。於是在它自己的Visual J++中搞起了小動作。使用Visual J++開發Windows程序就象是享受一杯美酒。但Visual J++卻破壞了Java的跨平台特性。微軟和Sun也因此打了長達7年的官司,最後這場官司以喜劇收場。微軟和Sun達到協議,微軟停止Visual J++的開發,而雙方都將為使用對方的專利付費。同時Visual J++也無疾而終(要不是這場官司,恐怕現在很多程序員還在使用Visual J++呢!)。在2004年,微軟和Sun最終以16億美元結束了十多年恩怨。這也正應了一句話“沒有永遠的朋友、也沒有永遠的敵人,只有永恆的利益”。

在Sun、Borland、微軟之間圍繞著Java的爭斗最終以Sun重新獲得Java的控制權而結束。但新的爭斗又將開始。

Java標准成為眾豪強競相追逐的“梅花鹿”

在經過數年的爭斗後,Sun終於可以暫時控制JVM和JDK了,現在這兩種技術也趨於一致了,但JVM和JDK只是Java體系的冰山一角。而對Java影響最大的莫過於眾多的JSRs(Java Specification Requests)。

當Sun和Borland、微軟的爭斗告一段落後,Sun本以為可以高枕無憂了,但Sun卻打錯了算盤。在這之後,Sun受到的第一次挑逗就是IBM的Eclipse。在2001年,IBM設計了自己的Java開發工具Eclipse,這本來沒什麼,但Eclipse卻與Borland的JBuilder有著本質的不同。JBuilder是百分之百基於Java的,而Eclipse雖然是Java開發工具,但它的圖形接口既不是AWT,也不是SWING,而是IBM自己開發的SWT。SWT雖然速度快,但它卻是獨立於JDK之外的,也就說,它並不同JDK一起發布。因此,在程序發布時,必須帶是SWT的運行庫才可以。IBM官方稱Eclipse的推出是為取代Sun的NetBeans,但稍微動一下腦子就不難看出,IBM的真正目的並不是NetBeans,而是想逐步取代Sun的JDK的部分,甚至全部。IBM推出SWT的目的就是想讓開發人員除了標准的AWT和SWING外,還有另外一種選擇,那就是SWT。也就是說,IBM想先通過JDK的圖形庫來分裂JDK,從而達到自己控制JDK的目的。

而另Sun尴尬的是IBM的舉動並沒有觸犯什麼法律或規約,SWT只是一個基於Java的類庫而已。Sun更本無法向當年起訴微軟一樣來起訴IBM。IBM的初次挑釁取得了意想不到的收獲。這下IBM更加得寸進尺了。

由於和Java相關的規范都是由JCP來管理的。每當提交一個新規范,必須由JCP的成員投票表決才能通過。因此,JCP就相當於Java世界的聯合國。它和現實中的聯合國是一樣的,誰控制了聯合國,誰就能充當世界警察,為所欲為。而JCP成員中最強大的當然是IBM了。一開始,IBM還是很規矩的,但後來,IBM發現,JCP一直都是由Sun來主導,而Sun的產品也是最早支持JCP標准的,如當JCP推出新的J2EE標准後,Sun的APPServer在半個月後就宣布支持新標准了。

這種結果是IBM所不能允許的,因為,在J2EE市場,IBM和Sun是競爭對手。這樣,Sun的APPServer就永遠領先IBM的WebSphere了。因此,IBM就想繞過JCP,自己確定新的標准。可能是因為IBM感覺自己勢單力孤,最後把BEA也拉了進來。IBM和BEA都是J2EE市場的絞絞者,他們的市場份額之和超過了66%。

無論是微軟,還是IBM。他們的強大都足以在一個領域中推行新的規范。IBM也正是看中了這一點,因此,在最近IBM和BEA提交的幾個規范(如JSRs235,236和237)並沒有長長支持列表。而其它的規范都有很長的支持列表。這充分說明了IBM和BEA打算繞過JCP而單獨推出規范,而這些規范並未得到JCP大多數成員的支持。

如果說提交JSR規范只是小打小鬧,那麼IBM聯合BEA發布的SDO(Service Data Object)規范將是一次大動作。在發布SDO的同時,IBM又向apache基金會捐獻一個支持SDO標准的Tuscany項目。這次發布並沒有安排Sun、JBoss等Java中間件提供商參與。盡管SDO最終因進展緩慢而失敗,但這將是以IBM為首的利益集團分裂JCP的開始。在SDO失敗後不久、IBM和BEA又聯手推出了SOA標准。這個標准除了IBM和BEA,並沒有其它的SOA標准制定者。IBM和BEA制定SOA的目的就是想徹底繞過JCP而成為Java EE的事實標准。不管其他人如何評價IBM和BEA的這次聯合,我相信Java標准已經開始分裂。而在業界舉足輕重的企業,如IBM、BEA、Oracle、JBoss,甚至是微軟,都會圍繞著Java標准展開一場殊死搏斗。也許Java EE的未來將是一場血雨腥風!

Sun的回馬槍:以GPL協議開源的Java

IBM這個城府極深的家伙總在不斷地算計別人。就在Sun和微軟最終和解的2004年,IBM又不遺余力地“勸說”Sun將Java開源。而當時Sun還是站在開源的對立面。面對IBM給自己的一封公開信,Sun總裁麥克利表現出了極大的反彈,並公開表達了對這封信的反感和對開放的排斥。有趣的是,在兩年之後,Sun的態度發生了180度的逆轉,不僅將Java開源,而且是在GPL協議下開的源。GPL在開源協議中是最接近自由的協議,這下可給IBM一個措手不及。

在Sun公布這一消息之後,英特爾、RedHat都對此表示高度的贊許,而IBM的態度卻讓人捉摸不透。除了一份聲明外,並沒有其它的任何反應。

其實Sun這次開源也算是破罐子破摔了。在Java誕生的11年裡,Java為Sun贏得了無數的聲譽,但Java對於Sun來說就是叫好不叫座。而恰恰相反,Java卻成就了BEA、JBoss、IBM等公司。可Sun除了為Java而付出的大量開發和維護費用外,幾乎沒得到沒麼好處。而這次開源,Sun干脆將Java開源到底,直接選用了最開放的GPL協議,反正Sun也沒從Java得到什麼,當然,也不怕失去什麼。Sun的這個舉動是幾乎所有人都始料未及的。而最受刺激的就是IBM。在開源的當天,IBM發表聲明建議Sun還是以apache協議來開源Java。這說明,Sun這一舉動給了IBM一個回馬槍、打得IBM錯不及防。

IBM一開始想讓Sun在apache等限制比較多的協議下開源,然後憑著IBM的影響力來控制Java在未來的發展方向。而這下Sun將IBM的計劃完全打亂了,一但以GPL開源,就意味著任何人都可能自由地修改Java的代碼,而IBM將很難控制局面。

Java的開源其實對於Sun是好處多多,起碼它可以省下大筆的開發Java的費用,當然,還能贏得一個好名聲。除此之外,還可以借助於開源社區的力量,對Java那臃腫的構架進行改進。Sun還發表聲明說,在未來,還打算將Solaris、OpenOffice等軟件以GPL協議進行開源。這將給Sun帶來更大的發展機會。

而IBM和其它的軟件公司也正在試圖尋找開源贏利模式。IBM幾次想控制Java都未能完全如願,現在Java也以GPL協議開源了,看來,IBM要想進一步地控制Java的可能性已經不大了。而Java的開源也有不利的一面,這將表現在可能出現其它的Java版本,到那時,可能會在一定程度上破壞Java的“一處編譯、到處運行”的特性。

總之,不管Java標准是分裂,還是統一,有一點永遠不會變,那就是Java會一如既往地向前發展。但願我們將來能看到一個嶄新的Sun和Java

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved