“Java產生于網絡”,這是幾年前java程序員一直津津樂道的話題,伴隨著互聯網的蓬勃發展,Java也曾有一股氣吞山河,一統天下之勢。然而今天,我們看到PHP占領全球網站應用的大半市場,Microsoft的ASP及.net占領了很大一部份市場(看看國內的各種網站、看看中國的黨政網),還有其它Web開發語言也占據了一部份,最后剩下給Java可謂寥寥無幾。PHP正在以他深得人心的簡易開發優勢快速擴張,如今又冒出個新貴Rails/Ruby在后面耀武揚威宣稱要替代Java、消滅Java。我們不禁感嘆:Java路在何方?
成也蕭何,敗也蕭何。我們認為,造成Java今天之局面的一個主要因素是Java技術的極度靈活,Java技術領域的“有組織、無紀律”。動不動JCP就給你搞一個Specification,管你怎么去實現;Java開發社區TTS及sourceforge.net每天都有新的框架或開源產品發布,最終這些技術及產品到其使用者(軟件企業及程序員)手里時,他們根本不知道該如何選擇。你不跟潮流別人就會笑話你古董,而且最讓java程序員煩惱的莫過于昨天才辛辛苦苦掌握并引以為豪的新技術、新框架,今天就被別人嘲笑你所學會的東西已經落伍、老掉牙。
另外,Java技術的“強大功能”及其“復雜性”也是造成Java應用步履蹣跚,舉步為艱的一個不可忽視的因素。功能的強大是以技術的復雜作為代價,一個功能強大的系統總是由眾多簡單的小系統堆積而成。我們以為:“簡易、實用才是硬道理”!再強大的功能也要以實用為基礎,脫離了實際應用便是空談烏托邦。如果實際應用中不可能用到,那我們又何必花那么多的精力煞費苦心地去搞那么多的設計及構架,(又何必點燈熬油揮汗如雨地去建一個很難登上的空中樓閣呢?)縱觀今天java技術的應用,復雜得有點離普。一個簡單的Web應用動輒就要戴上N層高帽,Web使用Struts(JSF)、持久層用hibernate(JDO/Entity Bean)、還引入了Spring或EJB,要IOC、AOP、支持任意數據庫、支持任意存諸方式、支持組件對象關系任意配置、支持Web Service……如此琳瑯滿目的技術,如此強大的功能,想不復雜?難啊!時至今日,又有誰能象當年IBM總裁郭士納一樣讓Java這個龐大,復雜的大象也能跳跳舞呢?
Java在國內不能得到很好應用的一個主要原因是國產Java技術落伍。在Java世界,開源、優秀的東西很多很多,但基本全是泊來之品。也只有那些技術牛人、大型軟件企業、外資企業,才有實力研究并很好運用。當前還有眾多的中小型軟件企業停留在JSP+Java Bean的時代,很多中小企業甚至老牌軟件企業的CTO或者項目經理到現在還常理直氣壯的說:"客戶不就是要求J2EE平臺嗎?我們的JSP、Tomcat、JBoss不全是J2EE技術嗎?”是的,軟件嘛,能解決問題就行,好不容易花了兩三年搭建起來的技術體系,說換就換,哪有那么容易啊!于是,軟件越來越難以維護,越來越難以擴充,更加無法滿足客戶的新需求。
再看國內很多比較知名的軟件企業提出的一些新開發構架、開發體系、中間件及工具等,其基礎核心仍然是國外引進的東東。比如很多軟件公司開發的快速開發工具,構件開發等,都是以Struts、Spring、Hibernate等為基礎,也就是要用他們的工具,開發東西還得要學Struts、Hibernate等。對于國內很多的初級開發者來說,學習這些框架的難度曲線太大。技術本土化不僅僅是把一門語言翻譯成另外一門語言,更重要是思想的本土化、核心內容的本土化。
說到技術及框架,一個國外的先近技術框架,都是別人先嘗試用了N久證明了它的先進以后,我們國內才有一部份人拿進來開始慢慢學習,然后再宣傳普及,等我們大部分人剛剛學會并以此為榮,奔走相告的時候,人家又搞了一個更加先進的出來。汗顏啊,難道我們只能疲于奔命地被人家牽著鼻子走嗎?
。。。。。。
(本文摘自《EasyJWeb簡易教程》,作者為大峽、眸寬、stef等EasyJF開源團隊成員,轉載請保留作者聲明!)