預測一下前端開發的未來
大家好,我零一。
在 WWC22[1] 上,NPM聯合創始人(當前是Netlify的數據分析師)「Laurie Voss」 發表了對 「web 開發」 未來發展方向的預測演講。
Laurie Voss
本文讓我們來看看這位有 26 年web開發經驗的數據分析師,會帶來哪些洞察。
太陽底下無新鮮事
未來 5 年 「web 開發」 會如何發展,在說出自己的預測前,「Laurie」 先表示:「在座各位,很可能討厭我的預測」。
因爲他自己就不待見這個預測結果。
那麼他預測的依據是什麼呢?簡單來說就是:
太陽底下無新鮮事
作爲一個有 26 年web開發經驗的數據分析師,「Laurie」 總結了技術發展的模型。
簡單來說,一項技術的生命週期會經歷一個輪迴:
提出解決思路
最初,人們在項目開發時遇到一個問題,有部分人開始嘗試解決這個問題。
一旦某個人提出一個讓人覺得 「這個思路很棒」 的解決方案,當遇到類似問題時大家就會嘗試用自己的理解將這個解決方案落地。
比如,當Dan提出Redux模型時,社區還沒有更好的狀態管理解決方案,於是這個方案被廣泛接受,湧現出很多 「基於 Redux 模型的狀態管理方案」。
這是個不斷重複造輪子的過程(也是很多 KPI 項目的源頭)。
找出最佳實踐
隨着這套解決方案不斷實踐,會逐漸產生 「最佳實踐」。
當 「最佳實踐」 產生後,開發者通常會覺得無聊,因爲在這個方向沒有什麼可探索(可造輪子)的了。
這時候,某個無聊的程序員會想:我可以製造一個 「大而全」 的框架 / 系統 / 產品,一勞永逸的解決這類問題。
也就是說,將最佳實踐 「商品化」。
最佳實踐的商品化
「商品化」 過程通常是很激烈的,會有很多團隊 / 公司 / 個人參與其中,提出自己的產品,並抨擊競爭對手在某些方面的不足。
比如,各種前端框架,可以認爲是前端工程師這類消費者消費的商品。
消費者有自己的偏好,可能有人喜歡Vue,有人喜歡React。但作爲商品,最終會產生一個事實上的贏家。
這是一個不變的經濟規律 —— 要達到某個目的,可能有很多產品可供選擇,但一旦其中某款產品被更多人選擇:
-
作爲老闆,可以更容易招到 「會用這款產品的程序員」
-
作爲程序員,可以更好利用這個產品的社區生態
這又會反過來使得該產品被更多人選擇,最終馬太效應(強者愈強)產生。
比如,與Wordpress同時期出現的,還有很多博客建站產品。
但到 2022 年的今天,全世界 43% 的網站是Wordpress驅動的。第二名與他的差距恐怕都不是一個數量級的。
抱怨基礎欠缺
當某一產品成爲主流後,就會聽見一種聲音:不要光會用產品 / 系統 / 框架,你還得理解背後的原理。
當 「Laurie」 剛當開發時,主流的標記語言是 SGML%20is%20a%20standard%20for%20how,It%20is%20metadata.) (Standard Generalized Markup Language,標準通用置標語言)
HTML僅僅是SGML的一個微小子集,特點是規範比較鬆散,但比較易學。
如果你在當時使用HTML,資深工程師會告誡你:不要光會用HTML,還得理解背後的SGML,要不然是做不長久的。
大規模應用
當某個產品成爲絕對主流,被大規模應用,以至於成爲事實上的 「基礎設施」 後,下一代技術人很可能不會再接觸上一代人所謂的 「原理知識」。
比如現在,HTML已經成爲前端基礎設施了,誰還記得SGML呢?
另一個例子,現在的老前端,很多都用過jQuery。
在前端框架興起之前,大家都用jQuery操作DOM。面試時也會考察jQuery源碼。
畢竟,大家都認可 —— 原生JS纔是基礎。
jQuery中的選擇器太好用,以至於主流瀏覽器都將他內置了,這就是querySelector的選擇器語法。
最終,querySelector成爲選擇DOM時事實上的標準。誰會在意背後的原理呢?
回到原點
最後,在基於新的 「基礎設施」 的開發中又會遇到新的問題。於是,一切又回到了起點。
比如,最初開發者使用JSP、PHP開發前端頁面。
後來有了CSR。
再後來爲了解決CSR的各種問題,有了SSR。
但從實現原理來說,JSP、PHP不就是SSR麼。
Laurie 的預言
最後,基於上述輪迴模型,「Laurie」 提出了對 「web 開發」 的預言。
在 21 年的一次調查中顯示,有 68% 的開發者使用React開發頁面。
「Laurie」 表示:在他的職業生涯中,能達到jQuery那麼大的使用規模,React是唯一一個。
沒準兒未來React會被作爲基礎設施在瀏覽器中直接實現(就像jQuery的選擇器一樣)。
但不是以 「直接集成 React 本身」 的方式,可能是將當前還不太好用的Web Components重新設計爲類似React Component的形式。
在當前,有很多新的框架基於React實現,比如Astro、Remix、Next.js、Solid.js。
這些框架的開發者假設自己的用戶已經會用React、喜歡用React(否則也不會用他這款框架),這從側面反映了React已經被作爲前端基礎設施。
如果接受了這個設定(React會作爲前端基礎設施),那麼我們就回到了輪迴模型的起點。
有什麼事情是當前開發者用React反反覆覆實現,又覺得很無聊的事呢?
一個答案是:寫組件。
所以,「Laurie」 認爲:未來 5 年,基於 「React 組件」 的可視化編輯器會成爲主流。
類似 React Bricks[2] 這款產品:
屆時,一部分開發者負責實現各種功能的React組件,這類組件被稱爲Bricks(磚塊)。
而大部分開發者則基於磚塊,用可視化編輯器拖拽實現不同頁面。
這類開發者甚至不會接觸到HTML,在他們的基礎設施中,最小的單位是磚塊(React 組件)。
事實上,早期的瀏覽器(由 「Sir Tim」 開發的WWW)就是用拖拽、輸入等方式實現的富文本編輯器。
呵,太陽底下無新鮮事。
總結
如果你看到這個預測後覺得挺討厭的 —— 就這?
就像文章開篇就提到的,「Laurie」 自己也討厭這個預測。
但歷史一次次證明,曾經被討厭的設計,最終很可能變成主流(比如 2013 年時,前端們對待JSX的態度)。
26 年前的開發者會認爲只會HTML,不會SGML是不靠譜的。
10 年前的開發者會認爲只會jQuery,不會原生JS是不靠譜的。
現在的開發者會認爲只會前端框架,不懂實現原理是不靠譜的。
那有沒有一點可能,5 年後的開發者會認爲只會拖拽生成頁面,不懂開發組件是不靠譜的?
參考資料
[1] WWC22: https://www.youtube.com/watch?v=hWjT_OOBdOc
[2] React Bricks: https://reactbricks.com/
前端印象 零一,分享技術,不止前端
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/KH5vW6-jNnavaz6dg16F7g