【CSDN编者按】随着AI技术的崛起,以及许多低代码/无代码工具的出现,“前端”这个曾经大火的领域,逐渐不被看好,甚至有人发出“前端已死”等一些激进的言论,那现实是否如此,本文作者并不这么认为,其表示:前端将成为一个新兴市场,随着以减轻后端和运维负担为目标的抽象解决方案的改进,前端开发人员在购买决策中的角色将继续壮大。
未经允许,禁止转载!
作者|Kateholterhoff
译者|弯月
出品|CSDN(ID:CSDNnews)
我认为,我们都希望将运营的工作转交、抽象化、迁移到云端,前端开发人员并不是唯一的期许者。事实上,越来越多的开发人员,不论是前端、后端还是运维人员,在描述工作流程时都表露出希望将底层的工作委托给托管提供商。
有关前端未来的讨论目前非常流行。JoshWComeau反对AI会导致“前端开发终结”的夸张言论,而ShahanChowdhury有一篇贴子《前端开发的未来》认为AI和无代码/低代码只能辅助前端开发人员,而无法取代他们。此外,EmmaWhite、RiteshKumar和LuigiToporov等人发布的贴子也讨论了JavaScript和Web开发的现状。然而,我认为所有这些言论都忽略了一点:前端将成为新兴市场。也就是说,随着以减轻后端和运维负担为目标的抽象解决方案的改进,前端开发人员在购买决策中的角色将继续壮大。
从BaaS到PartyKit
首先,我们来谈一谈专门为前端工程师提供服务的供应商,以及基于云的抽象化在前端开发确立市场地位方面的作用。
PartyKit代表了前端崛起的一个案例,不仅展现了JavaScript领域正在发生的创新,而且还表明了前端买家市场的强劲。供应商们注意到了专门服务于前端开发人员的平台的成功,并渴望推出自己的解决方案以满足市场需求。JSParty联合主持人KevinBall表示:
我很喜欢[PartyKit的]的一句描述:“PartyKit类似于Vercel或Netlify,只不过你构建的是实时应用……”Vercel和Netlify非常优秀,他们的目标是:“如果你是一位前端开发人员,你非常清楚自己的工作,那么你可以依赖我们。我们可以处理好所有其他工作,我们可以降低这些工作的难度。”而你表示:“我希望多人协同开发也能这样。”
Ball认为,市场上也有先例:消除管理后端操作痛苦的平台。这些供应商不仅包括Vercel和Netlify,还有Supabase、GoogleFirebase、MongoDBAtlas、AWSAmplify和Appwrite等BaaS公司。这其中还包括ZephyrCloud之类的公司,这是一家由微前端容器化技术ModuleFederation的发明者和维护者创立的云服务公司,旨在降低开发和管理微前端的难度。在现有公司和新成立的创业公司中,将前端开发人员视为一个有利可图且渴望购买的客户群的公司数量正在稳步增长。所有这些公司都认识到,自我管理运营和基础设施的认知负荷,更何况数据库、安全性、身份验证和可观察性都带来了巨大的挑战,这些工作实在没必要由公司内部处理。
更多的抽象化
前端开发人员成为新兴市场要归功于与云托管抽象化崛起的一系列软件开发趋势。抽象化的解决方案简化并扩展了这些原本很难管理的原语的使用。就PartyKit这个案例而言,这里所说的原语包括Cloudflare的DurableObjects,这些对象本质上是CloudflareWorkers,但拥有内存中的状态。
GitHubOctoverse2023现状的报告证实了这一趋势。根据他们的调研,在2020万开发者(指拥有GitHub账户的个人)中,过去一年中“开发者数量增加了21%”,JavaScript仍然是最受欢迎的语言。RedMonk自己的语言排名也印证了这一发现:自2015年以来JavaScript一直是最受欢迎的语言。事实上,在排名前7的语言中有6个来自技术栈的顶部,其中三个是客户端语言(JS、CSS和TypeScript)。根据这些调查,我可以得出一个结论:随着软件领域的不断蓬勃发展,新进入该领域的开发人员大部分都将从事前端工作。
除了开发人员编写的语言之外,现代软件开发还严重依赖于将琐碎的工作和复杂性抽象出去的服务。虽然一些脾气暴躁的系统管理员无疑会对这一宣言感到不满,但事实上,外包运营越来越受欢迎,因为运维很难,基础设施很昂贵,安全性和合规性的风险很高。
API经济与云原生
前端成为新兴市场是抽象化不断扩散的结果,而抽象化已成为一种不可避免的趋势。托管服务可以将用户认证等复杂且耗时的任务交给领域专家,从而提高安全性;还可以将高度规范化的服务,比如POS系统,交给领域专家处理。如此一来,各个公司就可以专心开发业务逻辑。在前端工具和供应生态系统方面,这种向抽象化的转变源自全栈的失败。尽管全栈工程师的兴起对雇主有利,但这一概念被该领域的许多人普遍抨击,因为期望开发人员掌握一切会给他们带来不必要的认知负担。正如LaurieVoss所说:
抽象化细节可以帮助我们脱离不断发展的技术栈的苦海。
下面,我们通过回顾所谓的API经济来深入研究抽象化的主题。自从云计算问世以来,API就成为了云计算发展的关键,Salesforce和eBay早在2000年就允许访问自家的WebAPI,在提供API的推动下,很多公司都采用了“快问开发人员”的理念,引用PaulLehair的话来说,这已经“吞噬了世界”。API是现代软件开发的关键,而前端工程师恰好可以从这一发展中受益。JChrisAnderson是Couchbase的联合创始人之一,目前就职于面向前端开发人员的数据库创业公司Fireproof,他认为:
目前API正在集成到前端,这就是前端具有购买力并成为新兴市场的原因。
最近,大型语言模型的集成中也体现出了API驱动的开发的崛起。开发人员不必再自行训练模型或在本地托管,他们可以利用OpenAI的ChatGPT、Google的Gemini或Anthropic的Claude等轻松构建聊天机器人,开发人员只需集成这些供应商的API即可无缝而又简单地使用这些服务。事实上,OpenAI的定制GPT提供了定制的体验,消除了训练和自主托管这些模型的痛苦。他们非常重视开发者体验,提供了详尽的文档、快速入门指南和SDK。
除了前端工程师对API的熟悉程度之外,供应商为这些用户提供的抽象化通常是云原生的。Begin的联合创始人BrianLeRoux对前端成为新兴市场的未来持乐观态度,因为该领域对云的熟悉度很高。从供应商的角度来看:
前端工程师是迁移到新云的绝佳市场。
因为前端开发人员在构建动态的交互式网站时必须考虑后端,所以他们很清楚无服务器和云托管的重要性。事实上,服务器/客户端分两步走的挑战尚未得到解决,该领域内大量聪明的开发人员的脑力都用于解决这些挑战了。
抽象问题
当然,采用这些抽象化程度高的解决方案也存在一定的弊端。抽象化的产品和服务通常以API和库的形式交付,同时也将其他人的代码引入到项目中。这就意味着美丽与危险并存。抽象化的解决方案要求项目采用特定的形式,并且往往难以随着项目规模的扩大而扩展。我曾听到过一个陈旧的观点,推特必须将后端从RubyonRails改为Scala(一种建立在Java基础上的语言),因为Java之类的低级语言具有更好的可扩展性。就处理繁重的流程和缓存层而言,Java之类的语言仍然是非常宝贵的。然而,像推特这样的大型应用程序是例外,而不是顺应规则,这意味着成长的痛苦并不会阻碍大多数开发人员使用JavaScript和TypeScript。
除了规模化的问题之外,通过托管服务和产品抽象化复杂性的成本往往非常高昂。Vercel为了简化开发,以一种非常简单的构建体验打包了AWS原语,不需要任何配置,但用户必须付费才能获此便利性。这导致一些开发人员抱怨Vercel的费用高得离谱。尽管开销增加了,但许多公司发现无需雇佣工程师来管理基础设施,这一点开销还是非常值得的。BranchInsurance的联合创始人兼首席技术官JoeEmison已经提出了商业案例:利用云服务,并雇佣和培训专门从事前端技能的初级开发人员:
换句话说,将运营工作外包给了托管提供商,Branch的工程部门就能够完全专注于UI和前端界面。尽管Branch是一个极端案例,但软件开发的未来正朝着Emison所描绘的方向发展。
下面,我们来谈谈许多开发人员依赖抽象化和托管服务的最后一个因素,但这是一个负面消息:所谓的职业生存威胁。我曾讨论过人们对前端的刻板印象:有人认为这类工程师因女性居多而被忽视,而且这个岗位被大量初级开发人员占据。对于持有这种刻板印象的人来说,由前端主导的未来意味着软件工程的终结。按照这种思维方式,前端工程师与仅依赖低代码和无代码解决方案的平民开发人员不分伯仲。如果我们真的指望JamesSomers提到的AI及低/无代码取代软件工程师,那么我们确实处于“工匠日渐式微”的边缘。
但我不认同以如此消极的心态来看待前端驱动的未来。我认为实际情况恰恰相反,大量的创新都出现在前端。任何持有以下看法的供应商最终都会失败:前端工程师能力不够,技术不够精湛,因此成为定价过高的黑匣子解决方案的受众。
前端已死,前端永存
关于最新的新兴市场,我还有最后一点想说。与任何形式的转变类似,前端的晋级之路并不平坦,但在软件开发的特定条件下,这一过程伴随着角色的重新分配,以及前端与后端、客户端与服务器、静态与交互等传统分割界限变得越来越模糊。许多人长期以来一直批评前端和后端这样的术语,比如MelissaMcewan指出:“这种分类大概在十年前就已经过时了,但依然存活到了现在。”
Reddit用户n9iels也赞同这一观点:“根据我的经验,前端领域正在仅有从HTML/CSS/JS转变为包含服务于前端的后端。特别是对于完全使用React或Angular(SPA)构建的网站,前后端之间的界线变得非常模糊了。”
“前端”、“后端”和“全栈”之类的术语无法准确反映出现今的软件开发生命周期,因此最终都会被新的开发者类型所取代。虽然我不认为“前端”这个术语很快就会被抛弃,但在现实实践中,这个领域必将持续变化。前端开发这个岗位将出现一种新型的工程师,他们利用API和云服务来实现高性能、交互式的用户界面。这些开发者将跨整个技术栈工作,但不同于全栈工程师假设自己什么都懂,这类新型的开发人员将利用手头的工具,并在这些工具不足的地方创新。
前端的太阳已经升起,但这个领域是一颗仍在发展的恒星。尽管人工智能技术的蓬勃发展和零利率政策资金政策的消失带来了不确定性,软件行业似乎特别不稳定,但供应商们意识到,从事技术栈顶端工作的开发者处于有利之位。这个行业和市场变得越来越错综复杂,但在前端领域工作的开发者已经直面了这些挑战。可能有人认为这会催生大量机械化的开发者,盲目地陷入超级扩展服务的统治之下,但我认为随着开发劳动力继续向技术栈的上层移动,客户端和用户界面体验的改进(比如缓存、WebAssembly、服务器端渲染、容器化的微前端)将与之并行增长。如今软件行业中最闪亮的明星以及最具开拓精神的开发者都在前端领域工作,因为这个领域使用了他们最喜欢的前沿技术。
超50万人「退休金」数据丢失、业务瘫痪1周,GoogleCloud误删甲方账户后:云服务负责人被裁、Oracle产品经理现身嘲讽