來自NPM聯合創始人的預言:前端未來會這樣
Laurie Voss
未來5年 「web開發」 會如何發展,在說出自己的預測前, 「Laurie」 先表示: 「在座各位,很可能討厭我的預測」 。
因為他自己就不待見這個預測結果。
那么他預測的依據是什么呢?簡單來說就是:
太陽底下無新鮮事
作為一個有26年 web 開發經驗的數據分析師, 「Laurie」 總結了技術發展的模型。
簡單來說,一項技術的生命周期會經歷一個輪回:
提出解決思路
最初,人們在項目開發時遇到一個問題,有部分人開始嘗試解決這個問題。
一旦某個人提出一個讓人覺得 「這個思路很棒」 的解決方案,當遇到類似問題時大家就會嘗試用自己的理解將這個解決方案落地。
比如,當 Dan? 提出 Redux 模型時,社區還沒有更好的狀態管理解決方案,于是這個方案被廣泛接受,涌現出很多 「基于Redux模型的狀態管理方案」 。
這是個不斷重復造輪子的過程(也是很多KPI項目的源頭)。
找出最佳實踐
隨著這套解決方案不斷實踐,會逐漸產生 「最佳實踐」 。
當 「最佳實踐」 產生后,開發者通常會覺得無聊,因為在這個方向沒有什么可探索(可造輪子)的了。
這時候,某個無聊的程序員會想:我可以制造一個 「大而全」 的框架/系統/產品,一勞永逸的解決這類問題。
也就是說,將最佳實踐 「商品化」 。
最佳實踐的商品化
「商品化」 過程通常是很激烈的,會有很多團隊/公司/個人參與其中,提出自己的產品,并抨擊競爭對手在某些方面的不足。
比如,各種前端框架,可以認為是前端工程師這類消費者消費的商品。
消費者有自己的偏好,可能有人喜歡 Vue? ,有人喜歡 React 。但作為商品,最終會產生一個事實上的贏家。
這是一個不變的經濟規律 —— 要達到某個目的,可能有很多產品可供選擇,但一旦其中某款產品被更多人選擇:
作為老板,可以更容易招到「會用這款產品的程序員」
作為程序員,可以更好利用這個產品的社區生態
這又會反過來使得該產品被更多人選擇,最終馬太效應(強者愈強)產生。
比如,與 Wordpress 同時期出現的,還有很多博客建站產品。
但到2022年的今天,全世界43%的網站是 Wordpress 驅動的。第二名與他的差距恐怕都不是一個數量級的。
抱怨基礎欠缺
當某一產品成為主流后,就會聽見一種聲音:不要光會用產品/系統/框架,你還得理解背后的原理。
當 「Laurie」 剛當開發時,主流的標記語言是SGML (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這款產品:
屆時,一部分開發者負責實現各種功能的 React組件? ,這類組件被稱為 Bricks (磚塊)。
而大部分開發者則基于磚塊,用可視化編輯器拖拽實現不同頁面。
這類開發者甚至不會接觸到 HTML ,在他們的基礎設施中,最小的單位是磚塊(React組件)。
事實上,早期的瀏覽器(由 「Sir Tim」 開發的 WWW )就是用拖拽、輸入等方式實現的富文本編輯器。
呵,太陽底下無新鮮事。
總結
如果你看到這個預測后覺得挺討厭的 —— 就這?
就像文章開篇就提到的, 「Laurie」 自己也討厭這個預測。
但歷史一次次證明,曾經被討厭的設計,最終很可能變成主流(比如2013年時,前端們對待 JSX 的態度)。
26年前的開發者會認為只會 HTML? ,不會 SGML 是不靠譜的。
10年前的開發者會認為只會 jQuery? ,不會原生 JS 是不靠譜的。
現在的開發者會認為只會前端框架,不懂實現原理是不靠譜的。
那有沒有一點可能,5年后的開發者會認為只會拖拽生成頁面,不懂開發組件是不靠譜的?