我国首个 JS 语言提案在 ECMA 进入 Stage 3

简介: 近期,在 ECMA 标准化组织的 TC39 技术委员会上,阿里巴巴前端标准化小组与淘系技术提出的 JavaScript 标准提案《Error Cause》进入了 Stage 3,将开始在 JavaScript 引擎中开始实现,并在浏览器、Node.js 实验性实施,是中国首个推进到 EcmaScript 的语言,将成为官方标准的自主技术提案。
来源:淘系技术公众号
作者:淘系技术

640.gif

近期,在 ECMA 标准化组织的 TC39 技术委员会上,阿里巴巴前端标准化小组与淘系技术提出的 JavaScript 标准提案《Error Cause》进入了 Stage 3,将开始在 JavaScript 引擎中开始实现,并在浏览器、Node.js 实验性实施,是中国首个推进到 EcmaScript 的语言,将成为官方标准的自主技术提案。

image.png

ECMA/T39 是什么?

ECMA 是一个负责信息技术和通信系统的国际标准组织,全称欧洲标准化信息和通信系统协会。其中 ECMA/TC39 是技术委员会第 39 号技术委员会,主要负责 JavaScript 相关标准的制定,包括:

ECMA-262,即 JavaScript 的标准 ECMAScript 定义;
ECMA-402,即 ECMAScript 的国际化标准 API(ECMAScript Intl API)定义;
ECMA-404,即 JSON 定义;
T39 的成员主要包括:谷歌、微软、苹果、阿里巴巴、360、华为、腾讯等;

Error Cause 提案简介

提案链接:https://github.com/tc39/proposal-error-cause

image.png

这个提案为 Error Constructor 新增了一个可选的参数 options,其中可以设置 cause 并且接受任意 JavaScript 值(JavaScript 可以 throw 任意值,如 undefined 或者字符串),将这个值赋值到新创建的 error.cause 上。

image.png

错误原因的特性在许多其他语言中都有类似的设计,如 C# Exception Cause,Java Exception Cause,Python raise exception from cause。同样的,在庞大的 JavaScript 生态中也已经有非常广泛的使用,如 verror 每周有上千万的下载量,@netflix/nerror 每周有数十万的下载量。

因为 Error Cause 以前没有标准化的参数定义及官方实现,所以容易丢失 error 的属性或需要写比较多的代码自定义等,并且开发者工具也难以依赖于非语言特性的自定义方案。本提案将 cause 写入了语言定义,能有效记录错误原因的值,可让开发者工具、应用监控如 Alinode 都能基于 cause 属性值获取错误逻辑链条,从而提升前端开发效率,降低重复开发成本。

作为阿里巴巴在加入 Ecma 标准化组织 TC39 技术委员会后的第一个落地的提案,这只是淘系技术在技术标准化上非常小的一步。

未来

我们之所以进行这些提案,也是因为随着云原生技术在前端工程方面的大规模应用,语言的观测性能力格外重要。语言的观测能力直接影响到语言运行时的性能与成本。我们维护的 Node.js 发行版 Alinode 会在云原生时代的继续追求成本和性能的平衡。未来,我们也会结合阿里巴巴在步向云原生的技术业务场景,继续增加投入诸如异步上下文等关于观测性的核心语言特性提案,寻找 JavaScript 中长期以来困扰开发者的异步编程上下文追踪难题的解决方案,帮助基于云原生的业务建设更加精准、高机器效率、高工程效率的观测能力。

image.png

众所周知,Serverless 能够有效的优化成本,而“弹性”则是这一过程必不可少的手段。为了更好的实现弹性,启动速度是很关键的一环。Alinode Cloud Serverless Worker 按照 Web API 标准提供 JavaScript 运行环境,具有亚毫米级启动,业务应用 100ms 内启动并响应的特点,未来还将可以通过 Snapshot 快速水平(甚至跨服务器)扩展。

image.png

淘系技术非常注重标准化的参与和建设,我们也会继续从内部的技术场景中挖掘编程语言的拓展场景,探索商业技术、开发者与编程语言之间的深层次编程模型。同时,我们在前端其它核心领域的标准化也有所布局,比如 W3C 相关提案也在逐步推进中:

解决 Web 标准下滚动视图的复用回收问题,客户端开发中有 RecyclerView/UITableView 来实现滚动回收的布局容器,提案的 Display Sliver 定义了容器的布局方式以及当子元素滚动出 viewport 后的回收特性。

解决 Web 标准下集成常用的手势能力,客户端开发中有各种原生自带的如 Pan、Long Press 、Drag 等在 touch 之上封装的常用的基础手势能力,这使开发者可以更方便地直接使用这些手势能力,去快速开发一些交互更复杂的页面。提案期望在事件层做进一步的扩展,开发者可以直接在节点上绑定监听相关的手势事件,并在行为触发时派发相关事件。

作者|淘系技术
编辑|橙子君
出品|阿里巴巴新零售淘系技术

image.png

相关文章
|
6月前
|
JavaScript 前端开发 Java
JavaScript语言
JavaScript语言
35 1
|
16天前
|
JavaScript 前端开发 编译器
掌握现代化JavaScript:ECMAScript提案与特性
【10月更文挑战第13天】本文介绍了ECMAScript(ES)的最新提案与特性,包括可选链、空值合并运算符、类字段和顶层Await等。通过跟踪TC39提案、使用Babel或TypeScript、测试兼容性以及逐步迁移,开发者可以高效地采用这些新特性,简化代码、提高开发效率并增强应用功能。文章还提供了实战技巧,帮助开发者在现代Web开发中充分利用这些现代化的特性。
|
1月前
|
XML 监控 JavaScript
JavaScript 语言对企业上网监控的技术支持
在数字化企业环境中,上网监控对企业信息安全和提升员工效率至关重要。JavaScript 作为广泛应用的脚本语言,提供了强大的技术支持,包括数据获取与分析、与服务器端交互、监控页面加载时间和网络活动,助力企业有效管理上网行为,保障信息安全。
24 6
|
2月前
|
Web App开发 JavaScript 前端开发
探索现代JavaScript开发:ECMAScript提案的未来
JavaScript是最受欢迎的编程语言之一,其发展迅速。ECMAScript(JS的标准化版本)的提案和更新为其带来了诸多新特性和改进。本文将介绍值得关注的ECMAScript提案,如可选链、空值合并运算符、逻辑赋值运算符、类字段和顶级Await,并展示如何利用这些新特性提升开发效率和代码质量。通过关注TC39提案流程、使用Babel和TypeScript等工具,开发者可以提前体验并利用这些新特性。随着JavaScript的不断进步,未来将有更多令人期待的功能加入。
|
3月前
|
Web App开发 JavaScript 前端开发
Node.js与Go语言的对比?
【8月更文挑战第4天】Node.js与Go语言的对比?
325 3
|
3月前
|
自然语言处理 JavaScript 前端开发
【走向世界】Vue.js国际化:打造无国界应用,让爱与信息跨越语言的边界!
【8月更文挑战第30天】本文详细介绍了Vue.js中实现国际化的多种方法及最佳实践。通过使用`vue-i18n`等第三方库,开发者能够轻松地为应用添加多语言支持,优化用户体验并扩大市场覆盖范围。文章涵盖从基本配置、动态加载语言包到考虑文化差异等方面的内容,帮助读者构建真正全球化且无缝多语言体验的应用程序。
94 0
|
3月前
|
JavaScript 前端开发 UED
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程
|
5月前
|
JavaScript 前端开发 编译器
ECMAScript与JavaScript:一场语言的邂逅
ECMAScript与JavaScript:一场语言的邂逅
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的高校工会提案管理信息系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的高校工会提案管理信息系统附带文章和源代码部署视频讲解等
29 1
|
6月前
|
JavaScript 测试技术
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发