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