Java開源框架發展的遐想
上週末在杭州網俠大會做演講的時候,我說:Java開源框架的革命浪潮已經結束了,未來幾年,將是Java語言級別的革命。說實話,自從03年Hibernate火爆,04年spring流行之後,Java開源領域實在太缺乏亮點了。但是,Java的主流開源框架真的一點改進的餘地都沒有了嗎?
先來說說Hibernate吧。Hibernate確實功能強悍,但是Hibernate不夠易用,而且有一些明顯的缺陷:one-to-one必須通過bytecode enhancement才能lazy loading;不支援多型關聯;怪異的inverse配置和維護;DetachedCriteria有明顯的bug;many-to-one的eager fetch設定不夠靈活,讓Hibernate的使用者真是又愛又恨,使用起來戰戰兢兢,如履薄冰阿。Gavin King同學是個很剛愎的人,他似乎從來不覺得這些問題是問題,而且他已經把自己的主要精力放到JBoss Seam產品上面去了,也許我們只好繼續忍受了。那麼JPA呢?JPA標準就像是Hibernate模子裡面刻出來的一樣。但是為什麼人們總是在忍受Hibernate缺陷的同時,卻沒有去努力改進這些問題呢?
我想,問題的關鍵在於一些缺陷的改進需要對Hibernate整個原始碼架構進行傷筋動骨的改動,但是對於Hiberante今天所取得的壟斷地位來說,顯然Hibernate的開發者們已經缺乏足夠改進的勇氣和魄力了。
Springframework,簡直如日中天,定義了輕量級Java企業應用開發的事實標準。但是spring真的很完美嗎?我們已經聽到太多對於spring的xml bean配置檔案的抱怨。也許配置檔案不是太大的問題,spring已經開始嘗試引入annotation。但是spring的致命問題是無法方便的對動態建立的bean進行依賴注入。Google Guice的出現讓我們看到了其實prototype的bean和動態建立的bean其實也可以很容易的管理。spring自身的缺陷事實上造成了很難進行rich domain model架構的實現。
Rod Johnson創辦的interface21公司專職從事spring的諮詢,最近已經得到了1000萬美元的風險投資,是沒有足夠的資源去改進spring嗎?當然不是。是因為spring今天所取得的壟斷地位使得spring的開發者們沒用足夠的勇氣去推翻spring現在的架構,進行重大的改進。
Java的Web框架領域這兩年非常令人失望:Tapestry在升級的過程中不斷的迷失自己,喪失使用者;webwork和struts合併了兩年了,結果只搞出來一個完全webwork版本的struts2.0.6,毫無改進;JSF叫囂的厲害,卻沒有前途;wicket叫好卻不叫座;當年令人眼前一亮的stripes兩年來一直小修小補。
web框架沒有改進餘地了嗎?其實我們稍微想一下,就發現web框架大有改進餘地。例如以struts2.0為例,完全可以仿照RoR,大量使用annotation和CoC,完全消除action的配置檔案,完全消除validations配置檔案,但是struts2.0叫囂了兩年的Zero Configuration,卻乾打雷不下雨。
是的,struts2.0有一個叫做restful的actionmapping,但只是徒有其表。我們想一下,只需要稍微修改一下struts2.0的URL Mapping機制,擴充套件一下FilterDispatcher,再擴充套件幾個URL的JSP Tag,讓Struts2.0完全支援REST架構風格,完全不是什麼難事。為什麼struts2.0兩年以來毫無動靜?實在讓人無法理解。
所以Java社群其實有很多事情可以做,而且難度也未必很大,但很奇怪的是,為什麼社群顯得如此沉寂呢?沒有創新性的產品出來呢?我也想不明白。
原文作者:robbin
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-217885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java和.net 雙語言開發框架,開源的PaaS平臺Java框架
- Swift開發開源框架KatanaSwift框架
- 前端開發必看的幾個開源框架!前端框架
- 中國開源社群的發展狀況
- Java面試寶典之開源框架!Java面試框架
- 5款Java微服務開源框架Java微服務框架
- kendo ui:開源的html5開發框架UIHTML框架
- 開源軟體的發展趨勢(精)
- Linux與開源發展迅猛Linux
- OSDL建立開源基金 推動開源技術的深入發展(轉)
- Java 開源分散式快取框架EhcacheJava分散式快取框架
- 深度學習開發必備開源框架深度學習框架
- 用於微服務開發的 Java 框架微服務Java框架
- 實體“微地址”的遐想
- 開源驅動全球經濟發展
- 三大最棒的開源Web開發模板或框架Web框架
- 十大開源安卓應用程式的開發框架安卓框架
- Java 併發開發:Lock 框架詳解Java框架
- 為什麼機器學習行業的發展離不開 “開源”機器學習行業
- 江民科技加入尤拉開源社群,與開源生態共同發展
- Python開源非同步併發框架Python非同步框架
- 淺談KPI與開源的可持續發展KPI
- Workerman開源框架的作者框架
- 淺談移動跨平臺開發框架的發展歷程框架
- 通過開源如何賺錢生存發展
- CMS發展趨勢之開源、外掛
- Dewdrop:開源事件源框架事件框架
- fusionjs uber開源的通用web外掛化開發框架JSWeb框架
- Python 開源非同步併發框架的未來Python非同步框架
- java開發的職業發展路線是怎樣的?Java
- 小程式開發框架資源集合,你想要的元件化開發小程式的框架都在這裡了。。。框架元件化
- 開源框架(整理)框架
- TOP 13大最熱開源微服務Java框架微服務Java框架
- 5款Java開源日誌框架大比拼Java框架
- 國外評論:中國開源發展緩慢的“病因”
- 剛剛,阿里開源 iOS 協程開發框架 coobjc!阿里iOS框架OBJ
- J2EE開發常用開源框架技術框架
- 邊緣計算開源框架EdgeXFoundry的部署應用開發框架