標籤:

React 16 發布,Facebook 如約解除了專利條款

26 日,Facebook 發布了 React 16,並如之前承諾的,將 React 16 JavaScript 庫以及 GraphQL 查詢語言的許可證從原來的 BSD + 專利條款改為更受歡迎的 MIT 許可證。

正如 Facebook 工程總監 Adam Wolff 上周說的,「Facebook 未能說服開發者社區其 BSD + 專利條款的許可證是與開源需求所兼容的」,因此,在招致社區的抗議和拋棄,尤其是在發生了 Apache 基金會將 React 的許可證列入「X 類別」和 WordPress 棄用 React 事件之後,Facebook 表示願意將這個重要的 JavaScript 基礎框架更換成大家更歡迎的 MIT 許可證。

作為最廣泛使用的用於構建 Web 用戶界面的基礎框架,React 的這一許可證的修改得到了社區的強烈反響,雖然有些不同意見,但是大部分人還是表示喜聞樂見——一方面代表了社區的勝利,另外一方面也可以避免大量的採用 React 的項目重寫。

不過,也有一些人對 Facebook 採用 MIT 許可證表達了不同的看法。RedMonk 的創始人 Stephen OGrady 表示,Facebook 採用不包括專利條款的 MIT 許可證,而沒有採用包含了更弱的專利條款的 Apache 許可證,相比於原來的 BSD + 專利條款,按倒了葫蘆起了瓢。「問題是,通過選擇這種方式,Facebook 並沒有像在 Apache 許可證下一樣在 MIT 許可證中傳達任何專利授權……如果 Facebook 在 React 申請了專利,換句話說,該軟體的用戶並沒有被 MIT 許可證授予明確的許可,只有一個未經測試的隱含許可」。

此外,除了 React 16 換用了新的 MIT 之外, Facebook 也將前一天發布的 React 15.6.2 換用了 MIT 許可證,以便那些不方便升級 React 16 的用戶使用。

而曾經被 Gitlab 由於該許可證條款而放棄的 GraphQL 也被修改了許可證。作為一個用於規定實現標準的規範,其現在被放在開放式網路基金會協議(Open Web Foundation Agreement (OWFa) v1.0)之下,並且現在 Facebook 的 GraphQL 實現也採用了 MIT 許可證發布。

作為一個廣泛使用 JavaScript 框架,這次 React 16 的升級只有很少的破壞性改變,雖然其中大部分庫都經過了重寫。而新的 React 16 支持非同步渲染,允許處理大型組件樹而不會阻塞主執行線程。此外,還增加了一些屢屢被要求而難以添加的功能,比如使用錯誤邊界進行異常捕獲,和從渲染器返回多個組件。

而 React 16 中的伺服器端渲染也要比之前的版本快得多,測試表明,其比 Node 4 快 2.4 倍,比 Node 6 快 3 倍,比 Node 8.4 快 3.8 倍。


推薦閱讀:

React 的許可協議到底發生了什麼問題?
react源碼解析-4ReactElement與ReactElementValidator
知乎是否會停止使用React?
react.js文件體積為何如此龐大?
react中你們都是通過什麼方式實現動畫的?

TAG:React | Facebook |