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