翻譯:給創始人和 CTO 們的 React 許可協議解惑

作者:James Ide

原文鏈接:medium.com/@ji/the-reac

譯者按:本文英文原版標題為「 The React License for Founders and CTOs」,我認為這篇文章的內容值得每一個使用 React 和關心 Facebook 開源項目未來發展的朋友閱讀了解。這篇文章作者是 Facebook 的前員工,立場看起來也傾向於認為Facebook協議的合理性。翻譯這篇文章僅僅是為各位提供一個視角。Peace

幾周以前,關於 React 這個孕育於 Facebook 的流行渲染庫的許可協議的討論又甚囂塵上。Apache 基金會認定 Apache License 不是 Facebook 的協議的超集,並且 Apache 的項目將不能再使用基於 Facebook 協議的代碼,比如 React。大家很好奇,如果 Apache 決定不使用 React,那麼其他正在使用或者考慮要使用 React 、GraphQL 及其他 Facbook 開源項目的公司要怎麼辦?業界出現了很多關於 Facebook 的許可協議和動機的猜測。

幾年前,我曾在 Facebook 工作過。那段時間有很多大事發生,包括一項很大的專利訴訟以及 React 的開源。一些重大的事件影響了 Facebook 對於專利的看法。我希望關於這些事件的解釋能夠幫助大家理解 Facebook 的許可協議緣何成為現在的樣子。

那些自衛教給 Facebook 的事

2012年3月12號,大約在 Facebook 簽署 IPO 的一個月前,雅虎起訴 Facebook 侵犯了它 10 項關於網站和網路服務的專利。通常那些準備上市的公司,更傾向於通過和解訴訟來抹去投資者腦海中的疑雲。業界關於這項針對 Facebook 的訴訟最普遍的想法是這沒什麼價值;有些人甚至說,雅虎就是個專利混子。但這次,Facebook 想為自己辯護,並樹立一個不好在法庭外解決的先例。

三周以後,Facebook反訴雅虎侵犯了自己的 10 項專利,理由是 「為了回擊雅虎攻擊它的一個合作夥伴並靠訴訟壓制創新的短視決定」。於此同時,Facebook 也在快速增加自己的專利數量。這個時期 Facebook 為購買 IBM 和 微軟手中的專利花了超過 5.5 億美元的費用,其中包括 AOL 賣給微軟的網路技術關鍵專利。Facebook 沒有在針對雅虎的反訴中包含這些專利,但它這時已經有了一個更強大的專利庫以便將來的反訴。

除了 Facebook 的反訴,雅虎自己還有其他麻煩纏身,比如裁員 2000 人、失去了它的首席產品官和數名董事會成員以及 CEO 的辭職(主要原因不是針對 Facebook 的訴訟)。在新 CEO 上任這段時間,雅虎很快同意撤銷對 Facebook 的訴訟,並且與 Facebook 握手言和,互授專利。

2012年這起雅虎的訴訟,在 Facebook 對專利抱有防衛性態度這件事情上扮演了關鍵角色。Facebook 成功地用專利庫保衛了自己。同時它也為擴大自己的專利庫花費了超過 5 億美元。有一個關鍵點需要理解,即 Facebook 把使用和投資專利作為防衛自己的重要方法。

開源在 Facebook 的狀況

數年之間,Facebook 還有一個問題跟專利有關:如果你在 Facebook 工作,你很難將自己的代碼開源。法務團隊需要將每個項目與公司的專利庫進行比對檢查,來確保專利的防衛價值。他們不想潛在地將自己的關鍵專利(也是法律防衛的一部分)許可給雅虎這樣可能起訴自己的公司。

很多開源協議要麼授予用戶不可撤銷的專利許可,要麼壓根沒提過專利這回事兒結果導致了歧義。Facebook 的法務團隊想要安全與保有公司的關鍵的防衛性專利。Facebook 很可能需要靠它的專利來反訴其他公司對其發起的專利侵犯訴訟。如果 Facebook 以開源的形式將專利許可拱手交出,那提出專利訴訟的對手公司將更免疫於 Facebook 的反訴,因為它可能沒有侵犯 Facebook 的專利。

對 Facebook 的工程師和律師們來說,來來回回檢查代碼並擔心失去專利權這件事很是讓人糾結。單獨檢查每個開源的項目需要花費大量的精力,而且項目並不僅僅是被開源罷了——它們會一直保持開源,所以理論上法務團隊需要檢查每一次提交。工程師和律師們希望開源代碼並確保用戶不會擔心專利這件事。他們還不想失去能夠保衛公司的關鍵專利,來防止如果有其他像 2012 年雅虎那樣的訴訟出現。

在 Facebook 開源代碼的困難,包括 2013 年的 React,是導致在開源屆的貢獻成為公司發展至今的阻力的一個原因。它不是一個在前端領域很有名聲的開源貢獻者。但是 Facebook 想要開源,尤其是當像 React 這樣的項目社區壯大,核心貢獻者開始出現,以及面試候選人常常提起 React 或者其他來自公司的開源項目是他們應聘的原因的時候。Facebook 的人想要能更簡單地開源項目並且不用擔心專利的事情。Facebook 的解決方案就是它的 BSD+Patents 許可協議。

Facebook BSD+Patents 許可協議

Facebook 發布了一個被稱作 Facebook BSD+Patents 的許可協議,這項協議由標準的 3-Clause BSD 協議外加一份專利授權組成。而這份專利授權,就是關於這份協議的討論的難點。

這份授權指出,Facebook 明確地給出與自己開源代碼相關的專利的授權。 這讓其他使用 Facebook 的用戶得到明確保證,Facebook 不會粗暴地指控它們侵犯自己的專利。

這份授權同樣指出,這些專利的許可是不可撤回的,當且僅當用戶恰好起訴 Facebook 侵犯自己的專利時,這份專利授權才會失效

這份授權明確了 Facebook 在像針對雅虎2012年訴訟的反訴中保有專利。 除此之外 Facebook 不能因為其他任何原因而收回專利授權,包括關於反壟斷、誹謗、或者合同違約的訴訟。如果Facebook 先對其他公司發起了專利侵權訴訟並受到了反訴,那麼 Facebook 同樣不能收回授權許可。Facebook 的專利授權旨在共享代碼的同時,保有在專利訴訟中自衛的能力。

BSD+Patents 許可協議的負面影響

Facebook BSD+Patents 許可有幾項負面因素需要考慮。這其中最實際的可能要數它所造成的誤解和擔心了。這影響了 React 的應用,以及人們在做關於自身生計的選擇時的安全感。

另一項負面影響是,如果你依賴 Facebook 的開源代碼,那麼這份許可協議讓你很難指控 Facebook 侵犯了你的專利權。Facebook 可以使用你的專利設計——而你想要在法庭上保有它們的威力是可以理解的。基於 Facebook 的專利授權中的某些部分,你將在指控 Facebook 侵犯你的專利時失去對 Facebook 開源代碼的使用權。這代價可能會讓你痛苦,特別是在你正使用 React 或其他 Facebook BSD+Patents 許可下的項目時,而且轉移到其他像 Preact 或者 Vue這樣的類 React 庫所帶來的幫助並不明確,不管在你使用何種基於 Facebook 專利的庫,在法律的眼中,你總歸是需要 Facebook 的專利授權的。

我認為這些是 BSD+Patents 許可協議的問題所在。我寫這篇文章第一是為了幫助大家決定要不要使用 React 和其他 Facebook 的開源項目,第二是幫助大家理解 Facebook 在專利權上的防衛性立場以及為什麼它導致了 BSD+Patents 許可的出現。我不認為這份協議是完美的,也不認為它適合所有人。我也不知道為什麼Apple,Google,微軟,或者 Facebook 自己有時候也願意以更標準的開源許可協議來發布自己的項目(比如 Apple 的 Swift,Google 的 Angular、Kubernetes、TensorFlow,微軟的 .NET 以及 Facebook 的 RocksDB, xctool)。

Facebook 開源項目的激增

在過去的數年當中,包括 React 在內的基於 BSD+Patents 許可協議的 Facebook 開源項目已經頗為流行。 Facebook 的 Github 賬號擁有了過百的項目,包括很多像 React、React Native、Flow、AsyncDisplayKit 以及 GraphQL 的實現等重要項目。Facebook 現在是一個頗為多產的客戶端開源項目貢獻者。

實際情況中法務的部分顯得比較安靜。Google 和 Facebook 的法務團隊合作(編者按:此處存疑),表面它們都認同專利授權。以我的了解,Facebook 還從來沒有主動提起過任何專利侵權訴訟。我聽到一些擔心說 BSD+Patents 許可協議會讓那些使用 React 的公司作為被收購對象不再那麼具有吸引力,但大部分頂端的技術收購者已經在以某種方式使用 React 或其他 Facebook 開源項目了。

近來,Apple,Microsoft,Skype,Amazon,Uber,Tesla,Netflix,Salesforce,Quip,Airbnb,Twitter,Pinterest,Paypal,Slack,Dropbox,Google(內部),以及很多其他重要的公司,甚至是雅虎(現在的 Verizon),都在網站和應用中使用了 React 或者其他 Facebook 的開源項目。這些公司與 Apache 基金會相比有其他不同的需求,其中一些公司還以成為核心貢獻者、進行技術演講、組織參加開發者集會等形式回饋 Facebook 開源項目。即使考慮到許可協議及其所有相關的問題,這些也只是使用和構建 React 生態的一小部分公司而已。

感謝閱讀。

其他

以我的了解,一些其他比較精確且有用的文章:

  • Understanding the Facebook vs Apache Software Foundation License Kerfuffle?—?by Jan Lehnardt
  • React』s license: necessary and open??—?by Luis Villa
  • Open Source License FAQ?—?by Facebook

推薦閱讀:

哪個互聯網公司使用 facebook thrift 做底層架構,實現高性能、可擴展的web應用?引入thrift之後的優缺點是什麼?
研究人工智慧三十年,Facebook AI 負責人Yann LeCun到底有多牛?
如何評價嘲諷帝吧出征FB的人為小粉紅?
極光日報 第 199 期 | 2017 / 6 / 20

TAG:React | Facebook | SoftwareLicense |