(本故事除了部分點明道姓并具有故事詳細發生的具體時間點地等部分情節以外,其它內容純屬虛構,若有雷同,純屬巧合。)
知道Spring卻不知道Rod Johnson的人,好比宇宙中知道社會中義新中國卻不知道毛澤東的人一樣可笑。
Rod Johnson 是Spring Framework的創建者,也是Java和J2EE領域中的知名專家。Rod是 Interface21公司的CEO,該公司是一家致力于提供專業級J2EE和Spring Framework服務的顧問公司。
談到Rod Johnson,除了Spring框架本身以外,他所著作的《Expert One-on-One J2EE Development without EJB》一書,其影響力比Spring框架本身還更加震撼。這里插播一段廣告:《Expert One-on-One J2EE Development without EJB》這本書的中文版去年就已經出了,有興趣的朋友可以去買來一看。
Rod Johnson對J2EE乃至整個Java的貢獻我這里就不再多說了,下面直接引用一些從網上摘下來的原話,我想大家也能看出他的厲害。
我們曾經在無數的書籍和文章中看到,EJB是J2EE的核心技術之一;而Rod Johnson竟然宣稱,絕大多數的J2EE應用根本不需要EJB。-摘自“J2EE without EJB”書評
Rod Johnson將會引領一種影響深遠的潮流。但這潮流不是Spring和Hibernate,也不是IoC和AOP,甚至不是“輕量級架構”,而是一切實事求是的“循證架構”的工作方式。惟有掌握這種工作方式,你才能夠真正自信滿滿地挺起胸膛說:“我選擇的架構是適合應用需求的架構。”―摘自“Java視野”網友討論
Rod Johnson認為,應該是基于實踐的證據、來自歷史項目或親自試驗的經驗,而不是任何形式的偶像崇拜或者門戶之見。Rod Johnson給我傳授了“循證”的工作方式——那原本就應該是程序員的工作方式。-摘自“J2EE without EJB”書評
Spring 提供這些價值也離不開其它開源框架的支持(Spring 的理念:不去重新發明輪子),但是 Spring 是所有這些開源框架的集大成者,為集成各種開源的成果提供了一個非常理想的平臺。所以 Rod Johnson 對于 J2EE 的貢獻在我看來要比其他人高一些的。-摘自網友評論
總之一句話,在技術的領域,他是偉人、他是我們心目中的英雄!(呵呵,“英雄”這尊稱叫起來有點肉麻,若是不搞java的朋友看見我隨便叫老外英雄,還一定會被罵我吃里爬外,崇洋媚外呢。于是,筆者以后就把Rod Johnson稱為大叔,這樣聽起來大家都舒服。)
當然,談到Rod Johnson大叔,就一定得談談 “輪子理論”。
“輪子理論”,也即“不要重復發明輪子”,這是西方國家的一句諺語,原話是:Don't Reinvent the Wheel。當然由于國內IT從業人員接受的都是西方先進技術(誰讓中國沒有先進技術給大家學呢?),因此看見大家經常引用這一句話。“不要重復發明輪子”,意思是企業中任何一項工作實際上都有人做過,我們所需要做的就是找到做過這件事情的人。拿到軟件領域中就是指有的項目或功能,別人已經做過,我們需要用的時候,直接拿來用即可,而不要重新制造。
“輪子理論”既然只是一句諺語,怎么又跟Rod Johnson大叔聯系在一起了呢?因為Rod Johnson大叔告訴我們,Spring就是在“不重復發明輪子”的理念及指導原則上做起來。于是一夜之間,隨著Spring在全世界的風風火火,特別是吹到我們祖國的時候,也許是愛屋及烏(或鳥)的原因吧,“輪子理論”也被眾多的Spring粉絲當成做人做事做程序的信條及原則。
這樣有問題嗎?當然有嚴重的問題。“輪子理論”這一理論本身沒有錯,錯的是輪子理論的濫用,錯的是大家被Rod Johnson大叔忽悠了一把而不知或不承認。熟悉Spring的朋友都知道,Spring除了IOC、AOP及與其它各種框架的整合集成接口以外,也一樣有自己的WEB MVC、有自己的持久層數據庫訪問,當然,IOC、AOP就更加不是他的首創了。你能說這些東西難免不帶有“發明輪子”的嫌疑嗎?筆者由于資歷乃至閱歷皆淺薄,無法證明Spring“發明了輪子”,這里只是拋出一個疑命題,還請高人來求證。如果Spring的MVC等能證明他本身也是發明輪子的話,我們再去想想Rod Johnson大叔說這話的動機,難免會讓人往其他不友好的方面想。
這里沒有其它的惡意,只是就是論事。Rod Johnson大叔在他的書中開篇不是就教育我們:要敢于去懷疑、猜想嗎?。要是沒有Rod Johnson大叔對傳統J2EE模式特別是EJB的懷疑及猜想,又哪來的Spring呢?
西方人口口聲聲說“不發明輪子”,但實際情況呢?大家自己睜開眼睛看看,然后閉上眼睛摸著腦門想想,如果真“不發明輪子”的話,有了JDO,怎么還會搞出iBatis來,有了iBatis怎么又搞了一個Hibernate呢?同樣的道理,有了一個令大家都稱道的struts、后來又冒出個Tapestry,之后的Webwork、JSF,然后到現在的Spring MVC。這“輪子”一個又一個冒出來,一個比一個漂亮、好用,有點讓我們這些整天被壓得喘不過氣來的國內程序員乃至開發商應接不暇,傻眼了吧?
為什么會這樣呢?本來我也想不通,直到昨天發生一件事情,才讓我有所領悟,事情大致是這樣的:
我昨天在大街上看到一個被扔在馬路邊上全新的寶馬輪子,記得鄉下的小學同學曾托我幫他找一個拉肥料用三輪車的輪子,于是我就急忙給小學同學打電話,問他要不要。結果我被他一頓臭罵,原話大意是這樣,他說我讀大學、搞高科技、變傻了,寶馬輪子那是山里人玩得起的嗎?在山村里要輪子壞了怎么辦,還要花幾百塊坐汽車、火車抱到城里修啊,我這三輪車全賣了也只值幾百塊呢?他大字不識幾個,而那寶馬輪子使用說明書,質量鑒定書一大堆,而且他又不放心,還得花時間考察考察,農忙季節剛好來了,哪有時間考察?最后還狠狠地冒了一句:你想讓我這個季度喝西北風啊。
小學同學說話很直接,雖然土了一點,但確實很有道理。于是,我回來把老同學教訓我的內容認真歸納整理了一下,得到如下幾個簡單結論:
1、?寶馬是高檔車,因此輪子也得配名貴的輪子,其所有的設計都是為寶馬這一名車量身打造的,所以在大小、寬度等多方面指標都不適合咱村里拉肥料的破三輪車。
2、?寶馬輪子因為名貴,質量好,但也會出問題的時候,出了問題一般人不能也不敢修,還必須得拿回大城市的專修店修理,維護成本太高了。
3、?雖然三輪車已經有了輪子,但鄉里的同學仍然要我幫他注意有沒有好的輪子,意思是對現在的輪子不管從功率、效率乃至外表、款式等都不太滿意,仍然需要改進。
4、?我去年過春節回家時給他帶的兩個自行車輪子,他瞧不起,而且三輪車也用不上
因此,我想上面提到的Webwork、Tapestry以及Spring MVC等,也是遇到類似的輪子不合適或者不完美的問題,才會不斷尋求改進的方法,才能不斷的更新換代,也才導致一個又一個的新的、漂亮的輪子被重復發明出來。結論就是,輪子不在于有沒有,不在于是否屬于“重復發明”,其關鍵在于“合不合適”。子曾經也曰過:存在即合理嘛!
而我們中國人呢,連發明輪子的技術都不會,只能膜拜,干瞪眼,等著學他們一個又一個的輪子使用方法。輪子越來越大,說明書越來越多,翻譯的工作量越來越多,引進一個輪子的周期越來越長,越來越無法控制,實在不行了就只能罵兩句解解氣,然后一袋煙的功夫又硬著頭皮回來乖乖繼續學。我就有點吶悶,全國那么多的天才、大牛,咋就不發明一個我們自己的輪子玩玩,讓老外也嘗試一下把中文輪子說明書翻譯成英文那種痛苦滋味。(暈,又做白日夢了,不好意思!)
那么,從科學的態度分析,究竟該不該“發明輪子呢?”。這得用一句經典的廢話來總結:實事求是,具體問題具體分析!
其實也不用那么復雜,我們只需要看看現在我們用的輪子,看看這些進口的輪子是否都很合適我們,不需要再改進,更不需要重新發明了呢?我看未必。中國有著5000年的文化底蘊,可謂博大精深。進口的東西,技術再好,切不可能完全融入得了中國的文化、思想。況且,現在扔給我們這些輪子,不但用起來仍然有著這樣那樣的問題,這些輪子之間還相互打起架來,搞得我們要做兒子不是,做孫子也不是,一不小心就犯上了選擇恐懼怔。
因此,作為一個80后的人,我希望跟我一樣的同行,能多去研究別人發明的輪子,而不是依賴于某幾個輪子,會用幾個輪子就自以為是、沾沾自喜。不但要去探索、研究輪子的發明技術,原理,還要大膽地、不斷地嘗試發明更好,更合適自己的輪子。失敗不用怕,怕的是我們連失敗的機會都沒有,有機會也因為世俗一些觀念影響而不敢去爭取及嘗試。不要過分的依賴于現有的這些進口輪子,去大膽的發明輪子吧。等到十年、二十年以后,看到我們的后代依靠我們這些輪子來造火箭、造飛船、闖蕩太空的時候,一定別有一番滋味。
當然,“發明輪子”也要學學Spring,講究藝術及方法。不能搞閉門造車,當全世界人民都在研究火箭輪子的時候你還停留在研究腳踏三輪車輪子的技術水平,那就難免鬧笑話了。要多學習別人的輪子制造方法,把別人的好的思想、理念、精華借鑒過來,再加入我們民族文化特色的東西及元素,最后為我所用。更要認認真真,想方設法的從國內同行及前輩們的身上學習、取經,因為他們的一個小小的建議或提示會讓我們少走很多的彎路。最重要的就是要懂得團隊協作的重要性,學會與更多優秀的人一起共事,現在已經不再是個人英雄主義的年代,任何事情都需要講究團隊的合作,群策群力,才有可能取得成功。
最后,引一句張靚穎同學在Tcl廣告歌中所唱的吧:“擁有夢想,就有可能!”,鼓勵自己的同時,也鼓勵所有擁有夢想的朋友。
審訊記:
問:大峽,你口口聲聲鼓動大家發明輪子,那么你有發明輪子的技術及能耐嗎?
答:我現在仍不具備,仍在不斷學習及探索ing,相信以后一定能。補充一下,現在我跟EasyJF的朋友們已經開始做著別人看來類似發明輪子的事情!
問:大峽,作為Spring的超級粉絲,我很負責任的告訴你,你是在鉆Spring的牛角尖,拿“輪子理論”來說事,這是無理取鬧,更是對Rod Johnson大叔的不敬。
答:從Rod Johnson大叔身上學習了很多東西,我敬重Rod Johnson大叔,也敬重科學技術,我所說的只是實事求是,您覺得不對的地方請予指正,萬分感謝。
(備注:由于筆者不想拐彎抹角浪費大家玩的時間,有些“表白”難免過于直接,還請不喜歡Spring或者過分喜歡Spring的同行多多見諒! 本文中的“我們”,僅指與筆者有著同樣成長經歷的80后人,對于文章提到的觀點,多數皆屬于筆者個人觀點,不代表任何人。
本文作者:
EasyJF開源團隊??
大峽 版權歸
EasyJF開源團隊所有,歡迎轉載,轉載請保留作者版權聲明,謝謝!)
附
關于玩玩Spring系列,玩的過程及結果將會不定期在以下三個網站全球同步公布:
1.EasyJF開源團隊官方網站,網址:http://www.easyjf.com
2.筆者的Blog,網址:http://m.tkk7.com/daxia/
3.Java研究組織(JR) ,網址:http://www.javaresearch.org
歡迎更多跟我一樣愛玩的哥哥姐姐弟弟妹妹一起來玩。