J2SE 推出後,以其跨平台及友好的API迅速獲得青睐。J2EE的推出,令Java作為首選的
開發環境迅速占領市場。但好景不長。至今為止,以Java為開發環境的開發越來越變得
復雜艱難。Java EE已經變得臃腫龐大,開發台階與開發成本提高,開發效率下降,維護
成本提高。
原因很多。
其一,對普通用戶來說,Java1.5 與Java1.4相比,並沒有實質性的提高。Java1.5
增加了些什莫呢?不論 Auto boxing還是 Generics,對Java本身非但沒有實質性的
提高,反而將Java糟蹋得夠嗆。
其二,Java EE 與 J2EE相比,也沒有實質性的提高。EJB3只是將後台的配置轉移到了
源代碼中,利用Annotation來“修飾”源代碼。經過一番“修飾”和相關資源“修飾”
性“注入”後,源代碼已經很難看了@@@@
其三,這與Java 社區的演變也有緊密地關系,Java 作為開源平台與開源社區有著千絲
萬縷的聯系。Spring的出現,將Java開發一劈兩半兒。EJB or No EJB 看起來是設計
選擇問題,其實是嚴重影響了Java社區的健康發展:Java社區分裂了。
其四,Framework贻害無窮。Java社區的各種各樣的所謂開發框架層出不窮,弊端無數。
主要有四:一是推高了Java開發人員的入門門檻,嚴重加重了Java從業人員的學習負擔;
二是各種框架將基本的開發技能封閉在其所謂的框架之內,一般開發人員沒有精力,也沒
有興趣研究透徹,失去了學習理解解決問題的基本開發技能的機會,成為真正的軟件藍領;
三是框架的應用,使整個設計復雜化,開發維護復雜困難,效率低下。四是各種框架的配
置復雜,使得開發工作變了味。這配置成了開發工作的攔路虎,到處是XML文件,也不知
道我們是在用Java編程還是在用XML編程。
其五,普通的Java開發人員需要掌握太多技術。以Web Application為例,前台要用框架
提供的標簽,另外要懂Html,CSS,Javascript,AJax,JSP/servlet;中間流控制要采用框
架的編程接口,還要明白Java,jndi,ejb;後台又要用持久化編程接口,又要搞清楚jdbc,
transaction,databases。還要掌握通訊協議,弄清楚滿天亂飛的annotation,XML配置文
件;可以想象,一個普通的Java開發人員需要掌握多少技術,熟悉多少API和所謂的框架們
才能干活兒,更別提那各種各樣的花錢與不花錢Application Server了?這還沒提開發工
具,單元測試及源代碼管理,公司業務等等。開發人員一跳槽,這一切都變了:跳不動啊!
你看看獵頭公司列出的對Java開發人員的技術要求條件。我的天,誰能掌握甚至精通那些
技術?James Gosling能掌握得了嗎?