天天看點

前端的新未來!

作者:CSDN
前端的新未來!

【CSDN 編者按】随着 AI 技術的崛起,以及許多低代碼/無代碼工具的出現,“前端”這個曾經大火的領域,逐漸不被看好,甚至有人發出“前端已死”等一些激進的言論,那現實是否如此,本文作者并不這麼認為,其表示:前端将成為一個新興市場,随着以減輕後端和運維負擔為目标的抽象解決方案的改進,前端開發人員在購買決策中的角色将繼續壯大。

原文連結:https://redmonk.com/kholterhoff/2024/03/28/the-future-of-frontend-is-already-here/

未經允許,禁止轉載!

作者 | Kate holterhoff

譯者 | 彎月

出品 | CSDN(ID:CSDNnews)

關注技術棧頂端的工程師們即将迎來一個新興市場,因為整個軟體行業正在往打包、托管和抽象化解決方案趨勢發展,目标是最大程度地減輕後端和基礎設施的痛苦,而這些是前端工程師不太感興趣的開發領域。

我認為,我們都希望将營運的工作轉交、抽象化、遷移到雲端,前端開發人員并不是唯一的期許者。事實上,越來越多的開發人員,不論是前端、後端還是運維人員,在描述工作流程時都表露出希望将底層的工作委托給托管提供商。

有關前端未來的讨論目前非常流行。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、伺服器端渲染、容器化的微前端)将與之并行增長。如今軟體行業中最閃亮的明星以及最具開拓精神的開發者都在前端領域工作,因為這個領域使用了他們最喜歡的前沿技術。