2004開發技術年度綜述之Java世界
2004年Java世界發生了巨大變化,主要方面是誕生和發展了幾個新名詞:IOC 、AOP、SOA、MDA,當然,除了這些都是決定Java技術未來走向的革命性發展以外,還有很多細部和微觀的發展,我們先來談談這些重要的細節技術發展。
首先, Java的根基JDK已經跨越到了J2SE 1.5,或者稱為J2SE 5.0,不過,我更喜歡稱它為1.5,延續性是我們應用程序員更關心的,當然革命性是那些新技術發明者更陶醉的,所以他們曾經取名J2SE 2.0,現在,為了表示這種跨越,而且跨越是非常巨大,一下子達到了J2SE5.0,非常夸張,不過老外在技術上確實經常極端,"偏執者才能生存"我想是其行動主義文化的主要基礎。
J2SE1.5 最吸引眼球的我認為主要是annotate特性,該特性可以大大降低程序員的編程量,它和Java Relfect機制結合,可以編制出相當靈活的軟件系統或框架。
從J2SE1.5看出,SUN正在試圖簡化Java,但是也許這一簡化動作來得遲了點。
同樣,珊珊來遲的是J2EE Web層的一個標準JSF,JSF使得程序員在開發J2EE的Web程序時,能夠如同開發SWING那樣實現可視化開發,提高了開發效率,但是必須有高級開發工具支持。
由于好東西來得太遲,在一份最近調查中顯示,開源項目Struts已經在J2EE實際Web層開發中占據主導地位,Struts在2004年是達到成熟頂點,它的主要特點是將Form表單對象化,同時提供簡單的XML標簽替代以前Jsp中的Java語言,這樣在Jsp中徹底消滅了Java代碼,除了Struts,Tapestry這種徹底拋棄Jsp的開源Web框架產品也值得一提,它和WebWork一起成為一顆引人注目的星星。
2004年發生了太多新的激動人心的事情,其中最引人注目的是AOP和SOA的迅速發展,Java世界的發展一直以來是分兩條路線,第一條是工業路線,以SUN、IBM、BEA和Oracle等工業巨頭為代表的業界標準,當工業巨頭制定出EJB 2.0以后,他們認為在JavaBeans技術框架內EJB已經走到極限,基本無需太多發展,因此,他們將關注目光投向軟件系統服務功能上,當一個個EJB組件提供了可重用的功能后,如何向不同客戶輸出這些強大的、可重用的功能呢?是反復安裝拷貝這些組件功能?還是以一種服務的方式適時提供全面的租用?SOA面向服務架構因此提出來,并且得到工業界巨頭的大量投入和發展,同時,他們還在關注流程的可定制化和可視化開發,通過強大的開發平臺,可以很輕松地完成工作流的業務定制和修改。
當業界巨頭關注重點從JavaBeans結構轉移時,一種新的設計思想和編程風格AOP(面向方面編程)誕生了,面向方面編程是OOP面向對象編程的延續,AOP于2003年底已經在國外熱起來,到了2004年應該算是全面開花,各種AOP產品如JBoss 4.0、Spring、Aspectwerkz等迅速誕生和發展,帶給程序員全新的概念和理念沖擊,AOP編程方法可以應用在軟件開發的各個領域,當你發現某個功能具有普遍性和通用性以后,那么這個功能也許可以使用AOP實現,這樣你的代碼優雅,同時可維護性和拓展性大大增強。
Ioc反轉控制應該說有著AOP類似解耦思路,通過Ioc模式或容器,可以比較徹底分離JavaBeans之間的調用和被調用關系,達到真正地面向接口編程,是Ioc使的面向接口編程變得更具有意義而且重要,Ioc的產品如純潔的PicoContainer以及Spring等等。
開源和業界標準的分歧不僅僅體現在JavaBeans體系發展上,還體現在對象持久化方式上,在2004年有三種流行的對象持久化在被廣泛使用:EJB的CMP、Hibernate和JDO,這三者之間的區別和聯系也是很多程序員津津樂道的,特別是Hibernate的創始人Gavin King不斷對JDO的質疑,使的Hibernate名氣大升,也使的JDO一直未能夠進入EJB的持久化標準,Spring+Hibernate架構以及使用基于JBoss的EJB架構成為低成本高質量J2EE流行架構。
這種"混亂"的局面下,EJB 3.0標準Preview方案被2004年Java ONE大會首次提出,EJB 3.0試圖取悅那些輕量方案的追隨者,同時又能兼顧過去EJB標準的系列發展,JBoss迅速地提供了對EJB3.0支持包,其中我們看到了Gavin King這位斗士的身影。
同時,Hibernate向何處去是我們應用系統程序員關心的,Struts 2.0正在向JSF標準靠攏和遷移,Hibernate是否能夠一直孤軍作戰?目前一項旨在統一J2EE持久層技術的標準方案正在啟動中,我們期望簡單統一的持久層方案出臺,減少程序員選擇遷移之苦。
2004年又是Java世界吵鬧的一年,有的程序員說:現在學java卻越學越糊涂,看了很多東西,不但大腦里沒有頭緒,反而有種走火入魔的感覺,因為各種技術派別都在爭奪話語權,話語權的爭奪意味著商機的誕生,JBoss和Spring的開發團體先后轉為商業公司是一個證明。對于應用者來說,沒有永遠的解決方案,只有合適的工具,Java世界提供給你的是工具箱,而非一種選擇,需求是選擇工具的唯一原因。
讓我們視野從J2EE思想和技術之爭轉移到需求分析領域的領域,在這個領域一直也存在兩種意見:面向數據表分析還是面向模型分析?也就是說,建立一個新的系統,是先分析設計數據表還是模型,前者是以前數據庫系統經常采取的方式,但是這一傳統的方式目前也受到OO對象的沖擊,MDA(面向模型分析)在2004年成熟開花,各種Java成品也如雨后春筍一樣遍地開花,MDA思想提出了極端觀點:將來只有建模專家(其它程序員都變成藍領工人了),只要建模專家通過UML設計出一個系統的模型,通過特定的Java MDA工具就可自動生成相應的代碼,好像真的不需要普通程序員了。
結束語
總之,2004年的Java技術帶給我們更多的是激動和壓力,新技術發展以月計算,作為程序員的我們如何跟上這些新技術發展,同時能夠選擇正確的技術引入我們自己的應用系統,這些才是我們的真正挑戰。
首先, Java的根基JDK已經跨越到了J2SE 1.5,或者稱為J2SE 5.0,不過,我更喜歡稱它為1.5,延續性是我們應用程序員更關心的,當然革命性是那些新技術發明者更陶醉的,所以他們曾經取名J2SE 2.0,現在,為了表示這種跨越,而且跨越是非常巨大,一下子達到了J2SE5.0,非常夸張,不過老外在技術上確實經常極端,"偏執者才能生存"我想是其行動主義文化的主要基礎。
J2SE1.5 最吸引眼球的我認為主要是annotate特性,該特性可以大大降低程序員的編程量,它和Java Relfect機制結合,可以編制出相當靈活的軟件系統或框架。
從J2SE1.5看出,SUN正在試圖簡化Java,但是也許這一簡化動作來得遲了點。
同樣,珊珊來遲的是J2EE Web層的一個標準JSF,JSF使得程序員在開發J2EE的Web程序時,能夠如同開發SWING那樣實現可視化開發,提高了開發效率,但是必須有高級開發工具支持。
由于好東西來得太遲,在一份最近調查中顯示,開源項目Struts已經在J2EE實際Web層開發中占據主導地位,Struts在2004年是達到成熟頂點,它的主要特點是將Form表單對象化,同時提供簡單的XML標簽替代以前Jsp中的Java語言,這樣在Jsp中徹底消滅了Java代碼,除了Struts,Tapestry這種徹底拋棄Jsp的開源Web框架產品也值得一提,它和WebWork一起成為一顆引人注目的星星。
2004年發生了太多新的激動人心的事情,其中最引人注目的是AOP和SOA的迅速發展,Java世界的發展一直以來是分兩條路線,第一條是工業路線,以SUN、IBM、BEA和Oracle等工業巨頭為代表的業界標準,當工業巨頭制定出EJB 2.0以后,他們認為在JavaBeans技術框架內EJB已經走到極限,基本無需太多發展,因此,他們將關注目光投向軟件系統服務功能上,當一個個EJB組件提供了可重用的功能后,如何向不同客戶輸出這些強大的、可重用的功能呢?是反復安裝拷貝這些組件功能?還是以一種服務的方式適時提供全面的租用?SOA面向服務架構因此提出來,并且得到工業界巨頭的大量投入和發展,同時,他們還在關注流程的可定制化和可視化開發,通過強大的開發平臺,可以很輕松地完成工作流的業務定制和修改。
當業界巨頭關注重點從JavaBeans結構轉移時,一種新的設計思想和編程風格AOP(面向方面編程)誕生了,面向方面編程是OOP面向對象編程的延續,AOP于2003年底已經在國外熱起來,到了2004年應該算是全面開花,各種AOP產品如JBoss 4.0、Spring、Aspectwerkz等迅速誕生和發展,帶給程序員全新的概念和理念沖擊,AOP編程方法可以應用在軟件開發的各個領域,當你發現某個功能具有普遍性和通用性以后,那么這個功能也許可以使用AOP實現,這樣你的代碼優雅,同時可維護性和拓展性大大增強。
Ioc反轉控制應該說有著AOP類似解耦思路,通過Ioc模式或容器,可以比較徹底分離JavaBeans之間的調用和被調用關系,達到真正地面向接口編程,是Ioc使的面向接口編程變得更具有意義而且重要,Ioc的產品如純潔的PicoContainer以及Spring等等。
開源和業界標準的分歧不僅僅體現在JavaBeans體系發展上,還體現在對象持久化方式上,在2004年有三種流行的對象持久化在被廣泛使用:EJB的CMP、Hibernate和JDO,這三者之間的區別和聯系也是很多程序員津津樂道的,特別是Hibernate的創始人Gavin King不斷對JDO的質疑,使的Hibernate名氣大升,也使的JDO一直未能夠進入EJB的持久化標準,Spring+Hibernate架構以及使用基于JBoss的EJB架構成為低成本高質量J2EE流行架構。
這種"混亂"的局面下,EJB 3.0標準Preview方案被2004年Java ONE大會首次提出,EJB 3.0試圖取悅那些輕量方案的追隨者,同時又能兼顧過去EJB標準的系列發展,JBoss迅速地提供了對EJB3.0支持包,其中我們看到了Gavin King這位斗士的身影。
同時,Hibernate向何處去是我們應用系統程序員關心的,Struts 2.0正在向JSF標準靠攏和遷移,Hibernate是否能夠一直孤軍作戰?目前一項旨在統一J2EE持久層技術的標準方案正在啟動中,我們期望簡單統一的持久層方案出臺,減少程序員選擇遷移之苦。
2004年又是Java世界吵鬧的一年,有的程序員說:現在學java卻越學越糊涂,看了很多東西,不但大腦里沒有頭緒,反而有種走火入魔的感覺,因為各種技術派別都在爭奪話語權,話語權的爭奪意味著商機的誕生,JBoss和Spring的開發團體先后轉為商業公司是一個證明。對于應用者來說,沒有永遠的解決方案,只有合適的工具,Java世界提供給你的是工具箱,而非一種選擇,需求是選擇工具的唯一原因。
讓我們視野從J2EE思想和技術之爭轉移到需求分析領域的領域,在這個領域一直也存在兩種意見:面向數據表分析還是面向模型分析?也就是說,建立一個新的系統,是先分析設計數據表還是模型,前者是以前數據庫系統經常采取的方式,但是這一傳統的方式目前也受到OO對象的沖擊,MDA(面向模型分析)在2004年成熟開花,各種Java成品也如雨后春筍一樣遍地開花,MDA思想提出了極端觀點:將來只有建模專家(其它程序員都變成藍領工人了),只要建模專家通過UML設計出一個系統的模型,通過特定的Java MDA工具就可自動生成相應的代碼,好像真的不需要普通程序員了。
結束語
總之,2004年的Java技術帶給我們更多的是激動和壓力,新技術發展以月計算,作為程序員的我們如何跟上這些新技術發展,同時能夠選擇正確的技術引入我們自己的應用系統,這些才是我們的真正挑戰。