開源,並不意味著免費、開源,不是道德綁架
Ant Design 事件之時,作為看熱度的吃瓜群體。我偶爾也會隨意地皮一下,雖然沒有這麼大膽。過程中,大抵發現一些人吶,對於開源的態度並不是那麼友善——彷彿作為一個開源貢獻者,這些都是我等的義務,應盡的天職一樣。我在最初也並沒有那麼友好,經賀老提醒之後,我發現自己的態度似乎也是不太對。但是,這種利用道德上的壓迫感,讓人覺得甚是不爽,便想寫一篇文章順帶吐槽一番。
開源,並不意味著免費
我們開源了一個軟體,並不意味著你可以免費使用。我們花了幾天、幾個月、幾年的時間,打造出來的開源軟體,就好像自己的孩子一樣。我們會為之搭配一個滿足自己利益的協議,它可以是 GPL、Apache,也可以是 WTF 協議。它還可以針對個人免費,但是商業使用收費的軟體。你可以直接看到項目的代碼,並不意味著你直接商用。
這個基本的原則,也是許多大公司所不懂的,騰訊的 QQ 語音 FFmpeg 恥辱名單事件,華為的 ServiceComb 抄襲事件,小米的 Linux 內核不開源事件……。
而即使是我給予了你免費使用這個庫、軟體的權利,也不代表我會向你免費提供支持服務。收費軟體,收費的其實並不只是軟體本身,還有相當一部分是服務的費用。而幫助你使用這個開源軟體,也是服務的一部分。在大部分的情況下,這個服務可以由作者自願提供的,但是不代表它是免費的。
選擇開源,能幫你省掉大量的時間和金錢,但是這些並不意味著開源是免費的。開源反而是最貴的,沒有人會 7x24 地為你提供售後服務,沒有人會向你保證軟體背後沒有漏洞,沒有人會向你提供新功能的支持——你需要自己承擔這一切的風險。
開源,是權利而非義務
我從 StackOverflow/Google 複製了一堆代碼,作為一種回應,我寫有一個對應的博客,上面有一系列的博客;我從 GitHub 上複製代碼,作為一種回應,我編寫了大量的開源軟體。
但是這些都只是我的權利,我可以選擇不開源這些軟體——隨著時間的流逝,讓它們在我的電腦上腐爛。而不是將代碼提交到網上、GitHub,再除去一些條件限制、環境限制、專利限制等相關的代碼,配套上相應的 README、使用文檔、Demo,以讓其他/她人可以順利地使用它們。
然而,從法律、道理上來說,我並沒有義務這樣做。我可以只上傳代碼到 GitHub 上,你愛用不用。開源是一種權利,我可以使用這個權利,也可以放棄這個權利。不過,對於這個權利不得不提及的一點是,在工作時間、使用公司設備開發的開源軟體,從原則上來說,並不屬於個人。公司有權利,收回以這種形式開發的開源軟體。
「貢獻的沒有幾個,嫌棄的卻有一堆」。在 GitHub 上遇到一個問題,幫助某開發者解決了問題。每次都會寫 comment 希望他/她能把解決方案放到 issue 里,可多數時候並不會得到解決方案。明明它對於別人是有幫助的,卻有人總也不會去做。如果是你,那你還談論什麼開源的權利與義務?
若是不開源,虧欠的是那些開源的人。開源吧,又對那些不開源的人太好了。
開源,不是我們的工作
對於絕大部分的開源工作者來說,開源並不是他/她的日常工作。作為一個 Geek,我們都嚮往一個更好的世界,一個我們願意為之奮鬥的世界——虛擬世界。我們願意在這個世界裡,創造美好、引以為傲的事物。我們喜歡創造,喜歡和熱愛創造的人一起工作,我們喜歡分享,願意分享東西給喜歡分享的人。
所以呀,解決你的問題,不是我的工作。哪怕你十萬火急,我也沒有理由、義務去幫助你。白天,我也需要忙於工作,我也有一堆的問題希望有人能幫我解決。可這些問題,往往只能由自己來解決。在工作的時間裡,幫助你解決你的問題,對我來說太難了。
我有自己的工作,我需要解決工作中的問題。回到家裡,還需要吃飯,還需要刷動漫,還需要洗澡,還需要浪漫的時間,這樣一來,所剩的時間就更少了。有限的時間,我還想投入到自己的愛好中,投入到寫作中,投入到繪畫中。哪怕是不能為我帶來收入,但是我很開心。
可我們還是會抽出時間,去解決 GitHub 上的問題。這些問題我們有自己的優先順序分類:
- 出 bug 了。修好它,是你應該做的,也是我應該做的。但是什麼時候修好,就得看時間。
- 新的功能。我可以考慮,但是也可以不考慮。
- 使用不當。可以適時考慮,幫你解決。
- 與項目結合有問題。若是你能找到了問題,還有相應的答案,還可以協同解決。若是找不到問題,我也沒有源碼、分析不出問題,你只能聽天由命了。
- 不按文檔使用。不好意思,請再把文檔看一遍,再來提問。
可總有人,會去煩作者,說為什麼不回答他/她的問題。有時候,還會配上各種難聽的話。若是這樣的事情多了,怕是作者本人也會放棄開源。
正因為如此,我討厭在 IM 上添加好友,討厭郵箱、社交媒體以外的聯繫方式。我有我的工作,我有我的生活。
開源,不是道德綁架
談及開源來說,我怕得是一個 「自私」 的人。我有自己的生活,出於性生活考慮,我拒絕造基礎的輪子,如 UI 組件庫、模式庫 等等。所有的這些基礎設施,都在無時無刻地蠶食生活的角角落落。任何一點雞毛蒜皮的小問題,都會在 issue 列表中出現:
- 明明是你不看 README,卻在說文檔上沒寫清楚。
- 明明是你不看示例代碼,卻在說項目沒有 DEMO。
- 明明寫的是給 Angular 用的框架,卻在說在 Vue 上不能使用。
- 明明是你的能力不足,卻在說框架有問題,不能工作。
- 明明是你的能力不足,卻在說作者不幫助你。
開心了,我就給解決方案;不開心或者工作累的時候,打開 GitHub issue 的想法都沒有。
總有人會以道理的高點,來譴責一個開源軟體的作者,直到這個作者關閉了 issues,關閉了項目。甚至是到各種社交媒體上,對這個作者進行轟炸。而點開這個人 GitHub 上的頭像,都是一個個 contributions 空白的人,在道德上和別人說義務。拜託,只有有道德的人,才有資格談義務。不走向開源的人,哪裡有什麼資格,和開源人的談開源的義務。
和壞人講道理,哪是在電影里才有的情節。主角們有主角光環,而鍵盤俠才是有主角光環的人,而開源軟體作者,才是所謂的 「壞人」。鍵盤俠是個超級英雄,他/她們來無影,去無蹤,卻又存在於世界的任何一個角落。他/她們可以以任何的角度來抨擊一個人,哪怕是一個完美的人,他/她們也會以這個人太完美為理由進行抨擊。
沒有人強求你為開源做貢獻。你也不應該強求其它人為開源做貢獻。
不開源,不足以談開源
當今世界最可怕的是,總有些自媒體,總有人會拼拼湊湊寫出一些可怕的文章——擁有大量的閱讀,帶領一堆吃瓜的群體,開始了輿論的批評。這種文章吧,說是抄襲,倒也不是那麼赤裸裸,說是洗稿吧,倒也沒有稿可洗。而這些亂七八糟的文章,卻在不斷地為開源世界帶來罵名。就我而言,寫一篇像本文一樣的技術文章,需要一天。而抄襲,卻只需要 10 分鐘。
**不開源的人,不足以談論開源。**不開源的人,怎麼可能知道開源的世界是怎樣的。不開源的人,怎麼會知道開源世界沒有英雄。不開源的人,一切的信息來源,都是道聽途說的。即是道聽途說的,哪來的準確性,又有什麼資格談論古今呢?
開源軟體,謀利太難了,謀名還是可以。以開源為名為自己的開源軟體宣傳,這種行為無可厚非。可要是以開源為名,去宣傳一個非開源的組織,怕就是在謀取私利。可總有人借開源之名,宣傳自己。雖說我是半吊子——經常造坑到一半,但是至少能拿出一系列的作品。兩者間的區別在於,開源貢獻者,會為自己的軟體作宣傳。開源利用者,則是以組織名和開源來為自己背書,卻拿不出作品。
不走向開源,你怎麼知道開源是怎樣的?不開源,你哪來的資格談開源?!……
結論
有些人是該批評,有些人是該醒一醒了。
{!-- PGC_COLUMN --}? 著作權歸作者所有
作者:Phodal
原文:https://my.oschina.net/phodal/blog/3000814
打開今日頭條,查看更多圖片※徹底理解js中this的指向,不必硬背
※Spring的AOP實現
TAG:程序員小新人學習 |