## WebAssembly:从高级用户功能到主流工具
自2017年发布以来,WebAssembly (Wasm) 已经发展显著,在C/C++的基础上扩展到支持Rust等语言,这得益于共享内存、SIMD和垃圾回收等功能的加入。然而,尽管取得了这些进展,Wasm在网络上的利用率仍然不足,很大程度上是因为它被视为“二等公民”语言。
目前,Wasm依赖JavaScript来访问Web平台功能——为加载代码和利用Web API等任务创建繁琐的“胶水代码”。这种复杂性增加了开销,延长了构建过程,并且要求开发者同时理解Wasm *和* JavaScript,从而阻碍了更广泛的应用。
解决方案是将Wasm视为一等公民。**WebAssembly组件模型**旨在通过创建标准化的、自包含的工件来实现这一点,这些工件可以直接与浏览器交互,绕过JavaScript中介。该模型使用Web IDL定义,允许跨语言互操作,并简化加载和API访问。
组件有望提供更流畅的开发体验,可能通过script标签实现直接的Wasm集成,并消除对大量JavaScript绑定的需求。虽然仍在开发中,并且有Jco和Wasmtime等工具可供实验,但组件模型代表着释放Wasm全部潜力并使其易于所有Web开发者使用的关键一步。
## 代理浏览器协议 (ABP) 概要
ABP 是一种新的基于 Chromium 的浏览器,旨在弥合 LLM 代理与网页浏览之间的差距。与难以处理网页异步特性的传统自动化工具不同,ABP 将浏览重塑为代理可以轻松理解的离散、分步过程。
每个代理请求(例如,点击或文本输入)都会转换为一个单独的原子步骤:输入注入、一个“已确定”状态的捕获(截图 + 事件日志)以及 JavaScript 执行的暂停。这消除了竞态条件,并为代理提供了一个稳定的世界状态。
ABP 实现约 100 毫秒的动作开销,LLM 是主要瓶颈,而非浏览器本身。它可以通过简单的 REST API(8222 端口)轻松与 Claude Code 等代理集成,并提供虚拟光标渲染、事件检测(对话框、下载)和会话记录以用于训练数据等功能。
ABP 旨在本地使用,并默认阻止系统输入,从而优先考虑安全性。它正在积极开发中,重点是确定性行为,并为可靠的 AI 驱动的网页交互提供了一个强大的基础。
## Temporal:JavaScript 的全新日期和时间 API
彭博工程师 Jason Williams 详细介绍了历时十年的 Temporal 创建过程,这是一个为 JavaScript 设计的现代日期和时间 API。 当前的 `Date` 对象是一个 1995 年从 Java 匆忙移植的版本,长期以来一直是开发者沮丧的根源,因为它具有可变性、不一致的行为以及缺乏时区支持。
为了解决这些问题,Temporal 提案应运而生,旨在实现不可变性、明确的时区处理以及更强大的日历系统。 该过程涉及 TC39(JavaScript 标准机构)内部的广泛协作,微软、谷歌、Mozilla、彭博和 Igalia 均做出了重要贡献。 一个独特的方面是创建了 `temporal_rs`,这是一个共享的 Rust 库,通过协作实现,以加速在 JavaScript 引擎中的采用。
Temporal 现在已经标准化(Stage 4),并已发布在主流浏览器(Firefox、Chrome、Edge)和 Node.js 中,它提供了 `ZonedDateTime` 和 `Instant` 等类型,用于精确可靠的日期/时间操作。 未来的工作重点是将 Temporal 与现有的 Web API(如日期选择器和 DOMHighResTimeStamp)集成。 Temporal 代表了 JavaScript 的一项重大改进,展示了社区协作的力量,可以解决长期存在的问题并交付真正现代的日期时间 API。