【CSDN 編者按】隨著 AI 技術的崛起,以及許多低程式碼/無程式碼工具的出現,「前端」這個曾經大火的領域,逐漸不被看好,甚至有人發出「前端已死」等一些激進的言論,那現實是否如此,本文作者並不這麽認為,其表示:前端將成為一個新興市場,隨著以減輕後端和運維負擔為目標的抽象解決方案的改進,前端開發人員在購買決策中的角色將繼續壯大。
原文連結: https://redmonk.com/kholterhoff/2024/03/28/the-future-of-frontend-is-already-here/
未經允許,禁止轉載!
作者 | K
ate holterhoff
譯者 | 彎月
關註技術棧頂端的工程師們即將迎來一個新興市場,因為整個軟體行業正在往打包、托管和抽象化解決方案趨勢發展,目標是最大程度地減輕後端和基礎設施的痛苦,而這些是前端工程師不太感興趣的開發領域。
我認為,我們都希望將營運的工作轉交、抽象化、遷移到雲端,前端開發人員並不是唯一的期許者。事實上,越來越多的開發人員,不論是前端、後端還是運維人員,在描述工作流程時都表露出希望將底層的工作委托給托管提供商。
有關前端未來的討論目前非常流行。Josh W Comeau 反對 AI 會導致「前端開發終結」的誇張言論,而 Shahan Chowdhury 有一篇貼子【前端開發的未來】認為 AI 和無程式碼/低程式碼只能輔助前端開發人員,而無法取代他們。此外,Emma White、Ritesh Kumar 和 Luigi Toporov 等人釋出的貼子也討論了 JavaScript 和 Web 開發的現狀。然而,我認為所有這些言論都忽略了一點:前端將成為新興市場。也就是說,隨著以減輕後端和運維負擔為目標的抽象解決方案的改進,前端開發人員在購買決策中的角色將繼續壯大。
從 BaaS 到 PartyKit
首先,我們來談一談專門為前端工程師提供服務的供應商,以及基於雲的抽象化在前端開發確立市場地位方面的作用。
PartyKit 總裁 Sunil Pai 曾出席過前端播客 JS Party,他是 React、JavaScript 和 CSS 領域的一位聲名顯赫的人物,而且 PartyKit 面向的是前端工程師。Sunil Pai 的最新計畫受到了很多人的關註,該計畫旨在簡化即時同步,長期以來即時同步一直是開發人員的一大難題,尤其是當多名開發協同工作時(比如 Figma、Google Docs 和 Replit)。
PartyKit 代表了前端崛起的一個案例,不僅展現了 JavaScript 領域正在發生的創新,而且還表明了前端買家市場的強勁。供應商們註意到了專門服務於前端開發人員的平台的成功,並渴望推出自己的解決方案以滿足市場需求。JS Party 聯合主持人 Kevin Ball 表示:
我很喜歡 [PartyKit 的] 的一句描述:「PartyKit 類似於 Vercel 或 Netlify,只不過你構建的是即時套用……」Vercel 和 Netlify 非常優秀,他們的目標是:「如果你是一位前端開發人員,你非常清楚自己的工作,那麽你可以依賴我們。我們可以處理好所有其他工作,我們可以降低這些工作的難度。」而你表示:「我希望多人協同開發也能這樣。」
Ball 認為,市場上也有先例:消除管理後端操作痛苦的平台。這些供應商不僅包括 Vercel 和 Netlify,還有 Supabase、Google Firebase、MongoDB Atlas、AWS Amplify 和 Appwrite 等 BaaS 公司。這其中還包括 Zephyr Cloud 之類的公司,這是一家由微前端容器化技術 Module Federation 的發明者和維護者創立的雲服務公司,旨在降低開發和管理微前端的難度。在現有公司和新成立的創業公司中,將前端開發人員視為一個有利可圖且渴望購買的客戶群的公司數量正在穩步增長。所有這些公司都認識到,自我管理營運和基礎設施的認知負荷,更何況資料庫、安全性、身份驗證和可觀察性都帶來了巨大的挑戰,這些工作實在沒必要由公司內部處理。
更多的抽象化
前端開發人員成為新興市場要歸功於與雲托管抽象化崛起的一系列軟體開發趨勢。抽象化的解決方案簡化並擴充套件了這些原本很難管理的原語的使用。就 PartyKit 這個案例而言,這裏所說的原語包括 Cloudflare 的 Durable Objects,這些物件本質上是Cloudflare Workers,但擁有記憶體中的狀態。
此處,我們來講講關於讓位於托管服務的原語的故事。首先,在軟體開發中,服務的抽象化歷史也同樣適用於語言。花費時間編寫裸金屬和低階語言程式碼的程式設計師越來越少。盡管 C、組譯和 Fortran 這類人類可讀性較低的語言不會很快消失,但 Rust 吸引到的支持者越來越多,而且大多數開發人員日常編寫的也都是技術棧頂層的高級程式碼。
GitHub Octoverse 2023 現狀的報告證實了這一趨勢。根據他們的調研,在 2020 萬開發者(指擁有 GitHub 帳戶的個人)中,過去一年中「開發者數量增加了 21%」,JavaScript 仍然是最受歡迎的語言。RedMonk 自己的語言排名也印證了這一發現:自 2015 年以來 JavaScript 一直是最受歡迎的語言。事實上,在排名前 7 的語言中有 6 個來自技術棧的頂部,其中三個是客戶端語言(JS、CSS 和 TypeScript)。根據這些調查,我可以得出一個結論:隨著軟體領域的不斷蓬勃發展,新進入該領域的開發人員大部份都將從事前端工作。
除了開發人員編寫的語言之外,現代軟體開發還嚴重依賴於將瑣碎的工作和復雜性抽象出去的服務。雖然一些脾氣暴躁的系統管理員無疑會對這一宣言感到不滿,但事實上,外包營運越來越受歡迎,因為運維很難,基礎設施很昂貴,安全性和合規性的風險很高。
API 經濟與雲原生
前端成為新興市場是抽象化不斷擴散的結果,而抽象化已成為一種不可避免的趨勢。托管服務可以將使用者認證等復雜且耗時的任務交給領域專家,從而提高安全性;還可以將高度規範化的服務,比如 POS 系統,交給領域專家處理。如此一來,各個公司就可以專心開發業務邏輯。在前端工具和供應生態系方面,這種向抽象化的轉變源自全棧的失敗。盡管全棧工程師的興起對雇主有利,但這一概念被該領域的許多人普遍抨擊,因為期望開發人員掌握一切會給他們帶來不必要的認知負擔。正如 Laurie Voss 所說:
抽象化細節可以幫助我們脫離不斷發展的技術棧的苦海。
下面,我們透過回顧所謂的 API 經濟來深入研究抽象化的主題。自從雲端運算問世以來,API 就成為了雲端運算發展的關鍵,Salesforce 和 eBay 早在 2000 年就允許存取自家的 Web API,在提供 API 的推動下,很多公司都采用了「快問開發人員」的理念,參照 Paul Lehair 的話來說,這已經「吞噬了世界」。API 是現代軟體開發的關鍵,而前端工程師恰好可以從這一開發中受益。J Chris Anderson 是 Couchbase 的聯合創始人之一,目前就職於面向前端開發人員的資料庫創業公司 Fireproof,他認為:
目前 API 正在整合到前端,這就是前端具有購買力並成為新興市場的原因。
最近,大型語言模型的整合中也體現出了 API 驅動的開發的崛起。開發人員不必再自行訓練模型或在本地托管,他們可以利用 OpenAI 的 ChatGPT、Google 的 Gemini 或 Anthropic 的 Claude 等輕松構建聊天機器人,開發人員只需整合這些供應商的 API 即可無縫而又簡單地使用這些服務。事實上,OpenAI 的客製 GPT 提供了客製的體驗,消除了訓練和自主托管這些模型的痛苦。他們非常重視開發者體驗,提供了詳盡的文件、快速入門指南和 SDK。
除了前端工程師對 API 的熟悉程度之外,供應商為這些使用者提供的抽象化通常是雲原生的。Begin 的聯合創始人 Brian LeRoux 對前端成為新興市場的未來持樂觀態度,因為該領域對雲的熟悉度很高。從供應商的角度來看:
前端工程師是遷移到新雲的絕佳市場。
因為前端開發人員在構建動態的互動式網站時必須考慮後端,所以他們很清楚無伺服器和雲托管的重要性。事實上,伺服器/客戶端分兩步走的挑戰尚未得到解決,該領域內大量聰明的開發人員的腦力都用於解決這些挑戰了。
抽象問題
當然,采用這些抽象化程度高的解決方案也存在一定的弊端。抽象化的產品和服務通常以 API 和庫的形式交付,同時也將其他人的程式碼引入到計畫中。這就意味著美麗與危險並存。抽象化的解決方案要求計畫采用特定的形式,並且往往難以隨著計畫規模的擴大而擴充套件。我曾聽到過一個陳舊的觀點,推特必須將後端從 Ruby on Rails 改為 Scala(一種建立在 Java 基礎上的語言) ,因為 Java 之類的低階語言具有更好的可延伸性。就處理繁重的流程和緩存層而言,Java 之類的語言仍然是非常寶貴的。然而,像推特這樣的大型應用程式是例外,而不是順應規則,這意味著成長的痛苦並不會阻礙大多數開發人員使用 JavaScript 和 TypeScript。
除了規模化的問題之外,透過托管服務和產品抽象化復雜性的成本往往非常高昂。Vercel 為了簡化開發,以一種非常簡單的構建體驗打包了 AWS 原語,不需要任何配置,但使用者必須付費才能獲此便利性。這導致一些開發人員抱怨 Vercel 的費用高得離譜。盡管開銷增加了,但許多公司發現無需僱用工程師來管理基礎設施,這一點開銷還是非常值得的。Branch Insurance 的聯合創始人兼技術長 Joe Emison 已經提出了商業案例:利用雲服務,並僱用和培訓專門從事前端技能的初級開發人員:
我們有更好、更強大的雲服務可供構建(例如 AWS、GCP、Azure、Netlify、Twilio、Stripe),因此關註界面的開發人員也會增加。
換句話說,將營運工作外包給了托管提供商,Branch 的工程部門就能夠完全專註於 UI 和前端界面。盡管 Branch 是一個極端案例,但軟體開發的未來正朝著 Emison 所描繪的方向發展。
下面,我們來談談許多開發人員依賴抽象化和托管服務的最後一個因素,但這是一個負面訊息:所謂的職業生存威脅。我曾討論過人們對前端的刻板印象:有人認為這類工程師因女性居多而被忽視,而且這個崗位被大量初級開發人員占據。對於持有這種刻板印象的人來說,由前端主導的未來意味著軟體工程的終結。按照這種思維方式,前端工程師與僅依賴低程式碼和無程式碼解決方案的平民開發人員不分伯仲。如果我們真的指望 James Somers 提到的 AI 及低/無程式碼取代軟體工程師,那麽我們確實處於「工匠日漸式微」的邊緣。
但我不認同以如此消極的心態來看待前端驅動的未來。我認為實際情況恰恰相反,大量的創新都出現在前端。任何持有以下看法的供應商最終都會失敗:前端工程師能力不夠,技術不夠精湛,因此成為定價過高的黑匣子解決方案的受眾。
前端已死,前端永存
關於最新的新興市場,我還有最後一點想說。與任何形式的轉變類似,前端的晉級之路並不平坦,但在軟體開發的特定條件下,這一過程伴隨著角色的重新分配,以及前端與後端、客戶端與伺服器、靜態與互動等傳統分割界限變得越來越模糊。許多人長期以來一直批評前端和後端這樣的術語,比如 Melissa Mcewan 指出:「這種分類大概在十年前就已經過時了,但依然存活到了現在。」
Reddit 使用者 n9iels 也贊同這一觀點:「根據我的經驗,前端領域正在僅有從 HTML/CSS/JS 轉變為包含服務於前端的後端。特別是對於完全使用 React 或 Angular(SPA)構建的網站,前後端之間的界線變得非常模糊了。」
「前端」、「後端」和「全棧」之類的術語無法準確反映出現今的軟體開發生命周期,因此最終都會被新的開發者型別所取代。雖然我不認為「前端」這個術語很快就會被拋棄,但在現實實踐中,這個領域必將持續變化。前端開發這個崗位將出現一種新型的工程師,他們利用 API 和雲服務來實作高效能、互動式的使用者介面。這些開發者將跨整個技術棧工作,但不同於全棧工程師假設自己什麽都懂,這類新型的開發人員將利用手頭的工具,並在這些工具不足的地方創新。
前端的太陽已經升起,但這個領域是一顆仍在發展的恒星。盡管人工智慧技術的蓬勃發展和零利率政策資金政策的消失帶來了不確定性,軟體行業似乎特別不穩定,但供應商們意識到,從事技術棧頂端工作的開發者處於有利之位。這個行業和市場變得越來越錯綜復雜,但在前端領域工作的開發者已經直面了這些挑戰。可能有人認為這會催生大量機械化的開發者,盲目地陷入超級擴充套件服務的統治之下,但我認為隨著開發勞動力繼續向技術棧的上層移動,客戶端和使用者介面體驗的改進(比如緩存、WebAssembly、伺服器端渲染、容器化的微前端)將與之並列增長。如今軟體行業中最閃亮的明星以及最具開拓精神的開發者都在前端領域工作,因為這個領域使用了他們最喜歡的前沿技術。
推薦閱讀: