
#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

ShopTalk | 2025年2月27日
原文播客:ShopTalk
原文链接:https://shoptalkshow.com/703/
本期节目邀请 TC39 主席 Ujjwal Sharma 深入探讨 JavaScript 语言标准的制定过程。从 TC39 是什么、谁在其中、如何工作,到备受关注的 Temporal API、Signals 信号机制和类型注释提案,带你了解决定 JavaScript 未来的幕后故事。
TC39 是 Ecma 国际的第 39 技术委员会,负责设计和演进 JavaScript(正式名称 ECMAScript)的新功能和新特性。这是一个通过共识来运作的委员会,在极少数情况下可能会对平台做出破坏性更改。
嘉宾 Ujjwal Sharma 是 TC39 的三位主席之一,来自 Igalia 公司。他强调主席的角色并非拥有广泛的行政权力,而是承担责任——确保工作有成效、反映用户诉求、在有争议的话题上达成共识。
“我们实际上没有真正的权力,只有责任。” —— Ujjwal Sharma
TC39 的主要成员是”实现者”——正在开发浏览器或其他 JavaScript 引擎的人员。无论是运行在浏览器还是冰箱里的 JavaScript 引擎,任何编写实现该语言代码的人都可以参与其中。
Temporal 是 TC39 对 JavaScript 日期处理的彻底重新设计,也是语言层面所做出的最重大变更。目前 JavaScript 的 Date 对象存在严重缺陷——它是对 Java 旧版 Date 对象的复制,当 JavaScript 面向公众时,Java 已经重新设计了他们的日期对象。
Temporal 的核心改进包括:
“这是我们在语言层面所做出的最重大变更,比国际化命名空间对象的全部内容还要大。” —— Ujjwal Sharma
Temporal 的设计深受 Moment.js 维护者的影响,他们将多年积累的专业知识带回了语言设计中。目前 Temporal 已经可以在生产环境使用,主流浏览器都已实现。
Signals 是目前前端框架广泛采用的状态管理模式,TC39 正在探索将其标准化到 JavaScript 语言中。虽然从引擎角度看实现成本不高,但框架作者们对具体实现方式存在分歧。
“Signals 是其中一个让我感觉浏览器方面回应说’哦,对,我们可以做到’的功能。” —— Chris Coyier
目前该提案仍处于早期阶段,关键问题在于:
Ujjwal 表示,TC39 内部的倡导者需要重新将该提案公开,向框架作者们展开讨论,因为如果无法明确该功能对语言的意义,将其加入语言毫无意义。
类型注释提案旨在为 JavaScript 添加语法空间,允许在特定位置放置类型信息——引擎会忽略这些内容,但 TypeScript 可以正常工作。
核心理念是:
“你可以将大量 TypeScript 代码复制粘贴到控制台中直接运行,无需进行编译。” —— Ujjwal Sharma
这个提案面临的主要挑战:
TC39 有一个核心概念——”预算”。每添加一个新功能都会增加语言复杂度,带来解析开销和潜在的性能影响。随着预算的消耗,委员会变得越来越保守。
“最大的风险是错误地判断某人对某事的兴趣程度,或误判某事的实际价值。” —— Ujjwal Sharma
这导致一个有趣的现象:功能需要设计得让所有人满意才能通过。任何人的反对都可能损害提案,迫使提案者必须非常注重外交技巧。
“我们实际上没有真正的权力,只有责任。” —— Ujjwal Sharma
“最大的风险是错误地判断某人对某事的兴趣程度,或误判某事的实际价值。” —— Ujjwal Sharma
“双方的观点都是正确的——引擎开发者正确,因为添加功能确实存在成本;用户正确,因为语言需要不断演进。” —— Ujjwal Sharma
“网页在构建平台方面取得了巨大成功,它不仅是一个优秀的开发平台,还尊重内容创作者。” —— Ujjwal Sharma
本期节目展现了 JavaScript 语言标准制定的深度思考:
延伸思考: 如果你是 TC39 成员,面对 Signals 这样的提案——技术上可行、开发者有需求,但框架作者不满意——你会如何推动它前进?
主播辛宝 Otto 目前在做《Web Worker – 前端程序员都爱听》播客,欢迎移步访问收听。

#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

#36 Syntax:你的 .env 文件正在把密钥泄露给 AI
3 月 12 日 · 41 分钟

3 月 11 日 · 31 分钟

#34 Whiskey Web and Whatnot:零编程经验也能开发应用?Warp 终端与 AI agents 的魔法
3 月 6 日 · 1 小时 15 分

Web 爱听 · 2 月 27 日 · 1 小时 11 分
ShopTalk | 2025年2月27日
原文播客:ShopTalk
原文链接:https://shoptalkshow.com/703/
本期节目邀请 TC39 主席 Ujjwal Sharma 深入探讨 JavaScript 语言标准的制定过程。从 TC39 是什么、谁在其中、如何工作,到备受关注的 Temporal API、Signals 信号机制和类型注释提案,带你了解决定 JavaScript 未来的幕后故事。
TC39 是 Ecma 国际的第 39 技术委员会,负责设计和演进 JavaScript(正式名称 ECMAScript)的新功能和新特性。这是一个通过共识来运作的委员会,在极少数情况下可能会对平台做出破坏性更改。
嘉宾 Ujjwal Sharma 是 TC39 的三位主席之一,来自 Igalia 公司。他强调主席的角色并非拥有广泛的行政权力,而是承担责任——确保工作有成效、反映用户诉求、在有争议的话题上达成共识。
“我们实际上没有真正的权力,只有责任。” —— Ujjwal Sharma
TC39 的主要成员是”实现者”——正在开发浏览器或其他 JavaScript 引擎的人员。无论是运行在浏览器还是冰箱里的 JavaScript 引擎,任何编写实现该语言代码的人都可以参与其中。
Temporal 是 TC39 对 JavaScript 日期处理的彻底重新设计,也是语言层面所做出的最重大变更。目前 JavaScript 的 Date 对象存在严重缺陷——它是对 Java 旧版 Date 对象的复制,当 JavaScript 面向公众时,Java 已经重新设计了他们的日期对象。
Temporal 的核心改进包括:
“这是我们在语言层面所做出的最重大变更,比国际化命名空间对象的全部内容还要大。” —— Ujjwal Sharma
Temporal 的设计深受 Moment.js 维护者的影响,他们将多年积累的专业知识带回了语言设计中。目前 Temporal 已经可以在生产环境使用,主流浏览器都已实现。
Signals 是目前前端框架广泛采用的状态管理模式,TC39 正在探索将其标准化到 JavaScript 语言中。虽然从引擎角度看实现成本不高,但框架作者们对具体实现方式存在分歧。
“Signals 是其中一个让我感觉浏览器方面回应说’哦,对,我们可以做到’的功能。” —— Chris Coyier
目前该提案仍处于早期阶段,关键问题在于:
Ujjwal 表示,TC39 内部的倡导者需要重新将该提案公开,向框架作者们展开讨论,因为如果无法明确该功能对语言的意义,将其加入语言毫无意义。
类型注释提案旨在为 JavaScript 添加语法空间,允许在特定位置放置类型信息——引擎会忽略这些内容,但 TypeScript 可以正常工作。
核心理念是:
“你可以将大量 TypeScript 代码复制粘贴到控制台中直接运行,无需进行编译。” —— Ujjwal Sharma
这个提案面临的主要挑战:
TC39 有一个核心概念——”预算”。每添加一个新功能都会增加语言复杂度,带来解析开销和潜在的性能影响。随着预算的消耗,委员会变得越来越保守。
“最大的风险是错误地判断某人对某事的兴趣程度,或误判某事的实际价值。” —— Ujjwal Sharma
这导致一个有趣的现象:功能需要设计得让所有人满意才能通过。任何人的反对都可能损害提案,迫使提案者必须非常注重外交技巧。
“我们实际上没有真正的权力,只有责任。” —— Ujjwal Sharma
“最大的风险是错误地判断某人对某事的兴趣程度,或误判某事的实际价值。” —— Ujjwal Sharma
“双方的观点都是正确的——引擎开发者正确,因为添加功能确实存在成本;用户正确,因为语言需要不断演进。” —— Ujjwal Sharma
“网页在构建平台方面取得了巨大成功,它不仅是一个优秀的开发平台,还尊重内容创作者。” —— Ujjwal Sharma
本期节目展现了 JavaScript 语言标准制定的深度思考:
延伸思考: 如果你是 TC39 成员,面对 Signals 这样的提案——技术上可行、开发者有需求,但框架作者不满意——你会如何推动它前进?
主播辛宝 Otto 目前在做《Web Worker – 前端程序员都爱听》播客,欢迎移步访问收听。

https://proxy.wavpub.com/iting-webworker.xml复制内容版权归创作者,声湃按创作者开放的 RSS 收录。了解收录与 RSS →

#37 Syntax:Vite Plus 要用一个工具替代你全部的开发工具
3 月 26 日 · 37 分钟

#36 Syntax:你的 .env 文件正在把密钥泄露给 AI
3 月 12 日 · 41 分钟

3 月 11 日 · 31 分钟