開(kāi)源的江湖恩怨情仇
我開(kāi)我的源,與你何干?
Ant Design 事件之時(shí),作為看熱度的吃瓜群體。我偶爾也會(huì)隨意地皮一下,雖然沒(méi)有這么大膽。過(guò)程中,大抵發(fā)現(xiàn)一些人吶,對(duì)于開(kāi)源的態(tài)度并不是那么友善——仿佛作為一個(gè)開(kāi)源貢獻(xiàn)者,這些都是我等的義務(wù),應(yīng)盡的天職一樣。我在最初也并沒(méi)有那么友好,經(jīng)賀老提醒之后,我發(fā)現(xiàn)自己的態(tài)度似乎也是不太對(duì)。但是,這種利用道德上的壓迫感,讓人覺(jué)得甚是不爽,便想寫(xiě)一篇文章順帶吐槽一番。
開(kāi)源,并不意味著免費(fèi)
開(kāi)源,是權(quán)利而非義務(wù)
我從 StackOverflow/Google 復(fù)制了一堆代碼,作為一種回應(yīng),我寫(xiě)有一個(gè)對(duì)應(yīng)的博客,上面有一系列的博客;我從 GitHub 上復(fù)制代碼,作為一種回應(yīng),我編寫(xiě)了大量的開(kāi)源軟件。
但是這些都只是我的權(quán)利,我可以選擇不開(kāi)源這些軟件——隨著時(shí)間的流逝,讓它們?cè)谖业碾娔X上腐爛。而不是將代碼提交到網(wǎng)上、GitHub,再除去一些條件限制、環(huán)境限制、專利限制等相關(guān)的代碼,配套上相應(yīng)的 README、使用文檔、Demo,以讓其他/她人可以順利地使用它們。
然而,從法律、道理上來(lái)說(shuō),我并沒(méi)有義務(wù)這樣做。我可以只上傳代碼到 GitHub 上,你愛(ài)用不用。開(kāi)源是一種權(quán)利,我可以使用這個(gè)權(quán)利,也可以放棄這個(gè)權(quán)利。不過(guò),對(duì)于這個(gè)權(quán)利不得不提及的一點(diǎn)是,在工作時(shí)間、使用公司設(shè)備開(kāi)發(fā)的開(kāi)源軟件,從原則上來(lái)說(shuō),并不屬于個(gè)人。公司有權(quán)利,收回以這種形式開(kāi)發(fā)的開(kāi)源軟件。
“貢獻(xiàn)的沒(méi)有幾個(gè),嫌棄的卻有一堆”。在 GitHub 上遇到一個(gè)問(wèn)題,幫助某開(kāi)發(fā)者解決了問(wèn)題。每次都會(huì)寫(xiě) comment 希望他/她能把解決方案放到 issue 里,可多數(shù)時(shí)候并不會(huì)得到解決方案。明明它對(duì)于別人是有幫助的,卻有人總也不會(huì)去做。如果是你,那你還談?wù)撌裁撮_(kāi)源的權(quán)利與義務(wù)?
若是不開(kāi)源,虧欠的是那些開(kāi)源的人。開(kāi)源吧,又對(duì)那些不開(kāi)源的人太好了。
開(kāi)源,不是我們的工作
使用不當(dāng)??梢赃m時(shí)考慮,幫你解決。
開(kāi)源,不是道德綁架
談及開(kāi)源來(lái)說(shuō),我怕得是一個(gè) “自私” 的人。我有自己的生活,出于性生活考慮,我拒絕造基礎(chǔ)的輪子,如 UI 組件庫(kù)、模式庫(kù) 等等。所有的這些基礎(chǔ)設(shè)施,都在無(wú)時(shí)無(wú)刻地蠶食生活的角角落落。任何一點(diǎn)雞毛蒜皮的小問(wèn)題,都會(huì)在 issue 列表中出現(xiàn):
- 明明是你不看 README,卻在說(shuō)文檔上沒(méi)寫(xiě)清楚。
- 明明是你不看示例代碼,卻在說(shuō)項(xiàng)目沒(méi)有 DEMO。
- 明明寫(xiě)的是給 Angular 用的框架,卻在說(shuō)在 Vue 上不能使用。
- 明明是你的能力不足,卻在說(shuō)框架有問(wèn)題,不能工作。
- 明明是你的能力不足,卻在說(shuō)作者不幫助你。
不開(kāi)源,不足以談開(kāi)源
結(jié)論
有些人是該批評(píng),有些人是該醒一醒了。