可讓開發者編寫類TypeScript語言,再將其編譯成WebAssembly的專案AssemblyScript,在前些時間,宣布移除對WASI(WebAssembly System Interface)的支援,由於許多社群成員要求他們提出進一步解釋,因此AssemblyScript專案現在完整公開他們的考量,他們認為WASI和W3C對其所提供的支援,對開放標準有害,特別是傷害WebAssembly的規範,在滿足特定條件下,他們才會重新考慮參與WASI制定工作。

WASI是用於非網頁WebAssembly,類似POSIX的匯入命名空間,其提供了一組像是fd_write這樣的外部函式,WASI的設計參考C++和Rust等系統程式語言中所開放,但是不存在網頁平臺的低階層,AssemblyScript提到,WASI被行銷成為一個標準,但是其發展不僅幾乎沒有與WebAssembly範疇以及目標重疊,WASI還由一個強大且很大程度是獨立運作的W3C子工作組霸道管理。

隨著WASI的發展,該子工作組擴大了WASI的範疇,並且埋頭設計自己的提案,AssemblyScript認為,這些提案有一定程度與已建立,或是當前設計的網頁標準競爭,該子工作組在提出標準的同時,又同時增加了碎片化。

而在AssemblyScript專案和其他社群成員對此提出異議的時候,卻遭到系統性歧視,WASI主席以職權操作,迴避其他人對WASI制定方向的疑慮。AssemblyScript專案表示,目前WASI和該工作組,並非追求與WebAssembly一致的目標,而WASI的想法和概念持續擴散影響WebAssembly,在制定標準的過程卻造成生態系分裂,對於標準本身是一種諷刺。

AssemblyScript在文章中,公開了所有他們認為WASI制定上,尚未解決的具體技術和相關問題,該專案認為,WASI與一般網頁標準,特別是WebAssembly規範中的技術目標和組織價值沒有交集,對一個適合網頁平臺的語言來說,WASI導致WebAssembly出現shim,並且缺乏如JavaScript Polyfill的替代方案,使得兩者概念中斷,因此他們認為WASI不是一個能夠良好支援許多程式語言的正確抽象。

AssemblyScript也提到,WASI中出現網頁上不常見像是字串等概念,從根本上和類Java、JavaScript不相容,這代表當以現有網頁平臺作為相容目標時,WASI不會是一個合理的抽象。WASI還引入許多冗餘功能,網頁平臺上已經可以使用的部分功能,WASI卻堅持要以不同的方式實作。

以目前設計看來,AssemblyScript認為過度使用WASI會導致WebAssembly程式碼在網頁中膨脹,增加大量程式碼容量,且WASI要求根據不同環境重新編譯模組,並且擴展其應用版圖和獨立設計競爭API,都會導致各種碎片化的情況產生。

AssemblyScript要求WASI專案進行大刀闊斧改革後,他們才會重新考慮參與WASI制定,其包括搬遷WASI儲存庫移出W3C/WebAssembly組織,真誠地對造成的傷害道歉,並且在處理問題時,不使用政治手段。另外,AssemblyScript也對Bytecode Alliance表達了不信任的態度,他們認為該聯盟是由幾家科技巨頭,以及經過挑選的合作者組成,在WebAssembly上選擇性地削弱參與者,以程序性手段破壞協作、包容性和開放性等價值。AssemblyScript提醒,在建立於開放和協作名號下的標準化工作,需要有反壟斷力量介入,整體而言,他們認為Bytecode Alliance消失對WebAssembly和網頁的發展會更好。

熱門新聞

Advertisement