对于前端来说,2023 是非同寻常的一年。我们见证了争相抢占甚至是发明服务器端渲染(SSR)市场的热潮、AI 的不断进步、Web 渲染器和 JS 引擎的寒武纪大爆发、一大批有力的竞争者试图摧毁巨头的统治地位……
在开始预测未来一年发展趋势之前,我们先来回顾一下今年到目前为止的大杂烩。
2023 年回顾
SSR
SSR 并非什么新鲜事物,PHP 已经支持了 28 年,如果它对 Neopets(以及 Facebook)来说足够好用,那么可以说它对任何一家公司都足够好用。
但 Vercel 一直在大力推动。作为前端开发领域一些最具影响力人物的聚集地,我们很难忽略他们(例如,在他们谈论 Server Actions 时,Twitter 上刷了一周的表情包)。他们认为你应该使用 SSR,而且还应该通过他们的服务来使用。
现在 SSR 市场已经重新确立,每个人都想分一杯羹。长期浸淫在这个领域的 Ruby on Rails 团队一直在试图用他们的无构建工作流吸引用户(这是对 Vite 的无捆绑工作流的回响,尽管人们对于他们都有一些强烈的反对意见)。HTMX也类似,他们主张人们唯一真正需要的框架是使用 HTTP 服务器来传送 HTML 文件。尽管 React 和 Svelte 从 Vercel 的成功中获得了既得利益(核心团队成员在那里工作),但 Vue 仍然支持由社区驱动的Nuxt项目。
甚至移动端也受到了影响。正如我在今年早些时候发表的“Things to look forward to in React Native”一文中提到的,Szymon Rybczak 一直在为 React Native 开发Async组件和 React Server 组件,而 Expo 一直在推动Expo Router。关于 SSR 在移动端是否有意义仍然存在争议,但你总是可以期待 Evan Bacon 和 Nate Birdman 为各自的立场做强有力的辩护。
不过,我们是否会看到它在不使用 Node.js 后端的公司中流行起来,还有待观察。
AI
在这个领域,很多人在努力寻找可以将 AI 作为前端工作流一部分的方法。在这当中,人们持续关注的一个问题是:“机器会取代我们的工作吗?”
就今年而言,我敢肯定地说,“AI 不可阻挡的进步”在导致你失去前端工作的原因清单中处于较靠后的位置,但这个领域的市场潜力已经非常真实。
ChatGPT 和 GitHub Copilot 已经成为橡皮鸭式编程和代码生成的日常工具,微软今年还额外投资了100亿美元给 OpenAI。虽然只有巨头才有望与这些工具展开竞争(谷歌有Bard和Gemini,Meta 有LLaMA,亚马逊有Q,苹果肯定也在开发某些东西,GitHub 上开始出现一系列工具,如ml-ferret和ml-explore),在这些工具基础之上,行业仍然需要有相当大的发展。
我们看到 tldraw 可以将草图转化为代码,Vercel 的 v0 可以 将描述转化为UI组件。Figma 也可以在设计方面实现类似的功能。我开始觉得仅凭人类的能力来开发东西是一件愚蠢的事情。然而,也有人担心,与真正的产品相比,最终得到的东西可能存在不足,例如在可访问性方面,更不用说供应商面临的劫持问题。
浏览器引擎、JS 引擎和运行时
在浏览器引擎方面,新的Ladybird浏览器已经吸引到31万美元的投资,并且找来Andrew Kaster和Alexander Kalenik做全职开发。Servo Web 渲染器已经享受了一年的Igalia工程支持。还出现了一个全新的独立浏览器引擎Shadow,居然是用 JS 编写的!看来,构建一个新的 Web 浏览器似乎并不是那么不可能的事情。
在 JS 引擎方面,Hermes 确实很火——我们看到Static Hermes模糊了原生代码和 JS 之间的界限,即将推出的稳定ABI和 ES6 支持将让它变得更加灵活。然而,一些难以解决的平台问题依然存在,比如支持Intl,以及Date
的速度很慢。但即使克服了这些问题,它也需要保持警惕,因为QuickJS项目已经在复苏,事实证明它在调用 C 函数方面比调用 JS 函数更快! 与此同时,Shadow 已经启动了自己的 JS 引擎Porffor,值得我们关注。
在运行时方面,我们不得不提到令人印象深刻的新晋挑战者Bun,它已经给 Node.js 的后院点了一把火。虽然它掀起了一股大浪,迅速被商业技术栈采用,但它也为自己设定了非常高的标准,并且不得不放慢特性开发的速度来解决一系列问题。
跨平台框架
据透露,今年 React Native 相关的工作岗位数量是 Flutter 的6倍,而且Hixie和Tim Sneath都离开了谷歌,Tim 甚至在宣传SwiftUI。Flutter 开发者陷入了一种生存危机,被谷歌杀死的梦魇前所未有地逼近。
与此同时,React Native 的势头并没有显示出任何放缓的迹象,亚马逊宣布它已成为他们多个旗舰应用程序的首选技术。开发者体验得到了大幅改善,Software Mansion 展示了他们的新IDE,Meta 从 Flipper 迁移到了Chrome Devtools。Expo 也做了很多值得一提的事情,特别是通过Expo Modules革命性地提升了原生 API 访问能力,以及继续进行代码共享和延续 SSR 与Expo Router的故事。Meta和微软朝着 Web 一致性迈进,从DOM遍历到事件循环,都非常令人兴奋。
其他框架也在采取行动,Tauri 与Servo合作,Dioxus承诺使用 Rust 构建 GUI 应用,并提供类似 React 的开发体验。它基于Taffy布局引擎,Taffy 是 Yoga 的一个非常有前途的后继者,可能很快就会提供C绑定,可以在更多的场景中使用。我还听到了不断有关 Kotlin Multiplatform 的讨论,尽管没有特别值得一提的内容。
关于NativeScript,我也有很多话要说,但我可能会单独将它们整理成文章,要么发布在我的NativeScript is Dead 简报中,要么发布在 NativeScript 的博客上,所以请耐心等待!
UI 框架
所有的大公司仍然在大展拳脚,尽管有些人试图颠覆。今年的热点似乎始于Solid从 Chrome 团队获得了3万美元的资金支持,并推广了Signals。
Web Components 也有了复兴,从前几年的被否定中恢复过来,交付了一些与之相关的应用,如DocuSeal和Photoshop。正如 Alex Russell 在2021年所说的:
除了谷歌、微软、Adobe、ING、Comcast、EA、Ubisoft、GE、Nintendo、Blizzard、SpaceX、Salesforce 和 Internet Archive……还有谁真正在使用 Web Components?
为了不被缺少API所困扰,Svelte 做出了反击,重新审视响应性,推出runes,并宣布 Dominic Gannaway 已经与Rich Harris合作全职开发 Svelte。
但他们不是唯一重新审视响应性的人,Meta 承诺推出React Forget更新,似乎有很多人期待。
在这一切的背后,HTMX 给人一种令人耳目一新的理性感,尽管它可能是最差的框架,但在这个拥有复杂的构建工具的时代,它正变得越来越难以被忽视。
构建系统
说到构建系统,我们看到了越来越多的下一代构建工具,如 SWC 和 Esbuild,还有更多与它们相配套的捆绑工具。Rome 垮台,Biome崛起。Turbopack去年宣称自己是 Webpack 的继任者,但今年Rspack挥舞着诉状冲进法庭。与此同时,Metro 仍然是 React Native 的首选武器。
开发工具
不满的情绪一直在酝酿。Eslint 已经厌倦了维护格式化规则,一些人厌烦了 Prettier 在填补这一空白方面的缓慢进展,甚至提供了2万美元的赏金要将它替换掉(Biome 胜出)。
另一方面,Bun 向我们展示了包的安装速度可以比我们想象的快得多,尽管使用二进制锁文件有明显的缺点。
对 2024 年的预测
有了上面的这些前提,等于准备好了塔罗牌、占卜骨头和星图,让我们来预测一下 2024 年前端的走势。
每个人都想拥有整个技术栈
似乎存在着一种渴望,不仅要推翻现有的工具,还想占据整个垂直技术栈。Bun 希望成为你的运行时、编译器、包管理器、HTTP 服务器和测试运行器,即使这意味着生态系统的分裂。
我们之前已经经历过,比如 Rome。每个人都在试图从开源中获得收益,但是,由于从由一群吝啬鬼组成的社区中赚到钱并不容易,目前在风险投资圈流传的最好的想法似乎是先提供整个技术栈,等占领市场后再来解决其余的问题。
没有人比 Vercel 更能体现这一点,他们有一款万能产品——托管、域名注册、边缘功能、数据库、分析、对所有主要 UI 框架的SSR集成、各种部署小工具,等等。他们在内部尽可能地发明一切(我们已经看到了用于捆绑的Turbopack、用于管理单体代码库的Turborepo以及用于生成镜像的Satori),并包装任何他们无法发明的东西。
那么接下来 Vercel 会做些什么?我认为他们可能会:
- 去掉中间商。 他们包装了许多服务,比如Upstash,但他们可以推出自己的解决方案来提高利润。
- 推出更多独特的技术。 Vercel 的价值主张是“你可以自己动手完成这些事情,但我们可以让它们变得毫不费力”,但如果变成“你无法自己动手完成这些事情”,那么他们的技术就会变得更加有吸引力。
- 将人困在他们的技术栈中。 这显然是三个选项中的超级反派选项,但“壕沟效应”是一种久经考验的留存用户的策略(请参考 Atlassian 和微软的案例)。
这些都很难说,但我相信通过组合这些选项,他们最终会(有意或无意地)执行 Meta 的策略,打造出一个技术栈,它是如此得吸引人,以至于它能够基于技术创造出工作机会,并吸引用户为其做贡献,推动其进一步发展。
有人能阻碍他们吗?Biome 或许可以,但它没有像最初的 Rome 项目那样拥有450万美元的资本来成为一个强有力的竞争者。Bun 有资本(700万美元),但考虑到他们在解决 2000 个问题上力不从心,我认为 CI 工具市场可能是它明年更现实的目标。Deno 在 2022 年筹集了2100万美元,似乎正在试探市场,例如推出了Deno Deploy和Deno KV,但离占据整个技术栈还差得很远。在我看来,就剩下一家由风险投资提供支持的 Y-Combinator 初创公司 Expo 了。
Expo 在前几年专注于通过 SDK 来建立用户群,现在已经进入盈利阶段,推出了Expo Application Services。再加上Expo Router,一个强大的竞争者出现了,因为他们在某些方面比 Vercel 更专业,比如移动端。如果你可以在 Expo Router 上构建并免费得到原生移动应用,为什么要选择 Next.js 呢?这是 Sanket Sahu 提出的一个很有说服力的论点。
尽管 Expo 拥有这种令人羡慕的战略地位,但他们仍然还有很多工作要做。他们还没有“万能产品”,用户必须通过链接到外部服务来填补某些功能。React Native 技术栈在 SSR 方面仍然存在空白,因此他们别无选择,只能自己解决。Vercel 在这方面的优势在于与 React 核心团队有着密切的联系(雇佣了像Sebastian Markbåge和Andrew Clark这样的关键人物),可以影响 React 的发展方向,但也有可能是 React 在影响他们?
无论谁胜出,作为最终的用户,我都有一些期待。我确实希望简化和统一——因为前端在过去几年里变得荒唐地复杂——但这绝不能以形成垄断为代价。一个技术栈应该始终赋予用户权力,让他们保留他们喜欢的部分,并替换掉他们不喜欢的部分。
Web 将变得更加多样化
随着苹果将于 2024 年 3 月 5 日放开 App Store 上对 Web 浏览器引擎的限制,Safari 团队不得不认真对待以保护他们的市场份额。我认为苹果不会不战而降,我们甚至可能会再次看到 Safari 的崛起,也许苹果会在 ML/AI 领域吸引人们,并利用 iPhone 硬件的特殊优势。
对于 Servo 明年能否挑战桌面领域,我持怀疑态度,因为它在 CSS 测试中仍处于中等水平,通过率为 61.8%,WPT 测试通过率为 55.4%,但它的 WebView 可能可以在应用程序中发挥其可控的作用。事实上,因为其路线图中涵盖了 Android 和 Tauri,所以它似乎正在向嵌入式方面倾斜,并且目前没有围绕 WebView 构建浏览器的计划。
Ladybird 将继续吸引人们的关注,它参与了 2023 年的Web Engines Hackfest,这表明它也是一个严肃的参与者(我猜测)。我认为它要挑战已有浏览器的地位仍然为时尚早,但我肯定会支持它,特别是因为它们发现的漏洞让所有浏览器都受益。
随着 Manifest V2 即将被弃用,Chrome 给自己制造了敌人,但这似乎不足以改变市场份额。相反,随着苹果对浏览器限制的结束,他们有望获得更多的市场份额。iOS 垄断的打破将会带来动荡,因为开发者必须在更多的目标移动设备上测试应用的行为,而只在 Chromium 上测试所有习惯性做法确实存在诱惑性。即使像 Twitter 这样的网站也已经开始屏蔽他们不想支持的浏览器,我担心我们会回到“在 Netscape Navigator 上浏览效果最佳”的日子。
与此同时,这对于 Firefox 来说是一个很好的机会。垄断被打破的早期对于建立声誉来说至关重要,而 Firefox 并没有被广告巨头的商业利益所束缚,因此他们可以在广告拦截和隐私方面展开竞争。例如,如果 Firefox 可以阻止 YouTube 上的广告,而 Chrome 不能,这对于某些用户来说就足够了。尽管根据我见过的没有安装广告拦截器的用户数量来看,也许像苹果那样“只需多给他们一些表情符号”会是更好的做法。
AI 崭露头角
在目前看来,OpenAI 主宰了 AI 领域,虽然在这个过程中出现了一些变节,但从现在开始应该会一帆风顺。他们一直以AGI为目标,有人认为 GPT-4 是朝着这个目标前进的一个航标,但我认为 2024 年 AI 领域将更多地围绕其他公司的发展而展开。
尽管每个巨头都涉足不同的细分市场(例如,大多数公司都提供云服务),谷歌在搜索方面更有存在感,Meta 对语言分析更感兴趣,亚马逊在购物方面有更大的动机,而苹果则有更多的消费设备可以利用。因此,他们可能会各自专注于与自己最相关的领域。
但我的目光会聚焦在苹果身上。他们一直以先见之明的方式不断地推进产品,多年来一直在推出配备专用ML处理器的设备,但仍然让人感觉这些是真正发射前的倒计时。
他们一直紧跟新兴技术,随着个性化语音模型的流行推出了个人化语音,随着 LLM 的崛起改进了可预测性文本,他们一直致力于将经过验证的 AI 技术带给消费者。据报道,他们在受限设备上运行 LLM 方面取得了突破,而且在开发名为“Ajax”的可与 GPT-3.5 媲美的生成式 AI 模型。考虑到他们将在数年内把自己塑造为一家注重隐私的公司的品牌定位,我认为他们将是首家提供免费、可无限使用、可选择脱机、可在设备上运行、可保护隐私的 LLM 服务。这可能是 Siri 一直缺少的关键元素。
大型 UI 框架将会继续存在
尽管我倾向于为弱势群体加油,但我不认为 React 等框架会被取代,除非有 FAANG 公司推出新的框架。不过,考虑到几个主要框架的核心团队成员都在同一个屋檐下,如果我们看到 Vercel 推出一个全新的充分利用 SSR 的一揽子框架(也就是不基于 React),我也不会感到惊讶。
移动开发不会有太大变化
我认为原生开发不会有太大变化,通常情况下,开发者会继续使用他们已经使用过的框架,就像忠实的选民一样。毕竟,在这个领域,要说服人们改变阵营需要很大的推动力。此外,虽然开发体验已经有所改进,但整个场景并没有根本性的改变。也许最值得关注的是 Expo Router,它面临的挑战是说服开发者开发 Web 原生应用而不只是 Web 应用。当然还有 NativeScript!
结论
这是一个多事之秋。随着 SSR 和 AI 的进步,JavaScript 生态系统的工具和引擎都在蓬勃发展。明年,我预计会看到更多的工具和框架的整合,更多的行业权力争夺,我们的日常工作流程将更多地涉及 AI。最后,我们可能还会看到越来越多的开发者的生存方式发生变化,因为他们即将放弃在这个不断变化的领域做出努力。
原文连接:https://buttondown.email/whatever_jamie/archive/frontend-predictions-for-2024