如何看待 BrendanEich、Vjeux 等人就 React Native 的討論?

5.22 JavaScript 語言創始人 BrendanEich 和 Facebook React/React Native 負責人 Vjeux 等大神在 Twitter 上就 React Native 的設計初衷和理念等進行了討論:https://twitter.com/BrendanEich/status/734109817778802688,讓我們更多地了解到 RN 設計背後的一些背景和理念,你如何看待?

受限於知乎問題說明 3000 字的限制(也不說當前多少字,交互差評),只能整理成圖片了,更完整的對話請訪問 https://twitter.com/BrendanEich/status/734109817778802688 瀏覽


從 Web 的角度, Eich 是對的。從為公司創造價值、研發投入和項目周期的角度,RN 目前的路子是對的。

參考PC 客戶端發展史,條件還不夠滿足,你一上來就 Web everything ,那不現實。但當 Web 技術越來越成熟、設備性能越來越高之後,會爭搶很多 UI programming 的市場。現在如果你做一個輕型的、跨平台的 PC 客戶端,那麼基於 Web 技術的 electron 就已經是一個不錯的選擇。

早兩年在 Android 上做 web app 和 hybrid 的開發者可能深有感觸,你想做各種動畫,瀏覽器性能很差、兼容性很差,API 缺失,就算用 Cordova 和 crosswalk ,並且使用各種 hack 也沒法完全達到 native UI 的性能。

例如基於 dom 的 infinite list ,你努力了一兩周,好不容易開發出一個性能勉強能接受的版本,但滑動得快了還是容易出現 blank screen flicker(渲染跟不上了),而同樣的代碼在 PC 上完全是流暢絲滑,你完全摸不著頭腦,只能不斷地深挖、profile。這時候搞 Android 客戶端的同事隨手拖了一個 RecyclerView ,同時放到老闆面前,效果一對比直接讓你絕望。

這時候, React Native 就是一個很自然的產物,兼顧了 js 的靈活,和 native UI 的性能,甚至在 React Native 出現之前,就已經有很多人試過這麼干,就我知道的情況,至少 egret 、cocos 、 NativeScript 它們都已經嘗試過。

這就是理想和現實的差距。我非常支持 Brandon Eich ,我認為隨著技術的成熟和設備的進化, Web 技術會不斷地擴大在移動開發中的份額。若干年以後想要開發一個移動 app ,可能我的首選就是 electron/Cordova 這樣的方案,在此之上我可以隨意選擇開發框架,並且大部分代碼可以同時跑在標準的 Web 瀏覽器上。

但在此之前我們都要痛苦地掙扎、尋找、掙扎,直到這一天來臨。這樣看來,也許 React Native 在現階段仍可稱之為「並不壞」(not bad) ?


推薦閱讀:

這些手機銷售前端頁面用了哪些技術?
JS 中 var add=function(){} add(a)(b)(c); 是什麼簡寫?
匿名函數的this指向為什麼是window?
HTML中的html head body標籤有且只能有一個,為什麼不可以直接省略?
bootstrap 用來構建大型互聯網網站前端布局可行性如何?

TAG:前端開發 | JavaScript | ReactNative |