Web 黨 和 Native 黨都歇會兒吧 - 爭論毫無意義

jopen 9年前發布 | 5K 次閱讀 web

原文  http://tech2ipo.com/95966

Web 黨 和 Native 黨都歇會兒吧——爭論毫無意義

首先要說明的一點:目前大多數移動應用都是雜交種。好了,我們繼續。

Mozilla 開發者 James Long 堅持認為,無論現在還是將來,Web App 永遠,無法,與 Native App 相匹敵。雖然 Long 先生的預言散發著一股濃厚的挑釁意味,不過也有可能是對的。

但與此同時,我們也漸漸發現,圍繞 Web 與 Native App 孰優孰劣的爭論其實毫無必要。

市場調研公司 Forrester 的研究稱,看待這一問題應當以史為鑒。「PC 客戶端曾在很長一段時間內起著主導作用,但最終被 Web 版所取代。歷史也將在移動端上重演。」或許吧。

不過,如果 非死book 剛發布的前端界面開發工具 ReactJS 透露出什么風聲的話,那就是——網頁也好,本地也罷,未來應用開發的趨勢是兩者的結合,即 Hybrid App(混合模式移動應用)。并且,所謂的「未來」,其實早已到來了。

DOM「太慢了」

正如 Long 所說,Web App 的問題在于其 DOM(文檔對象模型)「太慢了」,并且絕無改觀的可能。對那些認為 DOM 將變快的人,Long 是這么說的:

(根本)無需證明。沒有任何跡象表明 DOM 會變快,就算真實現了,可能要過好幾光年才能應用在移動端。要讓它在速度上產生質的飛躍,單從技術層面上是無法實現的。就好比你要渲染一個包含一百萬個多邊形的模型,那么你真正要做的是減少多邊形數量,而非優化算法。

這也正是 React Native 所做的:干脆把 DOM 扔到一邊。

閱讀應用 Flipboard 最近就這么干了一回。公司在解釋這么做的目的時表示,「你根本無法用 DOM 來構建一個每秒 60 幀的滾動列表視圖。」簡單直接。

又或如獨立博主 John Gruber 所說,「Flipboard 利用 HTML5 的 <canvas> 元素打造了自家 Web App 框架,由此也繞過了 DOM 與傳統 CSS 的限制。

移動 Web 之爭

我們并不想討論 Flipboard 和其他一些公司「政治正確」的觀點,我們只考慮「工作效率」這回事。事實證明,開發混合模式應用是最有效的方法,一直以來都是如此。

而事實是,當我們談論 Native App 時,其實我們說的已經是 Hybrid App 了,因為大多數應用中都有著 HTML 的影子。這倒不是我們認為應該支持哪一方,而是牛逼的開發者都這么干。

拿 Instagram 舉個例子吧。

雖然看上去是 Native App,但 Instagram 時間線其實只做了一個 WebView。這并沒有引起大家爭論,而且確實也沒必要爭論。Instagram 的開發者并不想卷入撕逼大戰,他們只是想努力做個好應用。混合開發模式幫了他們的大忙。

非死book CEO 馬克·扎克伯格曾經聲稱 HTML5 是 非死book「犯過的最大錯誤」(這話本身的準確性還有待商榷),但很明顯,旗下的 Instagram 并沒聽他的話。

混合才是王道

所以問題的關鍵是,我們不應該把視線聚焦在應用開發模式,而是要關注如何打造好的應用。

當開發者 Nic Raboy 將關注的重點由如何(how)開發,轉為開發何種(what)應用時,他便領悟到了這點:

我寫的應用大多都能獲得好評。只要上 Google Play 看看,你就會發現沒人關注應用是 Native 還是 Hybrid。所以重點在這:很多噴子會黑開發者,說 Hybrid App 無論在界面還是表現上都不如 Native App,但這黑點完全不對。如果開發者或設計師本身不給力,那應用就活該被嫌棄,跟它用哪種開發模式完全沒關系。

所以,如果說 Web 開發技術容易學習,這沒錯;Hybrid App 省錢省時間,這也沒錯(如果你了解 Native App 的開發成本,就會更同意這點);Hybrid App 也能體驗超凡,這也沒錯。以上這些都沒錯。

而且也真的不重要。

因為開發者們只想在最短時間里開發出最好的應用。絕大多數時候,這意味著選擇混合模式。

如今的普遍方法是在所謂 Native App 中封裝一個 WebView,實際訪問的仍舊是 Web App。而在 React JS 面世后,情況可能會有所不同。

VisionMobile 最近這樣寫道:

非死book 最近發布的 React Natives 讓我們得以一窺移動應用的未來:它具有 Native App 的表現,類似 Web App 的界面;而且基本由 JavaScript 寫成。

在 React Native 的世界里,我們沒準可以把寶全押在 Web 上。

無論應用在技術層面上如何實現,真理只有一個:混合。這也是如今移動應用的主流開發方式,雖然我們表面上仍稱之為本地(Native)。或許 React Native 將部分改變我們開發的過程,但并不會改變使用混合模式的本質。

所以 Web 黨和本地黨的爭論,本質上只是開發市場的問題。隨它去吧。

原文地址: readwrite

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!