Posted on 2006-03-21 00:08
ikingqu 閱讀(460)
評論(0) 編輯 收藏
Sun JDK :Java的基石
文/莫映
眾所周知,流傳于市的JDK不單Sun一家,比如IBM的JDK、BEA的JRocket、GNU的GCJ,以及如Kaffe這樣的開源實現(xiàn),不一而足。但是,根正苗紅的Sun官方JDK一直以來都是備受矚目的主流,它對Java社區(qū)的影響也是舉足輕重。
1996年1月,Sun在成立了JavaSoft部門之后,推出了JDK 1.0,這是Sun JDK(Java Development Kit)的首個正式版本;當(dāng)年12月,JDK1.1出爐。該版除了對前序版本部分特性做了改進(jìn)以外,重寫了AWT,采用了新的事件模型。1998年12月,JDK 1.2正式發(fā)布。此時的類庫日臻完善,API已從當(dāng)初的200個類發(fā)展到了1600個類。在1.2版本中引入了用100%純Java代碼寫就的Swing,同時,Sun將Java更名為Java 2。
1999年,Java 技術(shù)形成了J2SE、J2EE和J2ME三大格局。Sun向世人公布了Java HotSpot性能引擎技術(shù)的研究成果。HotSpot旨在進(jìn)一步改善JVM性能,提高Java ByteCode的產(chǎn)生品質(zhì),加快Java應(yīng)用程序的執(zhí)行速度。J2SE 1.3發(fā)布于2000年;2002年2月間,J2SE 1.4問世,這是有JCP參與以來首個J2SE的發(fā)行版本。2004年9月30日,代號為“Tiger”的J2SE 5.0終于出籠了,這次發(fā)布被譽為Java平臺歷來發(fā)布中特性變動最大的一次。包括泛型在內(nèi)的若干重大語法改進(jìn)、元數(shù)據(jù)支持,包括多線程、JDBC在內(nèi)的多項類庫改進(jìn),都令廣大Java程序員激動不已。自此,Sun的官方JDK(J2SE Development Kit)已經(jīng)步入了一個新的高度。
Eclipse :以架構(gòu)贏天下
文/惡魔
IBM是在2001年以4000萬美元種子基金成立Eclipse聯(lián)盟,并且捐贈了不少程序代碼。如今,該組織有91個會員,包含許多全球最大的軟件商。根據(jù)Evans Data公司的資料,Eclipse是目前最受歡迎的Java開發(fā)工具。
Java廠商若要共同對抗微軟,彼此之間就要有共同的開發(fā)工具才行。
在Eclipse平臺上,程序員可使用好幾種不同的語言。在前端方面,用戶可整合多種工具來撰寫Plug-in程序或Unit Test。Eclipse最大的特色就在于其完全開放的體系結(jié)構(gòu),這代表任何人都可下載并修改程序代碼,給Eclipse寫插件,讓它做任何你能想到的事情,即所謂“Design for everything but nothing in particular”。
Eclipse基金會的架構(gòu)比較特別,反映出企業(yè)現(xiàn)今對于開放原始碼計劃也越來越積極主動。Eclipse不像一般開放源碼軟件容許個人的捐獻(xiàn)程序,該基金會是由廠商主導(dǎo)。不論是董事會成員或者是程序贊助者幾乎都來自于獨立軟件開發(fā)商(ISVs)的員工。
Eclipse首席執(zhí)行官Mike Milinkovich說,這種廠商會員制是特意設(shè)計的;他說Eclispe軟件開發(fā)快速就是因為會員制的關(guān)系,同時又加上開放源碼開發(fā)模式的臨門一腳。這與一般透過標(biāo)準(zhǔn)組織的做法全然不同。 這其實正好驗證了一句老話:“開放即標(biāo)準(zhǔn)”。
JUnit/Ant : 讓Java自動化的絕代雙驕
文/劉鐵鋒
在Java程序員必備的工具中,共 同擁有且交口稱贊的恐怕就非JUnit、Ant莫屬了。一個是單元測試的神兵利器,一個是編譯部署的不二之選,它們讓Java的開發(fā)更簡單。
JUnit由XP和TDD的創(chuàng)始人、軟件大師Kent Back以及Eclipse架構(gòu)師之一、設(shè)計模式之父Erich Gamma共同打造。名家的手筆和理念使得JUnit簡單而強大,它將Java程序員代入了測試驅(qū)動開發(fā)的時代。JUnit連任了2001、2002年“Java World編輯選擇獎”以及2003年“Java World最佳測試工具”和2003年“Java Pro最佳Java測試工具”等眾多獎項,深受Java程序員好評。
Ant是開源項目的典范,它讓IDE的功能更加強大,從Sun的NetBeans到JBuilder,主流的IDE中處處都有它的身影。“Another Neat Tool”原是它的本名,但這已經(jīng)漸漸不為人知。它徹底地讓部署自動化,而程序員需要做的僅僅是幾條簡單的配置命令。和JUnit一樣,Ant也榮獲了眾多的殊榮:2003年JavaWorld“最有用的Java社區(qū)開發(fā)的技術(shù)編輯選擇獎”, 2003年Java Pro“最有價值的Java部署技術(shù)讀者選擇獎”,2003年“JDJ編輯選擇獎”,也讓Ant受到的多方的認(rèn)可。
Ant對JUnit的全面集成,則使得一切都變得更加完美。只需簡單地配置,從自動測試到報告生成,從編譯到打包部署均可自動完成。強大的功能,簡單的配置,讓Java程序員高枕無憂。實可謂讓Java自動化的絕代雙驕。
Websphere : 活吞市場的大鯨
文/jini
1999年, IBM與Novell簽訂合作協(xié)議,成功地提供電子商務(wù)的解決方案給予原先使用NetWare的用戶。同年更是推出了WebSphere Application Server 3.0,并且推出WebSphere Studio與VisualAge for Java讓工程師可以快速開發(fā)相關(guān)的程序。2001年,IBM更是宣布將應(yīng)用服務(wù)器、開發(fā)工具整合在一起,與DB2、 Tivoli及Lotus結(jié)合成為一套共通解決方案,如今、IBM更是并入了Rational Rose ( UML tools )讓開發(fā)流程更是完整化。
Sun在Web Services的策略方面遠(yuǎn)遠(yuǎn)落后于微軟與IBM, 當(dāng)他們手拉手在研訂Web Services規(guī)范, 加上IBM買硬件送軟件或是買WebSphere送DB2的策略讓企業(yè)大佬們紛紛轉(zhuǎn)向IBM的陣營, Sun才驚覺大勢已去。WebSphere復(fù)雜的安裝,深奧的設(shè)定,難以理解的出錯訊息不斷地挑戰(zhàn)開發(fā)者的耐心與毅力。
IBM如今已經(jīng)不是將WebSphere定義為單一產(chǎn)品,它已經(jīng)是一個平臺的代名詞。它里面的產(chǎn)品目前包含了應(yīng)用服務(wù)器、商業(yè)整合、電子商務(wù)、 數(shù)據(jù)訊息管理、網(wǎng)絡(luò)串流、軟件開發(fā)流程、系統(tǒng)管理、無線語音等等。非常多樣化,也讓企業(yè)界愿意相信WebSphere可以帶給他們一套完整的解決方案。同時, IBM也在推廣SOA的概念, 簡單來說, 利用Web Service的耦合性與工作流程的整合, 為企業(yè)內(nèi)部打造以服務(wù)為導(dǎo)向的架構(gòu)。
IBM捐獻(xiàn)出Eclipse帶給Java開發(fā)人員對IDE的重新掌握。未來是否會捐獻(xiàn)出WebSphere的哪一個部分成為OpenSources, 或許, 又是改寫Java世界的時刻了。
WebLogic : 技術(shù)人的最愛
文/jini
1995年, BEA成立了, 初期以Tuxedo數(shù)據(jù)轉(zhuǎn)換的產(chǎn)品為基礎(chǔ), 成長之迅速是歷年來最強的企業(yè)。 1998年, BEA推出以Java為基礎(chǔ)的網(wǎng)絡(luò)解決方案, 提供了完整的中間層架構(gòu), 更同時支持EJB 1.0 及微軟的COM組件, 方便的管理接口擄掠了工程師的心。 在IBM和Oracle尚未準(zhǔn)備好迎擊的時候, BEA已經(jīng)席卷企業(yè)應(yīng)用平臺的市場。 WebLogic無論在市場領(lǐng)先度與技術(shù)領(lǐng)導(dǎo)性與策略遠(yuǎn)觀性都優(yōu)于當(dāng)年的所有應(yīng)用服務(wù)器廠商。
如今WebLogic不僅僅是應(yīng)用平臺服務(wù)器的名稱, 而是BEA對于整個企業(yè)解決方案的總稱, 無論是WebLogic Portal或是WebLogic Integration配合著Workshop開發(fā)環(huán)境, 來自微軟的UI開發(fā)團(tuán)隊讓W(xué)orkshop幾乎達(dá)到所見即所得。 接著, 在下一個版本之中, BEA的BeeHive開放源代碼計劃將釋出中間層控件的開發(fā)模塊, 并且與Eclipse合作共同打造新一代的開發(fā)環(huán)境。 如此強而有力的技術(shù)支持, 更是讓顧客愿意使用WebLogic平臺的最大原因。
代號為“Diablo”的 WebLogic Server 9.0小惡魔已經(jīng)出現(xiàn)了, 目前雖然僅僅是BETA版, 以Portlet 方式打造的管理接口與完整且美妙的WebServices支持, 實在很難找到可以挑剔的地方, 雖然去年被IBM的技術(shù)性推銷超越了市場占有率, 不過接下來SOA的平臺競爭現(xiàn)在才開始, BEA的LOGO也加入“Think liquid”并且推出新的AquaLogic平臺做為數(shù)據(jù)服務(wù)平臺, 可見, Java的應(yīng)用服務(wù)器的戰(zhàn)爭, 還會繼續(xù)進(jìn)行著。
JBuilder : Java開發(fā)工具的王者
文/劉鐵鋒
Java的開發(fā)工具中,最出名的莫過于Borland公司的JBuilder了。對于一些沒有弄清楚開發(fā)工具與JDK的區(qū)別的Java入門者來說,JBuilder就如同Visual C++之于C++,以為JBuilder就是Java的全部。比起捆綁在服務(wù)器上銷售的JDeveloper,JBuilder應(yīng)該是唯一的僅靠自身的實力而占領(lǐng)了大部分市場的Java商用開發(fā)工具了。而JBuilder作為Java 開發(fā)工具的王者,其奪冠之路并非一帆風(fēng)順。直到Java的天才Blake Stone成為JBuilder的Architect之后,JBuilder 2.0以及3.0才逐漸推出。2000年3月14日,JBuilder 3.5的推出別具意義,它成為了業(yè)界第一個用純Java打造的開發(fā)工具,也風(fēng)靡了整個Java開發(fā)工具市場。在同年11月份推出的JBuilder 4.0乘勝追擊,沖破了50%的市場占有率,成為了真正Java開發(fā)工具的王者。
Borland以每半年左右推出一個新版本的速度,讓眾多的對手倒在了沙場。而Microsoft因為與Sun的官司,也使得一個強大的對手退出了戰(zhàn)爭。2001年,加入了對企業(yè)協(xié)作支持的JBuilder 5以及強化了團(tuán)隊開發(fā)工具的JBuilder 6打敗了最后一個對手Visual Age For Java。2002年JBuilder 7推出之后,再也沒有其他廠商與JBuilder競爭。
孤獨的王者并沒有停下腳步,在2003年到2005年間,JBuilder也仍然延續(xù)了其半年一個版本的速度,推出了8、9、10、2005四個版本。強大的功能以及持續(xù)的改進(jìn),也讓Java程序員多了一分對能夠在開發(fā)工具市場上與Microsoft血拼十?dāng)?shù)年的Borland的敬仰。
Oracle : Java人永遠(yuǎn)的情結(jié)
文/熊節(jié)
在林林總總的數(shù)據(jù)庫之中,有一種尤其令人又愛又恨、印象深刻,那就是關(guān)系型數(shù)據(jù)庫市場的“大佬”——Oracle。
從公司的角度,Oracle和Sun有著諸多相似之處,例如:兩家公司都擁有一位個性鮮明的CEO。早在Java誕生之初的1995年,Oracle就緊隨NetScape從而第二個獲得了Java許可證。從那以后,Oracle對Java的鼎力支持是Java能夠在企業(yè)應(yīng)用領(lǐng)域大獲成功的重要原因之一。
所有J2EE程序員都知道,Oracle的JDBC驅(qū)動雖然與Oracle數(shù)據(jù)庫配合良好,但在不少地方使用了專有特性。其中最為著名的就是“CLOB/BLOB問題”,諸如此類的問題給開發(fā)者帶來了很多麻煩。為了同時兼顧不同的數(shù)據(jù)庫,他們不得不經(jīng)常把自己的一個DAO(數(shù)據(jù)訪問對象)寫成兩份版本:針對Oracle的版本和針對其他數(shù)據(jù)庫的版本。有不少人為了開發(fā)便利,舍棄了數(shù)據(jù)庫之間的可移植性,將自己的產(chǎn)品綁定在Oracle的專有特性上。
Oracle提供的Java開發(fā)工具也與此大同小異。不管是數(shù)據(jù)庫內(nèi)置的Java支持還是JDeveloper IDE, Oracle的Java工具都和Oracle數(shù)據(jù)庫有著千絲萬縷的聯(lián)系。看起來,只要Oracle還是數(shù)據(jù)庫市場上的“頭牌”,了解、學(xué)習(xí)Oracle的專有特性,周旋于Oracle特有的問題和解決方案之中,就將仍舊是J2EE程序員在數(shù)據(jù)庫基礎(chǔ)和SQL之外的必修功課。對Oracle的愛與恨,也將仍舊是Java人心頭一個難解的情結(jié)。
Struts、Hibernate : 讓官方框架相形失色的產(chǎn)品
文/劉鐵鋒
好的框架能夠讓項目的開發(fā)和維護(hù)更加便捷和順利。相比Sun官方標(biāo)準(zhǔn)的遲鈍以及固執(zhí),開源框架也更得到Java程序員的共鳴。Struts以及Hibernate就是這樣一類產(chǎn)品,它們簡單、優(yōu)雅,更讓官方的產(chǎn)品相形失色。
談起Struts,不可避免地就要提及MVC(Model-View-Controller)的理念。而準(zhǔn)確地講,MVC的提出卻最早源于JSP的標(biāo)準(zhǔn)。在1998年10月7號,Sun發(fā)布的JSP的0.92的規(guī)范中提出的Model 2就是MVC的原型。在1999年12月Java World的大會中,Gavind Seshadri的文章最早闡述了Model 2就是一種MVC的架構(gòu),同時也提及了MVC架構(gòu)是一種最好的開發(fā)方法。2000年3月,由Craig McClanahan發(fā)布的Struts成為了最早支持MVC的框架。Struts在設(shè)計上雖然存在一些詬病,但是不可否認(rèn)的是,它使得Java Web應(yīng)用的開發(fā)更加簡潔和清晰,也讓更多的程序員愛上了Java,并開始遺忘官方的JSP。時至今日,比起如WebWork、Tapestry以及Sun官方的JSF,Struts或多或少存在些不足,但是眾多成功項目的實施,仍然使其牢牢占據(jù)的Java Web應(yīng)用框架的首位。
Hibernate則在某種程度上改變了人們對構(gòu)建J2EE的思路。相比其EJB的Entity Bean的映射技術(shù),Hibernate則顯得更加簡潔和強大。五分鐘就能把Hibernate跑起來,讓更多的Java程序員享受到了開發(fā)的樂趣。第15屆Jolt大獎中,最優(yōu)秀數(shù)據(jù)庫、框架以及組件的獎項中,Hibernate當(dāng)仁不讓獲得頭籌;不僅如此, Hibernate甚至還影響了官方的標(biāo)準(zhǔn)。在眾多Java程序員翹首以待的EJB 3.0的規(guī)范中,Hibernate得到了支持。
Java開源的繁榮不僅讓眾多Java的開發(fā)者享受到了更多的便利,甚至影響了官方的標(biāo)準(zhǔn)。恐怕這也是作為Java人獨有的樂趣之一吧。
PetStore : J2EE人的必修課
文/陶文
很少有一個例子項目如PetStore這 般廣為人知,而這很大程度上要歸功于Sun很“英明”地把PetStore做成一個只展示架構(gòu)而在性能調(diào)優(yōu)上留下了大大余地的例子。圍繞著性能話題,產(chǎn)生了頗為有趣的廠商之間以及平臺之間的Pet Wars。除去這些關(guān)于性能的流言蜚語乃至中傷,PetStore在展示J2EE1.3平臺的架構(gòu)、演示什么叫分層方面還是有著很大的功勞的。而且PetStore在架構(gòu)方面的豐富性使得其成為J2EE的那些輕量級小兄弟們展示自身的一個必選科目。
不談那些圍繞PetStore的口水,那些數(shù)不盡的盜版,PetStore給開發(fā)新手帶來的最重大的影響,我想應(yīng)該是架構(gòu)的觀念而不是性能,也不是業(yè)務(wù)。做為一種技術(shù)的Demo,這無可非議。但是如果你是一個新手,跟著PetStore亦步亦趨地學(xué)習(xí)J2EE開發(fā),難免會陷入過度設(shè)計、華而不實之類的困境。圍繞著.NET的PetStore的克隆PetShop展開的架構(gòu)與性能的大討論,是不是也在促使我們學(xué)習(xí)新技術(shù)時應(yīng)該以解決問題為導(dǎo)向呢?特別是當(dāng)你想把一個如PetStore這般的Sample Project的技術(shù)照搬到你的現(xiàn)實世界的Real Project來時。