王開源的事情已經(jīng)過去一段時(shí)間了,看過太多對(duì)這件事情的評(píng)論,這些評(píng)論或者是口出污言穢語的謾罵或者是狂熱的非理性的力挺(在這件事的初期屬于后者)。很多人對(duì)開源的評(píng)論也使得我這個(gè)投身于開源一年多的新人感到過迷茫。這件事過去好久,我一直在思索一個(gè)問題:開源在目前中國的意義究竟是什么,開源在中國這種大環(huán)境下究竟應(yīng)該如何發(fā)展。
開源在國外現(xiàn)在是火的一塌糊涂,Linux、Eclipse、Hibernate、Spring、Python、Ruby、MySQL等等或大或小的開源產(chǎn)品的發(fā)展大大推動(dòng)了軟件開發(fā)這個(gè)行業(yè)的高速發(fā)展,apache、sourceforge等開源社區(qū)中也是百花齊放,開源產(chǎn)品的開發(fā)者、推動(dòng)者、推廣者也得到了各自想得到的回報(bào),更不用說使用這些開源產(chǎn)品進(jìn)行開發(fā)的用戶得到的開發(fā)效率的提升。反觀國內(nèi)開源的發(fā)展則相對(duì)滯后很多:違背Linux開源協(xié)議進(jìn)行商業(yè)化Linux開發(fā)的廠家被開源社區(qū)罵的狗血噴頭;屈指可數(shù)的幾個(gè)開源愛好者組織的開源團(tuán)隊(duì)在個(gè)人的意志與信念的堅(jiān)守下苦苦支撐著,很多因?yàn)榉N種原因中途夭折;商業(yè)公司對(duì)開源社區(qū)的幾次推廣行動(dòng)也胎死腹中,比如CSDN的開源社區(qū)、Apusic的Operamasks;更有甚者打著開源的旗號(hào)卻從事著根本與開源不搭邊的事情。國內(nèi)大部分人對(duì)開源更是有著很深的誤解:“你憑什么叫人家開源,不就是想看看Windows的代碼嗎?”、“人家商業(yè)公司做出來的產(chǎn)品是你們幾個(gè)技術(shù)瘋子做出來的東西能比的嗎?”、“把別人寫好的東西拿來抄一抄改一改我的任務(wù)就完成了,錢就到手了,開源真好”、“我做的項(xiàng)目用了很多開源的東西,很牛吧!”。
我認(rèn)為開源對(duì)于整個(gè)軟件行業(yè)有如下幾個(gè)作用:使用開源產(chǎn)品搭建出的產(chǎn)品有更好的安全性和可控性;開源的產(chǎn)品能得到開發(fā)社區(qū)的廣泛支持,從而使得產(chǎn)品能夠成熟的更快;使用開源產(chǎn)品搭建出的產(chǎn)品有更好的安全性和可控性;開發(fā)、學(xué)習(xí)開源產(chǎn)品能夠提升開發(fā)人員的技術(shù)水平。
對(duì)于第一個(gè)作用這里不做過多解釋,相信大部分人都能理解。
開源產(chǎn)品是在全世界所有技術(shù)牛人的手下開發(fā)出來的,并且有千萬雙眼睛盯著它,眾多的使用者可以完善它,這使得開源產(chǎn)品的成熟速度也十分驚人,Linux、Eclipse的成熟就是最典型的證明。各種開源產(chǎn)品層出不窮,相似功能的產(chǎn)品就有幾十種甚至上百種,一個(gè)開源產(chǎn)品如果想要在這些產(chǎn)品中脫穎而出,不僅需要強(qiáng)大的技術(shù)做支撐,更需要非常強(qiáng)的商業(yè)化推廣,否則做出來的產(chǎn)品只能成為少數(shù)技術(shù)人員把玩的玩物。如果沒有IBM對(duì)Eclipse的巨額投入,Eclipse會(huì)發(fā)展成現(xiàn)在的規(guī)模嗎?這些開源項(xiàng)目的后面通常都是有一個(gè)非常強(qiáng)大的開源基金會(huì)在做支撐。遺憾的是,目前國內(nèi)還沒有一家公司能夠進(jìn)行對(duì)開源社區(qū)如此大的投入,因此國內(nèi)大部分的開源團(tuán)隊(duì)都是在自己開發(fā)著自己的開源產(chǎn)品,放到網(wǎng)站上供他人下載,然后夢(mèng)想著自己的開源產(chǎn)品能夠有一天會(huì)像Hibernate、Struts一樣成為風(fēng)靡全球的產(chǎn)品,但是如果沒有強(qiáng)大的商業(yè)推廣的話這肯定是一場(chǎng)白日夢(mèng)。
鑒于此,我認(rèn)為目前國內(nèi)的開源產(chǎn)品商業(yè)化的可能性是非常小的,因此開源的對(duì)于廣大開發(fā)人員的意義更多的在于使用和學(xué)習(xí),而且我們使用開源產(chǎn)品快速的搭建出滿足需求的產(chǎn)品,這本身也是對(duì)開源的學(xué)習(xí)過程。這里提到的“學(xué)習(xí)”包含下面幾個(gè)含義:學(xué)習(xí)開源產(chǎn)品的使用;學(xué)習(xí)開源產(chǎn)品的實(shí)現(xiàn)原理;學(xué)習(xí)模仿開源產(chǎn)品;學(xué)習(xí)開源社區(qū)的運(yùn)營。
(1)學(xué)習(xí)開源產(chǎn)品的使用:成熟的開源產(chǎn)品是非常優(yōu)秀的,如果能夠?qū)W會(huì)它們的使用,這對(duì)于開源人員來說就是一種很大的收獲,因?yàn)橥ㄟ^使用這些產(chǎn)品就能認(rèn)識(shí)到這些產(chǎn)品的功能、特性以及優(yōu)缺點(diǎn)。
(2)學(xué)習(xí)開源產(chǎn)品的實(shí)現(xiàn)原理:開源產(chǎn)品的代碼都是開放的,我們可以深入產(chǎn)品的內(nèi)部學(xué)習(xí)其實(shí)現(xiàn)原理,從而提高自身的開發(fā)水平。不得不承認(rèn)的是國內(nèi)開發(fā)人員的技術(shù)水平還是非常低的,通過學(xué)習(xí)開源產(chǎn)品的代碼,就可以提高整體的技術(shù)水平,從這個(gè)層面來講哪怕是非開源的源代碼開放產(chǎn)品(比如Borland的VCL)對(duì)我們也是同樣有幫助的。值得高興的是,國內(nèi)很多開發(fā)人員已經(jīng)開始嘗試著深入開源產(chǎn)品的內(nèi)部去探尋這些產(chǎn)品的實(shí)現(xiàn)原理,并把它們的學(xué)習(xí)成果與更多人分享。開源對(duì)開發(fā)人員的提升也是顯而易見的,最明顯的就是微軟開發(fā)社區(qū)中開發(fā)人員的普遍技術(shù)水平是低于Java等開源社區(qū)中開發(fā)人員的普遍技術(shù)水平的(注意,這里說的是“普遍技術(shù)水平”,請(qǐng)微軟社區(qū)中的高人不要?jiǎng)优V袊?jì)算機(jī)業(yè)的發(fā)展必須依靠核心技術(shù),而提高技術(shù)水平是擁有核心技術(shù)的大前提!
(3)學(xué)習(xí)模仿開源產(chǎn)品:弄懂了開源產(chǎn)品的實(shí)現(xiàn)原理以后就可以嘗試模仿它們開發(fā)自己的產(chǎn)品,這和“重復(fù)造輪子”是沒有關(guān)系的,模仿是學(xué)習(xí)他人技術(shù)的最佳途徑。因此大家應(yīng)該多多的“造輪子”,越多越好,哪怕造完就扔掉也是可以的。
(4)學(xué)習(xí)開源社區(qū)的運(yùn)營:國外很多開源人員都有在開源社區(qū)中開發(fā)的經(jīng)驗(yàn),因此他們對(duì)于開源這種協(xié)同開發(fā)方式就有更多的經(jīng)驗(yàn),因此我們可以加入他們的開發(fā)團(tuán)隊(duì),可以幫他們做文檔、界面的本地化,更可以參與產(chǎn)品功能的完善,從而學(xué)習(xí)他們的協(xié)作方式,更可以和他們做朋友,了解更多“外面的世界”。國內(nèi)很多朋友都參與了開源產(chǎn)品的文檔中文化、產(chǎn)品的推廣等工作,這都是有深遠(yuǎn)意義的。我們CowNew開源團(tuán)隊(duì)參與JodeEclipse、DWPL等國外項(xiàng)目就是基于這一點(diǎn)考慮的。
相信經(jīng)過一段時(shí)間學(xué)習(xí)之后,我們的開發(fā)人員將有能力開發(fā)出世界級(jí)的產(chǎn)品,如果我們的民族企業(yè)能夠得到長遠(yuǎn)的發(fā)展,并且在商業(yè)上幫助國產(chǎn)開源真正走向強(qiáng)大,從而使得中國的開源社區(qū)也能躋身“世界開源之林”!
上邊是我一點(diǎn)愚蠢的看法,僅供各位看管參考。希望開源能夠在中國發(fā)展、壯大,希望中國早日成為軟件強(qiáng)國!