計算機軟件水平考試:開源框架思索[1]

字號:

1、空前繁榮的開源世界
    大致2000年以前,Java世界還是Sun一言九鼎,唯我獨尊的時代。Sun發(fā)布的任何規(guī)范和標準都無一例外地被Java社區(qū)有意無意的追捧著,Java世界沉浸在一片歌功頌德,前擁后簇的氛圍里。IBM,Bea,Oracle這些Java陣營的代表者也都為能先快實現(xiàn)Sun的各種規(guī)范而彈冠相慶。
    但這三四年來,Java的列車駛進了春秋戰(zhàn)國百家爭鳴,百花齊放的時代,Apache,JBoss,opensymphony,Eclipse,Codehaus等開源組織個個門庭若市,車水馬龍。Java世界似乎天天在過年——張燈結(jié)彩,新桃換舊符。打開theserverside.com網(wǎng)站,每天映入眼簾是一條條各種開源項目發(fā)布、升級的新聞。雖然嘈雜了些,但卻異彩紛呈,驚艷四座。在Java世界里,十室之內(nèi)必有隱士,十步之內(nèi)必有芳草,有才華的程序員太多了,抑或懷才的程序員被*式的統(tǒng)治壓抑太久了,一旦找到了海德公園,龐涓、孫臏、蘇秦、張儀式的高手紛紛走出隱居的鬼谷,在開源舞臺上勁舞一支,高歌一曲,用一個個開源項目彰顯著自己獨特的魅力。
    從客戶端到數(shù)據(jù)庫,從頁面流程控制到業(yè)務(wù)流程控制,從全文搜索到地圖搜索,從論壇到博客,在各種應(yīng)用領(lǐng)域你都可以方便地找到多個相似的Java開源框架。開源框架的空前繁榮有力的促進了Java技術(shù)的交流和分享。一些面向開源的社區(qū),論壇紛紛建立,國內(nèi)比較的就有滿江紅開源論壇、中文Spring論壇、JavaScud開源平臺、JavaEye社區(qū)等,宣講、爭論、協(xié)作、互動,無數(shù)激情和智慧碰撞出耀眼的火花。
    隨著開源項目的日益增多,國內(nèi)甚至出現(xiàn)了象open-open.com Java開源大全的匯總整理網(wǎng)站,它如一個開源項目的大集市,將開源項目分類整理,提供簡要的描述說明信息,方便使用者了解、查詢和比較。
    開源項目的繁榮還為技術(shù)圖書業(yè)創(chuàng)造了機會,不管是國外的Amazon,還是china-pub或dearbook,開源框架或產(chǎn)品的技術(shù)圖書,如Spring,Hibernate,Struts,Eclipse等等都成為榮登榜首的暢銷先鋒。
    這場幾乎來源于民間的開源颶風(fēng)給開發(fā)者和CTO們的思路和決策帶來了巨大的影響,據(jù)Bea的調(diào)查,全球排名前2000家軟件開發(fā)公司中有70%以上在使用一種或多種開源框架——多達28%的公司在開發(fā)環(huán)境中使用了一種以上的應(yīng)用服務(wù)器。
    同時開源也給走傳統(tǒng)路線的Java巨頭們帶來戰(zhàn)略性的影響:Sun去年宣布將其旗艦產(chǎn)品——Solaris開源;去年IBM向第三方廠商開放了其高性能通用并行文件系統(tǒng)(GPFS)的源代碼;Unisys也改變企業(yè)戰(zhàn)略定位投入開源懷抱等等不勝枚舉,它們紛紛將營利模式從原來的產(chǎn)品銷售調(diào)整為支持與服務(wù)。
    2、開源框架帶來的煩惱
    雖然開源的框架、類庫越來越豐富,可供選擇的替代者越來越多,但Java程序員卻感覺自己慢慢陷入到了技術(shù)的漩渦之中:因為他們發(fā)現(xiàn)只要一段時間不關(guān)注開源社區(qū),就有潮水般陌生的技術(shù)框架、專業(yè)術(shù)語、英文縮略詞挾裹著一團團亢奮的熱浪將自己淹沒,讓他們覺得隨時都有被Java世界拋棄的危險。許多年紀稍大的程序員甚至覺得職位轉(zhuǎn)換,甩掉技術(shù)干管理已經(jīng)時不我待。
    選擇的困惑
    雨后春筍般涌現(xiàn)的開源框架都聲稱自己是好的,有過多次因盲從于技術(shù)鼓吹而失望傷心的經(jīng)歷后,現(xiàn)在的開發(fā)者都變得成熟理智了,他們不會輕易相信某個框架自身的,不會輕易附和他人的宣傳,這確實是件好事。為了作出理智的選擇,他們往往要自己親自摸索以做出評判。
    有時,我們會發(fā)現(xiàn)向上司推薦一個框架已經(jīng)變成一件困難的事情,因為上司會冒出各種各樣的問題:如Webwork比Struts好在哪里?Hibernate和iBatis有什么區(qū)別?OpenWFE比之jBpm有什么優(yōu)勢等等。所以要確定一個框架時,往往需要將相似的框架都研究一遍,以便有充足的理由讓上司相信我們的選擇是優(yōu)的。
    但是,要將同類的框架都做研究并比較優(yōu)劣并非易事,如開源工作流引擎就有Willow,OpenWFE,jBpm,Werkflow,OSWorkflow等不下30余種的框架,炫耀的聲音一個比一個響亮。每種框架都有自己的設(shè)計思路和實現(xiàn)方案,況且這種技術(shù)預(yù)研性的工作,又不可能在項目周期內(nèi)占用太多的時間,而不深入預(yù)研又不可能客觀地作出評判,所以往往是熬紅的雙眼依然帶著迷茫的目光。
    此外,用人單位為了減少新員工的培訓(xùn)時間,對求職者往往有明確的框架使用技能和經(jīng)驗的要求。求職者為了能找到一個好工作,不得不逼迫自己學(xué)習(xí)更多的框架,以便讓自己擁有更多的求職機會。 來源:www.examda.com
    搭配的困難
    開源的繁榮雖然給各個領(lǐng)域都造就了許多優(yōu)秀的框架,如Spring,Struts,Hibernate,Lucene、OSCache等等,但卻沒有出現(xiàn)一個一站式,統(tǒng)管全局的整合開發(fā)框架。開發(fā)者在享用大餐之前,事先得充當(dāng)大櫥的角色,將這些鹽,油、醬、菜按合理的方式調(diào)配好。