我國首個 JS 語言提案在 ECMA 進入 Stage 3


近期,在 ECMA 標準化組織的 TC39 技術委員會上,阿里巴巴前端標準化小組與淘系技術提出的 JavaScript 標準提案《Error Cause》進入了 Stage 3,將開始在 JavaScript 引擎中開始實現,並在瀏覽器、Node.js 實驗性實施,是中國首個推動到 EcmaScript 的語言,將成爲官方標準的自主技術提案。前端





ECMA/T39 是什麼?node


ECMA 是一個負責信息技術和通訊系統的國際標準組織,全稱歐洲標準化信息和通訊系統協會。其中 ECMA/TC39 是技術委員會第 39 號技術委員會,主要負責 JavaScript 相關標準的制定,包括:

  • ECMA-262,即 JavaScript 的標準 ECMAScript 定義;
  • ECMA-402,即 ECMAScript 的國際化標準 API(ECMAScript Intl API)定義;
  • ECMA-404,即 JSON 定義;
T39 的成員主要包括:谷歌、微軟、蘋果、阿里巴巴、360、華爲、騰訊等;

Error Cause 提案簡介git


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


這個提案爲 Error Constructor 新增了一個可選的參數 options,其中能夠設置 cause 而且接受任意 JavaScript 值(JavaScript 能夠 throw 任意值,如 undefined 或者字符串),將這個值賦值到新建立的 error.cause 上。

錯誤緣由的特性在許多其餘語言中都有相似的設計,如 C# Exception Cause,Java Exception Cause,Python raise exception from cause。一樣的,在龐大的 JavaScript 生態中也已經有很是普遍的使用,如 verror 每週有上千萬的下載量,@netflix/nerror 每週有數十萬的下載量。

由於 Error Cause 之前沒有標準化的參數定義及官方實現,因此容易丟失 error 的屬性或須要寫比較多的代碼自定義等,而且開發者工具也難以依賴於非語言特性的自定義方案。本提案將 cause 寫入了語言定義,能有效記錄錯誤緣由的值,可以讓開發者工具、應用監控如 Alinode 都能基於 cause 屬性值獲取錯誤邏輯鏈條,從而提高前端開發效率,下降重複開發成本。

做爲阿里巴巴在加入 Ecma 標準化組織 TC39 技術委員會後的第一個落地的提案,這只是淘系技術在技術標準化上很是小的一步。

將來github


咱們之因此進行這些提案,也是由於隨着雲原生技術在前端工程方面的大規模應用,語言的觀測性能力格外重要。語言的觀測能力直接影響到語言運行時的性能與成本。咱們維護的 Node.js 發行版 Alinode 會在雲原生時代的繼續追求成本和性能的平衡。將來,咱們也會結合阿里巴巴在步向雲原生的技術業務場景,繼續增長投入諸如異步上下文等關於觀測性的核心語言特性提案,尋找 JavaScript 中長期以來困擾開發者的異步編程上下文追蹤難題的解決方案,幫助基於雲原生的業務建設更加精準、高機器效率、高工程效率的觀測能力。

衆所周知,Serverless 可以有效的優化成本,而「彈性」則是這一過程必不可少的手段。爲了更好的實現彈性,啓動速度是很關鍵的一環。Alinode Cloud Serverless Worker 按照 Web API 標準提供 JavaScript 運行環境,具備亞毫米級啓動,業務應用 100ms 內啓動並響應的特色,將來還將能夠經過 Snapshot 快速水平(甚至跨服務器)擴展。

淘系技術很是注重標準化的參與和建設,咱們也會繼續從內部的技術場景中挖掘編程語言的拓展場景,探索商業技術、開發者與編程語言之間的深層次編程模型。同時,咱們在前端其它核心領域的標準化也有所佈局,好比 W3C 相關提案也在逐步推動中:

  • 滾動回收容器 Sliver: https://github.com/w3c/chinese-ig/issues/239

    解決 Web 標準下滾動視圖的複用回收問題,客戶端開發中有 RecyclerView/UITableView 來實現滾動回收的佈局容器,提案的 Display Sliver 定義了容器的佈局方式以及當子元素滾動出 viewport 後的回收特性。

  • 經常使用手勢事件: https://github.com/w3c/chinese-ig/issues/240

    解決 Web 標準下集成經常使用的手勢能力,客戶端開發中有各類原生自帶的如 Pan、Long Press 、Drag 等在 touch 之上封裝的經常使用的基礎手勢能力,這使開發者能夠更方便地直接使用這些手勢能力,去快速開發一些交互更復雜的頁面。提案指望在事件層作進一步的擴展,開發者能夠直接在節點上綁定監聽相關的手勢事件,並在行爲觸發時派發相關事件。
 
✿    拓展閱讀


做者|淘系技術web

編輯|橙子君
編程

出品|阿里巴巴新零售淘系技術瀏覽器


本文分享自微信公衆號 - 淘系技術(AlibabaMTT)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。服務器

相關文章
相關標籤/搜索