在Java世界里打拼也好幾年了,也看到了各種不同技術(shù)的浮浮沉沉,倒是發(fā)現(xiàn)了一個(gè)簡(jiǎn)單的規(guī)律,最簡(jiǎn)單的東西往往是最有用的,簡(jiǎn)單的軟件也是種美。
在 Java Web 領(lǐng)域,曾經(jīng)有無(wú)數(shù)各種各樣的框架,Struts1/2,JSF,Echo1/2,Tapestry,Wicket,等等等等了,這么多不同的框架代表了兩個(gè)不同的方向,除了 Struts 這個(gè)是基于請(qǐng)求的,其他幾個(gè)都是算是事件驅(qū)動(dòng)的,但是后面幾個(gè)在整個(gè)市場(chǎng)上所占的份額也趕不上 Struts 一家。HTTP 請(qǐng)求本來(lái)是很簡(jiǎn)單的,而 Struts 就是基于這樣簡(jiǎn)單的概念,但是卻有無(wú)數(shù)人希望重現(xiàn) VB 時(shí)代的那種拖拖拉拉的編程方式,希望用事件驅(qū)動(dòng)一切,但是大部分人都失敗了。失敗的原因也其實(shí)不那么復(fù)雜,有的是不夠成熟,像 JSF 這樣被 Sun 官方大力推崇的框架,但 Ajax 出現(xiàn)的時(shí)候,JSF 中想靈活的用 Ajax 都成了一種奢望,有的是資料太少了。像 Echo2 這樣的框架資料,少的跟珍惜保護(hù)動(dòng)物似的。
當(dāng)然也不是沒(méi)有成功的,微軟憑借其強(qiáng)大的開(kāi)發(fā)實(shí)力,和開(kāi)發(fā)工具的配合,加上沒(méi)有給 ASP.net 用戶(hù)更多選擇余地,取得了無(wú)人匹敵的成功。但是這個(gè)成功在 Java 世界是不會(huì)擁有的,Java 世界沒(méi)有微軟這樣的巨頭,Java 世界中拿得出手的幾個(gè)開(kāi)發(fā)工具,Eclipse,Netbeans,IDEA,在所見(jiàn)即所得的開(kāi)發(fā)上遠(yuǎn)遠(yuǎn)的落后于 Visual Studio。相比微軟帝國(guó),Java 世界多的是中小型的,開(kāi)源的工具產(chǎn)品。規(guī)模上都遠(yuǎn)遠(yuǎn)落后于微軟,Java 世界唯一可走的路便是簡(jiǎn)單了。對(duì) Java 世界來(lái)說(shuō),簡(jiǎn)單不僅僅是種美,更是生存之道。
起初作為 Java 世界 PK 微軟產(chǎn)品的重頭戲,EJB 在學(xué)院派的力捧下誕生了,EJB 似乎從來(lái)都不打算讓人活的輕松,一個(gè)簡(jiǎn)單的東西非得搞的復(fù)雜無(wú)比才行。而且其持久層 Entity Bean,似乎連基本功能都沒(méi)能實(shí)現(xiàn),更別談大規(guī)模使用了。EJB 1/2 的時(shí)代是開(kāi)發(fā)人員永遠(yuǎn)無(wú)法忘卻的噩夢(mèng)。
Java 世界也從來(lái)不缺活躍分子,Rod Johnson 這個(gè)有種音樂(lè)家氣質(zhì)的牛人憑借自己多年的積累,推出了 Springframework,這樣一個(gè)基于 IoC 和 AOP 兩個(gè)概念的簡(jiǎn)單易用的框架,完成了很多起初只有 EJB 才能完成的工作,Spring 也一夜成名,成為 Java 世界使用最為廣泛的輕量級(jí)應(yīng)用框架。
幾乎是同時(shí),來(lái)自澳洲的小帥哥 Gavin King 也在用一種與眾不同的方案去替代現(xiàn)有比較復(fù)雜的 Java 持久化方案,最后他的 Hibernate 也成為替代原有 EJB 持久化方案的選擇。相對(duì)簡(jiǎn)單的 Hibernate 也取得了巨大的成功。
其實(shí)這樣的例子在 Java 世界也非常多,以至于后來(lái)來(lái)自于 Ruby 開(kāi)發(fā)社區(qū)的 Ruby on Rails 的出現(xiàn),給了 Java 開(kāi)發(fā)者當(dāng)頭一棒,原來(lái)還有更簡(jiǎn)單的做法哦。于是 Java 世界慢慢的開(kāi)始對(duì)多種腳本語(yǔ)言進(jìn)行支持,包括 Ruby,以及后來(lái)自創(chuàng)的 Groovy。以此去打造類(lèi)似 RoR 那樣簡(jiǎn)單的開(kāi)放方式。
生活其實(shí)是很簡(jiǎn)單的,軟件開(kāi)發(fā)其實(shí)也是一樣,用簡(jiǎn)單的方式,去打造簡(jiǎn)單的軟件,Java 世界用無(wú)數(shù)失敗的教訓(xùn)證明了這一點(diǎn)。像我呢,也喜歡用這樣簡(jiǎn)單的方式去工作,最喜歡 IDEA 去寫(xiě)代碼,最喜歡 Struts2 + Spring2 + Hibernate3 這套組合,最最喜歡的是簡(jiǎn)單,因?yàn)楹?jiǎn)單是最美的工作方式。