Java體系十大產品

Sun JDK :Java的基石

 

衆所周知,流傳於市的JDK不單Sun一家,比如IBM的JDK、BEA的JRocket、GNU的GCJ,以及如Kaffe這樣的開源實現,不一而足。但是,根正苗紅的Sun官方JDK一直以來都是備受矚目的主流,它對Java社區的影響也是舉足輕重。

1996年1月,Sun在成立了JavaSoft部門之後,推出了JDK 1.0,這是Sun JDK(Java Development Kit)的首個正式版本;當年12月,JDK1.1出爐。該版除了對前序版本部分特性做了改進以外,重寫了AWT,採用了新的事件模型。1998年12月,JDK 1.2正式發佈。此時的類庫日臻完善,API已從當初的200個類發展到了1600個類。在1.2版本中引入了用100%純Java代碼寫就的Swing,同時,Sun將Java更名爲Java 2。

1999年,Java 技術形成了J2SE、J2EE和J2ME三大格局。Sun向世人公佈了Java HotSpot性能引擎技術的研究成果。HotSpot旨在進一步改善JVM性能,提高Java ByteCode的產生品質,加快Java應用程序的執行速度。J2SE 1.3發佈於2000年;2002年2月間,J2SE 1.4問世,這是有JCP參與以來首個J2SE的發行版本。2004年9月30日,代號爲“Tiger”的J2SE 5.0終於出籠了,這次發佈被譽爲Java平臺歷來發佈中特性變動最大的一次。包括泛型在內的若干重大語法改進、元數據支持,包括多線程、JDBC在內的多項類庫改進,都令廣大Java程序員激動不已。自此,Sun的官方JDK(J2SE Development Kit)已經步入了一個新的高度。2006年11月3日,jdk1.6發佈,該版本改進:提供腳本語言支持,提供編譯API和微型HTTP服務器API等。虛擬機方面:鎖與同步,垃圾收集,類加載等。2011年7月28日,jdk1.7發佈,新特性:對Java集合的增強支持,Switch中可用String類型參數,自動資源管理,提供新的G1收集器,加強對非Java語言的調用,升級類加載架構等。

 

Eclipse :以架構贏天下

 

IBM是在2001年以4000萬美元種子基金成立Eclipse聯盟,並且捐贈了不少程序代碼。如今,該組織有91個會員,包含許多全球最大的軟件商。根據Evans Data公司的資料,Eclipse是目前最受歡迎的Java開發工具。

Java廠商若要共同對抗微軟,彼此之間就要有共同的開發工具纔行。

在Eclipse平臺上,程序員可使用好幾種不同的語言。在前端方面,用戶可整合多種工具來撰寫Plug-in程序或Unit Test。Eclipse最大的特色就在於其完全開放的體系結構,這代表任何人都可下載並修改程序代碼,給Eclipse寫插件,讓它做任何你能想到的事情,即所謂“Design for everything but nothing in particular”。

Eclipse基金會的架構比較特別,反映出企業現今對於開放原始碼計劃也越來越積極主動。Eclipse不像一般開放源碼軟件容許個人的捐獻程序,該基金會是由廠商主導。不論是董事會成員或者是程序贊助者幾乎都來自於獨立軟件開發商(ISVs)的員工。

Eclipse首席執行官Mike Milinkovich說,這種廠商會員制是特意設計的;他說Eclispe軟件開發快速就是因爲會員制的關係,同時又加上開放源碼開發模式的臨門一腳。這與一般透過標準組織的做法全然不同。 這其實正好驗證了一句老話:“開放即標準”。

 

JUnit/Ant : 讓Java自動化的絕代雙驕

 

在Java程序員必備的工具中,共 同擁有且交口稱讚的恐怕就非JUnit、Ant莫屬了。一個是單元測試的神兵利器,一個是編譯部署的不二之選,它們讓Java的開發更簡單。

JUnit由XP和TDD的創始人、軟件大師Kent Back以及Eclipse架構師之一、設計模式之父Erich Gamma共同打造。名家的手筆和理念使得JUnit簡單而強大,它將Java程序員代入了測試驅動開發的時代。JUnit連任了2001、2002年“Java World編輯選擇獎”以及2003年“Java World最佳測試工具”和2003年“Java Pro最佳Java測試工具”等衆多獎項,深受Java程序員好評。

Ant是開源項目的典範,它讓IDE的功能更加強大,從Sun的NetBeans到JBuilder,主流的IDE中處處都有它的身影。“Another Neat Tool”原是它的本名,但這已經漸漸不爲人知。它徹底地讓部署自動化,而程序員需要做的僅僅是幾條簡單的配置命令。和JUnit一樣,Ant也榮獲了衆多的殊榮:2003年JavaWorld“最有用的Java社區開發的技術編輯選擇獎”, 2003年Java Pro“最有價值的Java部署技術讀者選擇獎”,2003年“JDJ編輯選擇獎”,也讓Ant受到的多方的認可。

Ant對JUnit的全面集成,則使得一切都變得更加完美。只需簡單地配置,從自動測試到報告生成,從編譯到打包部署均可自動完成。強大的功能,簡單的配置,讓Java程序員高枕無憂。實可謂讓Java自動化的絕代雙驕。

 

Websphere : 活吞市場的大鯨

 

1999年, IBM與Novell簽訂合作協議,成功地提供電子商務的解決方案給予原先使用NetWare的用戶。同年更是推出了WebSphere Application Server 3.0,並且推出WebSphere Studio與VisualAge for Java讓工程師可以快速開發相關的程序。2001年,IBM更是宣佈將應用服務器、開發工具整合在一起,與DB2、 Tivoli及Lotus結合成爲一套共通解決方案,如今、IBM更是併入了Rational Rose ( UML tools )讓開發流程更是完整化。

Sun在Web Services的策略方面遠遠落後於微軟與IBM, 當他們手拉手在研訂Web Services規範, 加上IBM買硬件送軟件或是買WebSphere送DB2的策略讓企業大佬們紛紛轉向IBM的陣營, Sun才驚覺大勢已去。WebSphere複雜的安裝,深奧的設定,難以理解的出錯訊息不斷地挑戰開發者的耐心與毅力。

IBM如今已經不是將WebSphere定義爲單一產品,它已經是一個平臺的代名詞。它裏面的產品目前包含了應用服務器、商業整合、電子商務、 數據訊息管理、網絡串流、軟件開發流程、系統管理、無線語音等等。非常多樣化,也讓企業界願意相信WebSphere可以帶給他們一套完整的解決方案。同時, IBM也在推廣SOA的概念, 簡單來說, 利用Web Service的耦合性與工作流程的整合, 爲企業內部打造以服務爲導向的架構。

IBM捐獻出Eclipse帶給Java開發人員對IDE的重新掌握。未來是否會捐獻出WebSphere的哪一個部分成爲OpenSources, 或許, 又是改寫Java世界的時刻了。

 

WebLogic : 技術人的最愛

 

1995年, BEA成立了, 初期以Tuxedo數據轉換的產品爲基礎, 成長之迅速是歷年來最強的企業。 1998年, BEA推出以Java爲基礎的網絡解決方案, 提供了完整的中間層架構, 更同時支持EJB 1.0 及微軟的COM組件, 方便的管理接口擄掠了工程師的心。 在IBM和Oracle尚未準備好迎擊的時候, BEA已經席捲企業應用平臺的市場。 WebLogic無論在市場領先度與技術領導性與策略遠觀性都優於當年的所有應用服務器廠商。

如今WebLogic不僅僅是應用平臺服務器的名稱, 而是BEA對於整個企業解決方案的總稱, 無論是WebLogic Portal或是WebLogic Integration配合着Workshop開發環境, 來自微軟的UI開發團隊讓Workshop幾乎達到所見即所得。 接着, 在下一個版本之中, BEA的BeeHive開放源代碼計劃將釋出中間層控件的開發模塊, 並且與Eclipse合作共同打造新一代的開發環境。 如此強而有力的技術支持, 更是讓顧客願意使用WebLogic平臺的最大原因。

代號爲“Diablo”的 WebLogic Server 9.0小惡魔已經出現了, 目前雖然僅僅是BETA版, 以Portlet 方式打造的管理接口與完整且美妙的WebServices支持, 實在很難找到可以挑剔的地方, 雖然去年被IBM的技術性推銷超越了市場佔有率, 不過接下來SOA的平臺競爭現在纔開始, BEA的LOGO也加入“Think liquid”並且推出新的AquaLogic平臺做爲數據服務平臺, 可見, Java的應用服務器的戰爭, 還會繼續進行着。

 

JBuilder : Java開發工具的王者

 

Java的開發工具中,最出名的莫過於Borland公司的JBuilder了。對於一些沒有弄清楚開發工具與JDK的區別的Java入門者來說,JBuilder就如同Visual C++之於C++,以爲JBuilder就是Java的全部。比起捆綁在服務器上銷售的JDeveloper,JBuilder應該是唯一的僅靠自身的實力而佔領了大部分市場的Java商用開發工具了。而JBuilder作爲Java 開發工具的王者,其奪冠之路並非一帆風順。直到Java的天才Blake Stone成爲JBuilder的Architect之後,JBuilder 2.0以及3.0才逐漸推出。2000年3月14日,JBuilder 3.5的推出別具意義,它成爲了業界第一個用純Java打造的開發工具,也風靡了整個Java開發工具市場。在同年11月份推出的JBuilder 4.0乘勝追擊,衝破了50%的市場佔有率,成爲了真正Java開發工具的王者。

Borland以每半年左右推出一個新版本的速度,讓衆多的對手倒在了沙場。而Microsoft因爲與Sun的官司,也使得一個強大的對手退出了戰爭。2001年,加入了對企業協作支持的JBuilder 5以及強化了團隊開發工具的JBuilder 6打敗了最後一個對手Visual Age For Java。2002年JBuilder 7推出之後,再也沒有其他廠商與JBuilder競爭。

孤獨的王者並沒有停下腳步,在2003年到2005年間,JBuilder也仍然延續了其半年一個版本的速度,推出了8、9、10、2005四個版本。強大的功能以及持續的改進,也讓Java程序員多了一分對能夠在開發工具市場上與Microsoft血拼十數年的Borland的敬仰。

 

Oracle : Java人永遠的情結

 

在林林總總的數據庫之中,有一種尤其令人又愛又恨、印象深刻,那就是關係型數據庫市場的“大佬”——Oracle。

從公司的角度,Oracle和Sun有着諸多相似之處,例如:兩家公司都擁有一位個性鮮明的CEO。早在Java誕生之初的1995年,Oracle就緊隨NetScape從而第二個獲得了Java許可證。從那以後,Oracle對Java的鼎力支持是Java能夠在企業應用領域大獲成功的重要原因之一。

所有J2EE程序員都知道,Oracle的JDBC驅動雖然與Oracle數據庫配合良好,但在不少地方使用了專有特性。其中最爲著名的就是“CLOB/BLOB問題”,諸如此類的問題給開發者帶來了很多麻煩。爲了同時兼顧不同的數據庫,他們不得不經常把自己的一個DAO(數據訪問對象)寫成兩份版本:針對Oracle的版本和針對其他數據庫的版本。有不少人爲了開發便利,捨棄了數據庫之間的可移植性,將自己的產品綁定在Oracle的專有特性上。

Oracle提供的Java開發工具也與此大同小異。不管是數據庫內置的Java支持還是JDeveloper IDE, Oracle的Java工具都和Oracle數據庫有着千絲萬縷的聯繫。看起來,只要Oracle還是數據庫市場上的“頭牌”,瞭解、學習Oracle的專有特性,周旋於Oracle特有的問題和解決方案之中,就將仍舊是J2EE程序員在數據庫基礎和SQL之外的必修功課。對Oracle的愛與恨,也將仍舊是Java人心頭一個難解的情結。

 

Struts、Hibernate : 讓官方框架相形失色的產品

 

好的框架能夠讓項目的開發和維護更加便捷和順利。相比Sun官方標準的遲鈍以及固執,開源框架也更得到Java程序員的共鳴。Struts以及Hibernate就是這樣一類產品,它們簡單、優雅,更讓官方的產品相形失色。

談起Struts,不可避免地就要提及MVC(Model-View-Controller)的理念。而準確地講,MVC的提出卻最早源於JSP的標準。在1998年10月7號,Sun發佈的JSP的0.92的規範中提出的Model 2就是MVC的原型。在1999年12月Java World的大會中,Gavind Seshadri的文章最早闡述了Model 2就是一種MVC的架構,同時也提及了MVC架構是一種最好的開發方法。2000年3月,由Craig McClanahan發佈的Struts成爲了最早支持MVC的框架。Struts在設計上雖然存在一些詬病,但是不可否認的是,它使得Java Web應用的開發更加簡潔和清晰,也讓更多的程序員愛上了Java,並開始遺忘官方的JSP。時至今日,比起如WebWork、Tapestry以及Sun官方的JSF,Struts或多或少存在些不足,但是衆多成功項目的實施,仍然使其牢牢佔據的Java Web應用框架的首位。

Hibernate則在某種程度上改變了人們對構建J2EE的思路。相比其EJB的Entity Bean的映射技術,Hibernate則顯得更加簡潔和強大。五分鐘就能把Hibernate跑起來,讓更多的Java程序員享受到了開發的樂趣。第15屆Jolt大獎中,最優秀數據庫、框架以及組件的獎項中,Hibernate當仁不讓獲得頭籌;不僅如此, Hibernate甚至還影響了官方的標準。在衆多Java程序員翹首以待的EJB 3.0的規範中,Hibernate得到了支持。

Java開源的繁榮不僅讓衆多Java的開發者享受到了更多的便利,甚至影響了官方的標準。恐怕這也是作爲Java人獨有的樂趣之一吧。

 

PetStore : J2EE人的必修課

 

很少有一個例子項目如PetStore這 般廣爲人知,而這很大程度上要歸功於Sun很“英明”地把PetStore做成一個只展示架構而在性能調優上留下了大大餘地的例子。圍繞着性能話題,產生了頗爲有趣的廠商之間以及平臺之間的Pet Wars。除去這些關於性能的流言蜚語乃至中傷,PetStore在展示J2EE1.3平臺的架構、演示什麼叫分層方面還是有着很大的功勞的。而且PetStore在架構方面的豐富性使得其成爲J2EE的那些輕量級小兄弟們展示自身的一個必選科目。

不談那些圍繞PetStore的口水,那些數不盡的盜版,PetStore給開發新手帶來的最重大的影響,我想應該是架構的觀念而不是性能,也不是業務。做爲一種技術的Demo,這無可非議。但是如果你是一個新手,跟着PetStore亦步亦趨地學習J2EE開發,難免會陷入過度設計、華而不實之類的困境。圍繞着.NET的PetStore的克隆PetShop展開的架構與性能的大討論,是不是也在促使我們學習新技術時應該以解決問題爲導向呢?特別是當你想把一個如PetStore這般的Sample Project的技術照搬到你的現實世界的Real Project來時。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章