白首相知猶按劍
前兩天看到有朋友分享說,WordPress停用了react。
今天,在逛知乎時看到了另一個問題
別細看這圖,我賭你看不懂。。。
嗯。。。用人話來說就是百度內部要求他們的程序猿不要再使用一個叫 React
的開源產品的代碼了。
而且,現有的已經使用過這些代碼的產品要改寫!(其實幾乎有很多要重寫了)
有朋友會問 React 是毛啊?
這是 Facebook 搞的一套賊好用的前端開發工具,它能提供一些很好的效果,別的開發者可以免費拿來在它的基礎上去做自己的產品,為了更多人更好的使用它,Facebook 把這東西開源了。(免費和開源還不太一樣,下面說)
基于 React 的前端效果
這次出問題主要是因為 React / React Native 工具的開源協議 Facebook BSD + PATENTS 。
整天聽沒事兒就扯什么開源,Github 啊什么的,不太懂編程的朋友們可能覺得我在裝嗶。
那么,今天就好好說說開源的事兒。
開源軟件和免費軟件不是一個意思,開源軟件的源代碼是公開的(感覺像是句廢話?),但免費軟件不一定。
舉個栗子,有兩個好人 A 和 B 都愿意免費給你提供食物,但是好人 B 告訴你他的制作菜譜,而 A 只讓你吃。
這區別就大了。。。
首先,“ 免費的程度 ” 不一樣。(這個比喻很奇怪但確實可以這么理解)
如果 A 哪天突然要找你收錢了,那你只好要么不吃,要么就換個途徑獲取食物,因為你只從 A 這里獲得做好的食物,你自己還是沒辦法做。
但從 B 這里你獲取的是菜譜,你可以自己做,所以對于 B 來說收錢一般是沒什么意義的事情。(還是存在可能有的人覺得 B 做的好捐款的)
其次,可以修改。
如果你覺得 A 的食物不好吃,你要么不吃,要么給 A 提個意見,要么含著淚咽下去。。。
如果你覺得 B 的食物不好吃,你可以適當的根據食譜來修改一下,做出自己喜歡的食物,成本也不高,就是買買菜而已。
在計算機剛出現的時候,用計算機的人都是專業研發人員,大家寫出來的程序都會分享源代碼,方便給大家解決問題,本著類似于學術鉆研的態度在搞軟件。
后來,軟件規模和復雜度越來越大,計算機越來越平民化和普及,有的商業軟件公司為了保護技術和維持盈利,開始對軟件閉源,這樣用戶就無法知道原理了。
微軟當時的老大比爾 · 蓋茲在私有軟件的推廣上起到了重要的作用,認為軟件具有知識產權,讓開發者僅僅靠熱情去無償開發和維護軟件是不太合理的。
微軟的 BASIC 編程軟件
不過軟件業并沒有因此漸漸完全走向閉源,而是產生了分化,形成了開源和閉源觀點對立的情況。
這就不得不提一個開源社區舉足輕重的人物(他本人也真的很重,是個大胖子),他叫 Richard Stallman。(這個人差評君講過,傳送門)
Richard Stallman
當時許多開發者們看著 UNIX 操作系統從開源慢慢走向商業化和閉源感到痛心疾首,于是這位仁兄發表了 GNU (GNU is not Unix)宣言,號召大家一起做一個開源的操作系統,里面運行的所有的軟件也都是開源的。
畢竟槍桿里面出政權,你收費我就起義!
接著,他用法律術語寫了一份通用公共許可證 (General Public License ,簡稱 GPL ),放今天講就是一份開源協議。
遵循 GPL 的項目有這么幾條規則:
(1) 軟件誰寫的著作權就是誰的
(2)誰都可以用這個開源項目做任何事情,而且與原作者無關
(3)誰要是用了這個軟件的源代碼,那么他的作品也必須遵守 GPL,也得開源
(4)在之前那個吃飯的例子里講,上面的話就是你改良了某人的菜譜,那么你也得公開你的菜譜。
(5)為什么要干這種有錢沒得賺吃力不討好的事情?
因為一旦遵循了這樣的協議,開源項目可以集中大家的智慧去得到改良,熱愛自由的開發者們可以形成一個社區一樣的環境來交流技術。
比如說著名的版本控制服務網站 Github 上就有大量的開源項目
文章開頭提到的 Facebook BSD + PATENTS 就是開源協議的一種~
但它到底有什么問題,以至于讓百度寧可費這么大力氣重做他們的東西都要棄用這個協議的產品呢?
因為根據協議內容,只要你在用 Facebook 家的 React 在做項目,那么 Facebook 可以反過來用你的項目專利,而且和 React 無關的專利 Facebook 也可以用。
同時你還不能告他侵權,否則你就會失去 React 的授權,Facebook 可以先告你!
其實 React 挺好用的
可能朋友們對于百度的印象不太好,但這回是 Facebook 做的不太地道,因為根據這個開源協議,百度的人工智能,自動駕駛等等專利都可能受到威脅,這一點 Facebook 的這個協議確實有點太流氓了。
而且不光百度,Apache 也因為開源協議的原因禁用了 React。
其實在科技圈,因為這個開源協議鬧出來的幺蛾子事情還真不少。。。
他的產品被原作者指抄襲
連名字都還叫 “ 貓 ”,你這抄襲也忒不走心了吧。。。
差評君去開源庫里看了看,發現原作者發現被抄襲了之后,更改了開源協議,改成了差評君之前說的 GPL
這就是典型的不遵守開源協議的案例。
再比如說區塊鏈熱潮中的一個叫量子鏈的項目,圖為知乎匿名網友扒出來的開源協議問題。(話題鏈接:https://www.zhihu.com/question/57090778)
一直以來開源項目的公開透明讓不少別有用心的人鉆了孔子,這實在是違背了開源社區的初衷。
但有些公司還在協議里打著保護知識產權的幌子耍流氓。。。
比如 Facebook 這樣本身有著技術卻去污染開源社區的行為受到了許多爭議。
還有人把 Facebook 的點贊倒過來 diss 了一下
開源本身的目的是讓軟件項目和科研項目一樣,互相分享知識,讓前人給后人發明的工具,讓后人更好地改變世界。
而做這樣的事情,是需要很大的熱情的,所以極客君覺得私有軟件也沒有錯,程序員也是要吃飯的。
但是,拿開源去搞一些不正當的行為,用大家的美好夢想去填充自私的欲望,這樣的行為真的不合適。
“ 小公司不用擔心,Facebook 應該不在乎~ ”
文章列表