來源:qiuzhx時間:2019-08-15
當然這些都已經是共識了,我想說的是,前端乃至整個客戶端,定制網站,html5的未來,大方向一定是趨同。
自從 ES2015、React 這些出現以來,前端的生態發生了翻天覆地的變化
前端領域遇到了大量此前從未遇到的問題,相應的也出現了各種各樣的解決方案。我們花在處理這些問題上的時間,不比用于開發業務的時間少,在外界看來,我們把事情給搞復雜了。可以理解,面對新的挑戰,大家給出了不同的方案,一時間百家爭鳴;但經過時間的考驗,大家冷靜下來,求同存異,最終只會留下 1~2 個選項被大部分人接受,成為事實上的標準。
多樣性自然是好事,但如果選擇過于豐富,我們也會因為不知道該選誰而困惑。每到這種時候,我們就會羨慕后端領域,不用在這些事情上耗費過多的精力,方方面面都有非常成熟的解決方案,有需要時只管拿來用就好了。
所以“標準化”會是“技術大爆炸”之后必然的結果,屆時我們或許可以不用編譯、不用 polyfill,大范圍地在生產環境部署 ESM 的代碼;LESS 和 SCSS 的特性被 CSS 吸收,我們可以用更好用的語法去寫 CSS 并直接運行在生產環境;標準和實現之間不再嚴重脫節;TS 得到普及,前端領域不用經歷 Python 2 / 3 的問題;各大瀏覽器在通用特性上的 API 達成統一;……
2. 由“大前端”到“泛客戶端”
多終端已經成為時下以及未來的一個必然態勢,如果每多一類新的終端,就必須配備一類新的開發者,那對于企業而言成本是巨大的。跨端技術自然也就成為了大家的寵兒,如果只需要一類開發人員就可以覆蓋所有的終端,那一定是對所有人都好的。
Web 技術與生俱來的適合開發 GUI 的特點,使得它成為研發跨端技術的最佳選擇。React 推行的“Learn Once, Write Anywhere”的理念,背后其實就是跨端的思想。我們也已經看到以 React native、Electron、PWA 為代表的成功案例,驗證了這條路的可行性,我們甚至已經開始用“大前端”來稱呼現狀。雖然還有很長的路要走,但目的地確實是大家都想要去到的地方。
近來,圈子里還先后出現了能夠讓 React 和 Vue 代碼互相轉換的工具,以及用 React 和 Vue 開發小程序的技術,更是充分說明了這一需求確實是眾望所歸。
或許終有一日,我們可以只需要一套技術棧,就可以生成網頁、小程序、原生的 App、桌面端應用,并且可以運行在所有主流操作系統/平臺上,甚至是 VR/AR 類的應用。(雖然這很理想化,但夢想還是可以有的)屆時各個平臺下的應用之間的邊界會變得越來越模糊,所有的客戶端都會被歸入同一套技術棧。
3. Web OS 逐漸普及
Web OS 一度難以普及的原因,主要在于可行性、離線可用性、安全性、性能等問題,但這些問題都在逐個被擊破,在消費領域推廣 Web OS 越來越成為可能。
以 Chrome OS 為例,我們可以看到這一類的技術已經離我們越來越近。
4. IE11 壽終正寢
相信這是絕大部分開發者,包括微軟自己,都想要看到的結果。IE 的存在對整個前端領域都是一個巨大的限制,我們遇到過太多“其他都好的,就 IE 不支持”的情況,這在桌面端是個不可回避的問題。
當然這還需要比較長的時間,尤其在中國。當然升級需要動力,我們需要引導用戶去邁出這一步,可以看到以微軟、阿里為首的不少龍頭公司已經開始逐漸放棄低版本 IE,但阻礙這一進程的不僅僅只是用戶的惰性,操作系統的價格、國企事業單位的態度也占了一定的比例,需要大家共同的推動。
5. 前端 + AI
TPU 解決了硬件的性能問題,WASM 解決了代碼層面的性能問題,Tensor Flow 提供了適用于 JS 的 API。或許在未來,一部分的 AI 應用會搬到客戶端來實現,而且完全有可能就會用 JS 來開發 AI 應用。
6. 前端 + IOT
既然未來是“端到端”的,那么在 IOT 的領域里,自然也少不了 JS 的一席之地。用 JS 開發嵌入式應用早已有不少案例,隨著 IOT 的普及,自然會有相應的前端開發者開始從事這方面的工作。
7. 前端 + 區塊鏈
首先 Node.js 已經是除 Python 外開發區塊鏈應用的最佳選擇。
結合前面提到的種種,未來用 JS 開發智能合約,內置 AI 技術,用于 IOT,完全可以串得起來。
說到底,定制網站前端現在目前最令人頭疼的,莫過于選擇太多、環境太復雜,能做的事情越來越多,伴隨產生的問題也越來越多,為了解決這些問題所誕生的解決方案也越來越多。這其中有太多和業務無關的工程化需求,還沒有得到完善的解決方案,但這畢竟是探索階段不可避免的現象,一旦對這些領域研究的足夠多了,主流環境必然只會留下少數幾個選項,甚至是統一的答案。到那時,前端的整體環境就會像后端領域一樣,一套方案 hold 住全場。雖然前路漫漫,希望渺茫,但依然期待這一天能夠早日到來。