為什么大家瞧不起國內(nèi)的開源
年前寫了幾篇有關(guān)國內(nèi)開源的文章,看到網(wǎng)友們的回復(fù),感到非常悲哀,給我的感受是:大家都瞧不起國內(nèi)的開源。我看blogjava上,只要是介紹國外開源技術(shù)如struts2、ext、spring的,不管文章質(zhì)量如何,大家都叫好;而只要發(fā)現(xiàn)寫介紹國內(nèi)開源如jdon、springside、Operamasks、easyjweb的文章,不管質(zhì)量如何,都會被大家諷刺為“托”,或者是都被罵等。這是一個非常怪的現(xiàn)象,像blogjava這樣提倡完全言論自由的社區(qū)都這樣,大家可以想象對于javaeye那樣由一小部份人主宰的“民•主”社區(qū)會怎樣?從這里現(xiàn)象可以看出,在很多人骨子里就印著:“中國人不可能做出像樣的開源,做出的開源都是垃圾”類似的標(biāo)簽。
其實(shí)在我寫的“第三只眼”系列文章中,都是在對這些框架進(jìn)行較為細(xì)致的研究才得出的結(jié)論,而且所寫的也完全是事實(shí),至少到現(xiàn)在還沒有哪一個當(dāng)事人可以說我亂寫了他們的東西吧。
很多人都說我只是盲目地夸國內(nèi)的開源同仁們,沒看到他們的不足,不客觀,但是大家是否又看過我文中指出的這些開源項(xiàng)目中不足方面的內(nèi)容呢?比如下面一些摘要:
“可以說JFox只是實(shí)現(xiàn)了JPA1.0中的一小部分。JPA最核心的是什么?對象及關(guān)系映射,而難度最大的環(huán)節(jié)面向?qū)ο蟮牟樵?EJBQL)以及各種對象關(guān)系及表關(guān)聯(lián)的處理,比如OneToMany、ManyToMany。由于JFox是基于iBatis這樣一個sql mapping的框架實(shí)現(xiàn)的JPA容器,所以說功能上受到了一定限制。”
“技術(shù)的進(jìn)步是永無止盡的。Jdon框架的設(shè)計(jì)仍然還存在著很多的問題。比如,要求用戶領(lǐng)域模型繼承Jdon的Model類或?qū)崿F(xiàn)ModelIF接口,添刪改查的業(yè)務(wù)實(shí)現(xiàn)類中要包含類似createXxx(EventModel em)這樣的方法,導(dǎo)致整個框架對業(yè)務(wù)層的東西侵入性太嚴(yán)重,不符合實(shí)際應(yīng)用。另外,過多與Struts1.x緊密綁定的設(shè)計(jì)也不可取。”
“雖然已經(jīng)形成了江南、CAC、差沙等組成的核心團(tuán)隊(duì),但代碼及文檔產(chǎn)出上卻基本上仍然是一個人;代碼是開源項(xiàng)目的生命所在,而這樣的項(xiàng)目要做好,要做成中國的AppFuse決定了這是一個人不可能完成的任務(wù),因此離成功就會很遠(yuǎn)。”
“如果是開發(fā)Web應(yīng)用,如果要用到EJB,而又不能支持分布式,我們又為何還選擇EJB?Spring、Jdon、Guice甚至EasyJWeb 這些框架里面都有包含了IOC容器。而且更加POJO,為何還要選擇用EJB及JFox呢?因此,這一方面我不知道這樣的設(shè)計(jì)及限制是對JNDI的創(chuàng)新,還是因?yàn)镴Fox設(shè)計(jì)的局限性所導(dǎo)致。”
“雖然Struts1.x的市場仍然還是很大,但我們應(yīng)該清醒地看到,今天已經(jīng)有很多正在逐漸取代Struts1.x的Web框架出現(xiàn),比如 webwork(或struts2)、easyjweb、operamasks(jsf)、grails等。Jdon作為一個應(yīng)用框架,要能獲得更多的應(yīng)用支持,必須支持與這些框架進(jìn)行集成,提供更多的支持,讓開發(fā)者有更多的選擇權(quán)。”
“SpringSide不善于合作,比如國內(nèi)已經(jīng)有很多優(yōu)秀的開源項(xiàng)目或框架出現(xiàn),比如operamasks、JFox、JDon、easyjweb 等,通過最近的深入研究,我發(fā)現(xiàn)他們都很不錯。但在springside項(xiàng)目及文檔里,沒有一點(diǎn)與這些開源項(xiàng)目相關(guān)的!”
我覺得,中國的開源要做好,不但需要很多像我文章中介紹的這些開源斗士們的堅(jiān)持不懈,更需要更多的人來使用這些開源,嘗試這些開源,把使用心得在開源社區(qū)中進(jìn)行學(xué)習(xí)、交流,更需要能客觀地指出這些開源項(xiàng)目技術(shù)上的不足、問題方面的文章,而不是一棒子打死。
最后奉勸一些朋友們:搞技術(shù),需要一顆平淡的心,當(dāng)今社會已經(jīng)是很浮燥了,如果再盲目,那么就更危險(xiǎn)了。