評論:為什么我為金山衛(wèi)士開源捏把汗
看到金山衛(wèi)士開源了,著實(shí)興奮了一把,但上code.ijinshan.com轉(zhuǎn)了一圈,這心里又變成哇涼哇涼的了。 為什么呢?首先,上網(wǎng)站轉(zhuǎn)了一圈,看到了聲明、代碼和README文件,唯獨(dú)沒有看到開源協(xié)議。
官方聲明中說“任何第三方的廠商或者個(gè)人均可自由下載和使用金山衛(wèi)士源代碼,不限制開源后的代碼進(jìn)行商業(yè)性的使用”,這看起來和MPL/BSD/APL協(xié)議都很類似。***是在代碼目錄下找到了一個(gè)Notice.txt文件,其中聲明了源代碼開放的協(xié)議。后來發(fā)現(xiàn)在trac的wiki中也寫到了,但這實(shí)在不符合一般開源代碼的規(guī)則,也就是以一個(gè)LICENSE文件聲明協(xié)議,并在所有代碼文件的開頭附上協(xié)議的部分內(nèi)容。協(xié)議雖然不是代碼,但卻是源代碼開放運(yùn)動中極其重要的一環(huán),所以沒能在最顯著的地方讓人***眼就找到衛(wèi)士開源采用的協(xié)議,實(shí)在是很失敗。
其次,開放源代碼是一種技術(shù)行為,但這次金山高調(diào)開源衛(wèi)士,怎么看起來都像是商業(yè)行為。查看trac的wiki,只有可憐的兩篇文檔,只有一篇粗略的講了一下構(gòu)架。如果你想?yún)⑴c,應(yīng)該從什么地方開始?如何檢出代碼?如何構(gòu)建?有什么依賴?從什么地方開始閱讀代碼***?如何登記bug(傳票)?在傳票中溝通應(yīng)該注意些什么?傳票是如何流轉(zhuǎn)的?如何提交patch?review制度是怎樣的?什么人能夠獲得commit權(quán)限?衛(wèi)士會不會有開源和閉源兩套并行的版本?……經(jīng)營一個(gè)開源社區(qū),并不是僅僅把源代碼往外一扔然后大喊一聲“開源”就成功了的。
有人說金山?jīng)]有把核心的代碼開放出來,所以是偽開源,我并不同意這一點(diǎn)。程序員的水平和能力不同,開源的這些代碼,也足夠使很多學(xué)生獲益,這難道不是一件好事么?只是開源并不只是等于開放代碼,開源的本質(zhì)是經(jīng)營社區(qū),用集體的力量做出更好的產(chǎn)品。金山能夠把衛(wèi)士開源是很有勇氣的,但是還應(yīng)該有更廣闊的胸懷,把社區(qū)的各個(gè)部分都建立起來,包括文檔、構(gòu)建、測試、發(fā)布等等。只是毒霸內(nèi)部的開發(fā)流程都沒能理順,代碼管理也并不清晰,要經(jīng)營外部社區(qū),不知道有多少經(jīng)驗(yàn)可以復(fù)用。
有同學(xué)應(yīng)該注意到了,衛(wèi)士開源項(xiàng)目的負(fù)責(zé)人是zoom.quiet。此人在國內(nèi)的開源社區(qū)還是小有名氣的,跟各路技術(shù)大牛都能打上招呼,但是你要是因此就覺得他的技術(shù)也很牛,那就大錯(cuò)特錯(cuò)了。他是開源運(yùn)動的忠實(shí)參與者,但卻只能學(xué)到些表面功夫。國內(nèi)的社區(qū)把這種“大媽”奉為牛人,是一種悲哀。trac是個(gè)不錯(cuò)的產(chǎn)品,trac的中文化也是zoom.quiet的得意之作,但是他對trac的積累有多少那就很難說了。昨天下午對衛(wèi)士的代碼庫的訪問很慢,還出現(xiàn)了“連接用戶數(shù)過多”的錯(cuò)誤,昨晚金山維護(hù)trac的同學(xué)加班到了十一點(diǎn)多呢。這次衛(wèi)士項(xiàng)目的開源的問題我剛才也說了,讓他這么弄下去,估計(jì)是要打水漂的。
也許有人覺得我是在吹毛求疵,這畢竟是金山***次嘗試開源一個(gè)重量級的產(chǎn)品,難免有做的不盡如人意的地方。但我想說的是,開源是一把雙刃劍,用的好了,不但能夠做好產(chǎn)品,還能提升自身的品牌形象;但如果做不好,那就是自己砸自己的招牌,把技術(shù)優(yōu)勢拱手讓給競爭對手??偸怯腥苏f金山是低調(diào)做事的好公司,但其實(shí)金山的水平從公司在行業(yè)內(nèi)的地位就知道了,做事高開低走也不是一次兩次了,希望這次不要重蹈覆轍。
【編輯推薦】




















