# 标准异议
¥Standards objections
在特殊情况下,当最终解决方案的协作不再可能时,AssemblyScript 可能会反对 WebAssembly 标准化背景下的个人努力。本页涵盖了我们的反对意见及其相关背景。
¥In extraordinary circumstances, when collaboration towards eventual resolution is no longer deemed possible, AssemblyScript may object to individual efforts in context of WebAssembly standardization. This page covers our objections and their relevant context.
# W3C WebAssembly 工作和社区组
¥W3C WebAssembly Working and Community Group
经过彻底考虑后,AssemblyScript 认为 WASI、派生提案、W3C 对其子组的认可以及字节码联盟的做法(并非所有其各自成员都一定意识到和/或批准)对一般开放标准和 WebAssembly 规范有害。 特别的。
¥After thorough consideration, AssemblyScript considers WASI, derived proposals, the W3C's endorsement of its subgroup and the Bytecode Alliance's practices, that not all of their respective members necessarily are aware and/or approve of, harmful to open standards in general and the WebAssembly specification in particular.
# WASI,2022-09
WASI (opens new window) 是用于非 Web WebAssembly 的类似 POSIX 的导入命名空间,它提供了 外部函数集 (opens new window)(例如 fd_write
),其灵感来自于 C++ 和 Rust 等系统编程语言中公开的底层,但不在 Web 平台上。WASI 是 营销为 (opens new window) 一个标准 (opens new window),与官方 W3C 标准化工作非常接近,与 WebAssembly 的范围 (opens new window) 和 高层次目标 (opens new window) 几乎没有重叠,并且由一个强大且基本上独立运作的 W3C 子组管理,致力于 选择自定义目标 (opens new window)。随着时间的推移,WASI 小组扩大了其范围,设计了 自己的建议 (opens new window),部分与已建立或当前设计的 Web 标准竞争,如今在与标准目的的紧张关系中促进了碎片化。作为脱节的一部分,我们在表达关切时遇到了滥用权力的作案方式,我们的代表受到系统性歧视,他们的关切被压制,例如 WASI 主席 打着附加贬义回顾的幌子 (opens new window),结果所表达的关切仍然得不到解决 。
¥WASI (opens new window) is a POSIX-like import namespace for non-Web WebAssembly that provides a set of external functions (opens new window) such as fd_write
inspired by a low-level layer exposed in systems programming languages such as C++ and Rust, but not on the Web platform. WASI, which is marketed as (opens new window) a standard (opens new window) in close proximity to an official W3C standardization effort, has little overlap with WebAssembly's scope (opens new window) and high-level goals (opens new window), and is governed by a powerful and largely independent-acting W3C subgroup working towards select custom goals (opens new window). Over time, the WASI subgroup has expanded its scope, devising its own proposals (opens new window) that in part compete with established or currently devised Web standards, nowadays promoting fragmentation in tension with the purpose of standards. As part of the disconnect, we have been exposed to a modus operandi of abuse of power when voicing concerns, where our representatives have been systematically discriminated and their concerns silenced, for example by the WASI chair under a pretense with appended derogatory retrospective (opens new window), with the outcome that concerns expressed remain unaddressed.
总而言之,WASI 和 WASI 小组使其他参与者几乎不可能 pursue (opens new window) efforts (opens new window) 与 WebAssembly 的目标保持一致,其中许多目标今天仅存在于纸面上,令更广泛的社区感到惊讶,而 WASI 的概念和想法继续扩散到 WebAssembly 的一切中, 讽刺的是,生态系统的过早分裂是通过标准本身来调节的。
¥All in all, WASI and the WASI group make it almost impossible for other participants to pursue (opens new window) efforts (opens new window) aligned with WebAssembly's goals, many of which solely exist on paper today to the broader community's astonishment, while WASI's concepts and ideas continue to diffuse into everything WebAssembly, progressing a premature ecosystem split that is ironically mediated via the standard itself.
我们对 WASI 与 WebAssembly 的高级目标 (opens new window) 和值中的几个关系的评估如下:
¥Our assessment of WASI's relation to several of WebAssembly's high-level goals (opens new window) and values is as follows:
沟通的技术目标 | 评估 |
---|---|
可移植 虽然 WASI 可以是 polyfilled (opens new window),但它对于高级语言/Web 来说并不是一个相当可移植的抽象。 | |
对 C/C++(和 Rust)以外的语言的支持 自然适合 Web 平台的语言不仅被忽视,而且 WASI 对 Web 概念的自我禁制破坏了其他语言与 JS 和 Web 平台的互操作潜力 具体来说。 | |
在现有 Web 平台内执行并与其良好集成 WASI 不与现有 Web 平台集成,而是从根本上与之竞争。 | |
维护 Web 的无版本、功能测试和向后兼容的演进故事 WASI 的概念并非带有 Web 平台概念的 backwards-compatible (opens new window)。 | |
在与 JavaScript 相同的语义宇宙中执行 WASI 的语义与 JavaScript 的语义根本不同,有效地建立了一个替代宇宙。 | |
通过 JavaScript 可访问的相同 Web API 访问浏览器功能 WASI 不关心 Web API 和 JavaScript,并且其团队拒绝考虑它们的存在。 | |
推广其他针对 WebAssembly 的编译器和工具 WASI 通过引入低效率和不兼容性来扼杀其他编译器并破坏其他语言。 |
沟通的组织价值 | 评估 |
---|---|
宪章 (opens new window) WASI 对范围、参与、沟通和决策政策的遵守普遍存在疑问。具体来说,WASI 的可交付成果当然不符合 "与 JavaScript 和 Web 优雅地互操作"。 | |
CEPC (opens new window) WASI 组织系统地滥用 CEPC,导致 "win" 败诉。 |
总而言之,WASI 与一般 Web 标准(尤其是 WebAssembly 规范)中的技术目标和组织价值几乎没有重叠。它的子集团为了自身的利益而培育了一种歧视性和排斥性的环境,这片面地强化了其技术偏见。我们的印象是,WASI 小组为了 使其竞争对手处于严重不利地位 (opens new window) 故意采用上述做法,心甘情愿地冒着整体标准化工作受到严重损害的风险。
¥Summarized, WASI has little overlap with technical goals and organizational values in Web standards in general and the WebAssembly specification in particular. Its subgroup nourishes a discriminatory and exclusionary environment to its own advantage which lopsidedly reinforces its technical bias. It is our impression that the WASI group deliberately applies said practices in order to strongly disadvantage its competitors (opens new window), willingly taking chances that the overall standardization effort is profoundly damaged.
我们提出的尚未解决的具体技术或相关问题包括:
¥Concrete technical or related concerns we have voiced that remained unaddressed are:
对于天生适合 Web 平台的语言,WASI 导致了 Wasm 中的垫片 (opens new window),并且在缺乏替代方案的情况下,导致了 JS 中的填充,两者之间存在概念上的破坏,表明它不是很好地支持许多编程语言的正确抽象。
¥For languages that are a natural fit for the Web platform, WASI leads to a shim in Wasm (opens new window) and, lacking alternatives, a polyfill in JS, with conceptional breakage in between, indicating that it is not the right abstraction to support many programming languages well.
WASI 强制要求 Web 上不常见的概念(例如 strings),这些概念从根本上与类 Java 语言和 JavaScript 不兼容,这表明当以与现有 Web 平台兼容为目标时,它不是一个合理的抽象。
¥WASI mandates concepts uncommon on the Web (for e.g. strings) that are fundamentally incompatible with Java-like languages and JavaScript, indicating that it is not a reasonable abstraction when compatibility with the existing Web platform is the goal.
WASI 引入了冗余,其中 Web 平台上可用的功能预先地在 WASI 之上以不同方式实现。
¥WASI introduces redundancy where functionality available on the Web platform is eagerly implemented differently on top of WASI.
过度使用 WASI 会导致 Web/浏览器中的 WebAssembly 代码膨胀,其中代码大小可以说是最重要的。
¥Overuse of WASI leads to code bloat in WebAssembly on the Web / in browsers, where code size arguably matters the most.
WASI 通过引入针对不同环境重新编译模块的要求来促进碎片化。
¥WASI promotes fragmentation by introducing the requirement to recompile modules for different environments.
WASI 通过预先地扩展其范围和独立设计竞争性 API 来促进碎片化。
¥WASI promotes fragmentation through eagerly extending its scope and independently devising competing APIs.
尽管如此,如果满足以下条件,我们愿意考虑重新与 WASI 合作作为定制工作:
¥Nonetheless, we are open to consider re-engagement with WASI as a custom effort given that the following conditions are met:
将 WASI 存储库和场所从 W3C / WebAssembly 组织迁移到
¥Relocation of WASI repositories and venues out of the W3C / WebAssembly organization to
a) 明确表明其不一定符合非多语言、非网络方法,并且
¥a) clearly indicate its not necessarily aligned non-polyglot, non-Web approach and
b) 结束认可对所有其他努力的不利影响。
¥b) end the detrimental effects of endorsement over all other efforts.
明确传达 WASI 不关心 WebAssembly 的许多总体目标和现有 Web 平台。
¥Clear communication that WASI is unconcerned with many of WebAssembly's overall goals and the existing Web platform.
承认错误并真诚道歉,以减轻那些受到歧视、抹黑和排斥的人的痛苦。
¥An acknowledgement of wrongdoing and sincere apology to lessen the suffering of those discriminated, discredited and excluded.
在解决这些问题时存在善意和诚实,但缺乏政治技巧。
¥The presence of well-intention and honesty and the absence of political finesse when addressing the conditions.
我们建议 WebAssembly CG 确保在任何情况下都满足第一个条件,因为我们预计如果不这样做将延长背书的新兴政治属性,这与理性和建设性的技术话语背道而驰。
¥We recommend to the WebAssembly CG to ensure that the first condition is fulfilled in any case as we expect that failure to do so will prolong the endorsement's emergent political properties that run counter to rational and constructive technical discourse.
# 组件模型,2022-09
¥Component Model, 2022-09
与 WASI 相同的考虑因素也适用于其 组件模型 (opens new window),这是一项为所有 WebAssembly 定义 "可移植、可虚拟化、可静态分析、功能安全、与语言无关的接口,尤其是 WASI 定义的接口" 的提案,尽管它没有使连接显而易见,但知情人士将其恰当地命名为 "WASI 组件模型" 1 (opens new window) 2 (opens new window) 3 (opens new window)< /sup>。组件模型不仅巩固了 WASI 作为标准基础的偏好,而且几乎悄无声息地取代了人们期待已久的提案,例如 JS+DOM (opens new window)、WebIDL 绑定 (opens new window) 和 接口类型 (opens new window),尽管 Wasm/JS 互操作性的改进通常被认为是明显的胜利,但令人惊讶的是,WebAssembly 平台仍然缺席 。到目前为止,我们还没有看到任何可靠的证据来支持从绑定到不同范围的组件模型的转变,并怀疑战略原因。
¥The same considerations as for WASI apply to its Component Model (opens new window), a proposal to define "portable, virtualizable, statically-analyzable, capability-safe, language-agnostic interfaces, especially those being defined by WASI" for all of WebAssembly, that, even though it does not make the connection obvious, is aptly named the "WASI Component Model" by those in the know 1 (opens new window) 2 (opens new window) 3 (opens new window). The Component Model not only cements WASI's preferences as the standard's foundation, but has almost silently replaced long awaited proposals such as JS+DOM (opens new window), WebIDL bindings (opens new window) and Interface Types (opens new window), even though improvements to Wasm/JS interoperability are commonly considered obvious wins yet surprisingly remain absent from the WebAssembly platform. So far we haven't seen any credible evidence that would support the drift away from bindings to the differently scoped Component Model, and suspect strategical reasons.
我们对组件模型与 WebAssembly 的几个高级目标和价值观的关系的评估与我们的 上述 WASI 评估 相同,而组件模型会影响所有 WebAssembly,同时违反兼容性和安全性等重要属性。我们对组件模型与 自己的目标 (opens new window) 中的几个关系的评估如下:
¥Our assessment of the Component Model's relation to several of WebAssembly's high-level goals and values is identical to our assessment on WASI above, whereas the Component Model affects all of WebAssembly while violating important properties such as compatibility and security. Our assessment of the Component Model's relation to several of its own goals (opens new window) is as follows:
沟通的技术目标 | 评估 |
---|---|
可移植的、跨语言的组合 如果涉及的所有语言都类似于 Rust,则可以使用。所有其他情况下的中断,包括。与 JS / Web API 交互时。 | |
语言中立性 组件模型仅支持一种编程语言 - 这正是它声称要避免的偏见。 | |
形式语义 组件模型并不是在与核心 Wasm(即 Web 平台)相同的语义框架中定义的。 | |
Web 平台集成 组件模型破坏了本来很适合的语言的 Web 平台集成。 |
我们提出的尚未解决的具体技术或相关问题包括:
¥Concrete technical or related concerns we have voiced that remained unaddressed are:
组件模型不必要地限制其概念(例如 strings),通过面向目标的设计选择(例如 "规范的 ABI")引入不兼容性和安全问题,或者 "external" 和 "internal" 函数调用之间的可疑区别,其中区别对于 WASI 的受众来说并没有什么区别 然而 "external" 调用破坏了任何自然适合 Web 平台的语言的 Web、JS 和自互操作。组件模型未提出对受影响用例的支持。
¥The Component Model unnecessarily restricts its concepts (for e.g. strings), introducing incompatibility and security issues via target-oriented design choices like its "canonical ABI" or a questionable distinction between "external" and "internal" function calls, where the distinction conveniently does not make a difference for WASI's audience yet "external" calls break Web-, JS- and self-interop for any language that would naturally fit the Web platform. Support for affected use cases is not proposed by the Component Model.
组件模型专门提出了 Rust/非 Web 概念,而找不到类似 Java/Web 平台的概念。
¥The Component Model proposes Rust/non-Web concepts exclusively, with Java-like/Web platform concepts nowhere to be found.
组件模型选择的 "规范的 ABI" 不必要地偏向 WebAssembly,反对 Web 平台,而偏向 C++ 和 Rust。
¥The Component Model's chosen "canonical ABI" needlessly biases WebAssembly against the Web platform in favor of C++ and Rust.
组件模型规定了 "语言中立" 和 "网络平台集成" 的目标,但它完全没有实现这些目标。
¥The Component Model states the goals of "language neutrality" and "Web platform integration", which it exactly does not honor.
使用组件模型进行 ESM 集成将在函数调用的基本层面上破坏 Web 平台,例如,当 JavaScript 模块(包括透明的依赖)升级到 WebAssembly 模块或以其他方式替换为 WebAssembly 模块时。
¥Using the Component Model for ESM-integration will break the Web platform on the fundamental level of function calls, say when JavaScript modules, including transparently in dependencies, are upgraded to or otherwise replaced with WebAssembly modules.
在建立组件模型的过程中,观察到了各种流程差异和违规行为:
¥Various process discrepancies respectively violations have been observed over the course of the Component Model being established:
2020 年 5 月,组件模型提案(当时的 Interface Types)的冠军 acknowledged (opens new window) 认为 Interface Types 首选的语义选择与包括 JavaScript 在内的类 Java 语言不匹配,而且支持类 Java 在技术上是微不足道的 分别是 Web 平台语义也是如此。该组织表示支持该决议。然而,在后来没有表明连接的 rebase 提交中,完全相反 (opens new window) 被提交并用无意义的散文来证明:
¥In May 2020, the champion of the Component Model proposal (Interface Types at the time) acknowledged (opens new window) that Interface Types' preferred choice of semantics does not match Java-like languages, including JavaScript, and that it would be technically trivial to support Java-like respectively Web platform semantics as well. The group signaled support for the resolution. However, in a later rebase commit that didn't indicate a connection, the exact opposite (opens new window) was committed and justified with nonsensical prose:
虽然所有数字类型的规范表示都很明显,但由于其固定的 2 次方大小,
char
要求建议选择任意字符编码。为了匹配核心 wasm 规范的 选择 UTF-8 (opens new window),以及更普遍的趋势 "UTF-8 无处不在" (opens new window),该提案也选择了 UTF-8。通过选择规范的字符串编码快乐路径,同时提供高效转码的优雅回退,接口类型提供了温和的压力,以最终收敛,同时不会出现性能悬崖。¥While the canonical representation of all the numeric types are obvious, due to their fixed-power-of-2 sizes,
char
requires the proposal to choose an arbitrary character encoding. To match the core wasm spec's choice of UTF-8 (opens new window), and the more general trend of "UTF-8 Everywhere" (opens new window), this proposal also chooses UTF-8. By choosing a canonical string encoding happy path while providing a graceful fallback to efficient transcoding, Interface Types provides a gentle pressure to eventually converge without performance cliffs in the meantime.首先,有一个比任意选择更好的选择:做 Web 平台所做的事情。其次,文件格式的选择与 API 调用的要求关系不大。第三,"UTF-8 无处不在" 是一些人的观点文章,他们公开指出 JavaScript(仍然是 WebAssembly 的主要互操作语言)是有害的。第四,类 Java 语言和 JavaScript 互操作不存在 "幸福之路"、"优雅的后备" 和 "高效转码"。第五,对网络平台施加压力不是任何提案的职责。第六,由于严格的向后兼容性限制,最终的收敛是不可能的。第七,如果最基本的构建模块
char
类型已经受到人为限制,那么肯定会出现性能悬崖,甚至更糟糕的不兼容性,不仅是暂时的,而且是永远的。相反,Unicode 代码点是一个兼容的选择。¥First, there is a better than an arbitrary choice: Do what the Web platform does. Second, a file format's choice has little to do with the requirements of API calls. Third, "UTF-8 Everywhere" is an opinion piece by people who publicly state that JavaScript, still WebAssembly's primary interop language, is harmful. Fourth, there is no "happy path", no "graceful fallback" and no "efficient transcoding" for Java-like languages and JavaScript interop. Fifth, it is not any proposal's business to provide pressure against the Web platform. Sixth, eventual convergence is impossible due to hard backwards-compatibility constraints. Seventh, surely there will be performance cliffs, even worse incompatibility, not just in the meantime, but forever if the most fundamental building block, the
char
type, is already artificially restricted. Unicode code points would instead have been a compatible choice.2021 年 5 月,对 CG 建立组件模型的会议议程进行了一系列民意调查 被提议 (opens new window)。随附的演示文稿 (opens new window) 包含不准确的 "拟议的后续步骤",以证明单个 "规范的 ABI" 的合理性,该 "规范的 ABI" 会铭记 WASI 的语义选择,将其他任何内容称为 "只是一个优化",这显然是不真实的,同时回避 "硬设计问题",这也考虑到事先的确认,是一种扩展。向小组通报 AssemblyScript 的影响的澄清演示,但在投票前被简单拒绝。
¥In May 2021, a series of polls was proposed (opens new window) to the CG's meeting agenda to establish the Component Model. The accompanying presentation (opens new window) contained inaccurate "Proposed next steps" to justify a single "canonical ABI" that would inscribe WASI's semantic choices, calling anything else "just an optimization", which is obviously untrue, while sidestepping "hard design questions", which, also given the prior acknowledgement, is a stretch. A clarifying presentation to inform the group about the implications was proposed (opens new window) by AssemblyScript, which was simply rejected to be given before the polls would take place.
尽管如此,AssemblyScript 还是在投票前的周末匆忙发布了 所附演示文稿存在问题 (opens new window)。在民意调查通过之前,问题和陈述仍未得到解决。在 投票前的讨论 (opens new window) 中,提到了这些担忧,但思路被接口类型冠军粗暴地打断了,因此这个担忧没有得到充分讨论。民意调查随后获得通过,WASI 游说团体投了赞成票。AssemblyScript 代表投票了 "against",因为 WebAssembly WG 的一名成员建议他不要强烈投票。据说这样做会被认为是不好的做法。在讨论期间,接口类型冠军应另一位成员的要求澄清,民意调查不会规定具体的语义,后来证明这是不真实的,但可能说服更多的人投票中立或赞成。
¥AssemblyScript nonetheless hurried to publish an issue with the presentation attached (opens new window) the weekend before the polls would take place. Issue and presentation remained unaddressed until the polls had passed. In the discussion before the polls (opens new window), the concerns were mentioned, but the line of thought harshly interrupted mid-sentence by an Interface Types champion so the concern was not adequately discussed. The polls subsequently passed with the WASI lobby voting in favor. The AssemblyScript representative voted "against" as he was advised by a member of the WebAssembly WG to not vote strongly. It was said doing so would be considered bad practice. During the discussion, an Interface Types champion clarified upon request by another member that the poll would not prescribe specific semantics, which later turned out to be untrue, yet likely convinced more people to vote neutral or in favor.
在准备他们的演示时,AssemblyScript 代表请求持续邀请参加 WASI 小组的会议,其中首先介绍了接口类型的设计选择,然后介绍了组件模型的设计选择。首先,由于 WASI 主席含糊的行为指控,他没有被接纳,在礼貌地同意特殊规则后,他只被允许参加一次会议,并被劝阻不要发言,WASI 主席表示这些担忧无趣,没有人会解决这些问题 无论如何。与此同时,在提出组件模型一天后,WASI 小组完成了 宣称自己是平等的一部分 (opens new window) 项标准化流程,尽管其认可已经加剧了许多先前的流程和组织差异。其他主席忽略了最近发生的事件,当时 AssemblyScript 代表在怀疑有谋杀行为时寻求帮助。最终,WASI 主席公开表示,这名男性可能已经做出了 对她的个人推特账户感到不舒服 (opens new window),这是一个可能结束职业生涯的举动,尽管从未有过私有信件。
¥In preparation for their presentation, the AssemblyScript representative requested an ongoing invite to the WASI subgroup's meetings, where Interface Types' and later the Component Model's design choices are first presented. He was first not admitted based on vague conduct accusations by the WASI chair, and after politely agreeing to special rules was only admitted to a single meeting and discouraged from speaking up, with the WASI chair stating that the concerns were uninteresting and nobody would address them anyhow. Meanwhile, one day after proposing the Component Model, the WASI subgroup had declared itself an equal part (opens new window) of the standardization process regardless of the many prior process and organizational discrepancies its endorsement had already fueled. Other chairs ignored the recent incident when the AssemblyScript representative asked for help when suspecting foul play. Eventually, the WASI chair suggested publicly that the male individual might have made her uncomfortable on her personal Twitter account (opens new window), a potentially career-ending move, even though there has never been a personal correspondence.
民意调查结束后,2021 年 6 月,一名 Google 员工在 W3C 技术架构组中编写了 two (opens new window) threads (opens new window),这将破坏 JavaScript 字符串语义,从而在设计原则上破坏与 Web 平台的兼容性。仅仅几天后,线程的存在就被用作 类似性质的参数列表 (opens new window) 的一部分,以证明打破 JavaScript/Web 平台语义是合理的。
¥After the polls, in June 2021, a Google employee authored two (opens new window) threads (opens new window) in the W3C Technical Architecture Group that would break JavaScript string semantics and thus compatibility with the Web platform by design principle. Only days later, the existence of the threads was used as part of a list of similarly natured arguments (opens new window) to justify breaking with JavaScript/Web platform semantics.
尽管如此,在 2021 年 6 月晚些时候的会议上要求的讨论时段中,接口类型冠军 filibustered (opens new window)。当时间耗尽时,CG 主席建议召开后续会议。后续会议不久后被取消,声明为 "reluctance"。尽管提出了要求,但该小组并未得到通知。尽管提出了建议,但尚未建立有序的接口类型子组,因此直到今天,接口类型和组件模型仍然在很大程度上独立作用的 WASI 子组中指定。
¥In a discussion slot nonetheless requested in a later meeting in June 2021, an Interface Types champion filibustered (opens new window). When time ran out, a CG chair suggested a follow-up meeting. The follow-up meeting was cancelled shortly after, stating "reluctance". The group was not informed, even though requested. An orderly Interface Types subgroup was not established, even though suggested, so both Interface Types and the Component Model remain specified in the largely independent-acting WASI subgroup until today.
在 2021 年 8 月的会议上,组件模型冠军将 总结和难以理解的民意调查 (opens new window) 添加到 CG 会议议程中。AssemblyScript requested (opens new window) 至少通过引用各自的 WebIDL 概念来澄清投票文本,以便更多人了解投票的内容,但遭到工作组成员和主席的集体拒绝。在最终决策过程中,我们更新的 关切和建议 (opens new window) 是 巧妙地绕过 (opens new window)(参见下一项)。
¥For an August 2021 meeting, a summary and hard-to-grasp poll (opens new window) were added to the CG meeting agenda by the Component Model champion. AssemblyScript requested (opens new window) to clarify the poll's text by at least referencing the respective WebIDL concepts so more people would understand what is voted for, which was collectively rejected by WG members and chairs. Our renewed concerns and suggestions (opens new window) were cleverly bypassed (opens new window) during the final decision process (see next item).
在 2021 年 8 月的会议上,组件模型冠军并没有展示 根据议程项目进行摘要 (opens new window),而是片面的 赞成的参数 (opens new window),尽管冠军总结的是 事先澄清 (opens new window)。2021 年 5 月的民意调查据称没有规定具体语义,但却被用作决定具体语义的参数。随后民意调查通过,WASI 游说团体投了赞成票。这次有两名成员强烈反对,并在会议结束时表达了不满,遭到了小组的模拟。他们的强烈投票并没有带来什么影响。其他 AssemblyScript 贡献者后来表示,他们不明白投票的内容,并对片面的演示感到惊讶。
¥In the August 2021 meeting, the Component Model champion did not present a summary according to their agenda item (opens new window) but one-sided arguments in favor (opens new window), even though it was clarified beforehand (opens new window) that the champion would summarize. The May 2021 poll, that was said to not prescribe specific semantics, was used as an argument to decide for specific semantics. The polls then passed, with the WASI lobby voting in favor. Two members disagreed strongly this time and were ridiculed by the group for voicing frustration at the end of the meeting. Their strong votes made no difference. Other AssemblyScript contributors later voiced that they didn't understand what was being voted for respectively were surprised by the one-sided presentation.
2021 年 9 月,创建了组件模型存储库,具有讽刺意味的是,陈述目标 (opens new window) 是 "语言中立" 和 "网络平台集成",这两者都没有得到尊重,分别受到组件模型的破坏。
¥In September 2021, the Component Model repository was created, ironically stating the goals (opens new window) of "language neutrality" and "Web platform integration", both of which are exactly not being honored respectively undermined by the Component Model.
同样是在 2021 年 9 月,在 WASI 的背景下,本着这一异议的精神,WASI 主席以一个借口(后者并不典型)关闭并锁定了该 大局讨论 (opens new window)。附上了一份不请自来的回顾,给无法回应的 AssemblyScript 代表留下了不好的印象。该代表随后向 W3C 监察员 (opens new window) 投诉了这一行为。监察员没有回应,相反,主席们无视投诉,WASI 主席编辑并加倍了他们的结案评论,当最终对一系列流程违规和差异表示严重沮丧时,AssemblyScript 代表被禁止参加 应 WASI 主席的要求,由 W3C CEO 组织各种形式的 WebAssembly。作为回应,我们提供了一份与此类似的前述流程和行为违规清单,但被忽略了。
¥Also in September 2021, a big picture discussion (opens new window) in context of WASI and in spirit of this objection was closed and locked under a pretense, the latter of which is untypical, by the WASI chair. An unsolicited retrospective was attached, painting the AssemblyScript representative, who cannot respond, in a bad light. The representative later complained to the W3C ombuds (opens new window) about the action. The ombuds didn't respond, instead the chairs disregarded the complaint, the WASI chair edited and doubled-down on their closing comment, and when finally voicing major frustration regarding the series of process violations and discrepancies the AssemblyScript representative was banned from participating in the WebAssembly organization in all forms by the W3C CEO upon request of the WASI chair. A list of foregoing process and conduct violations similar to this one was provided in response, but was disregarded.
因此,我们有理由相信,围绕组件模型的事件是出于政治动机,而技术事实要么被歪曲,要么被忽视,人们受到劝阻、歧视和排斥,目的是让他们保持沉默。
¥As such, we have reason to believe that the events surrounding the Component Model are politically motivated, whereas technical facts have either been misrepresented or ignored, and people been discouraged, discriminated and excluded with the intent to silence them.
尽管我们认为组件模型背景下的流程和行为违规行为极其严重,并且技术虚假信息和偏见的数量不可接受,但考虑到满足以下条件,我们愿意建设性地重新参与修订后的组件模型提案:
¥Even though we consider the process and conduct violations in context of the Component Model extraordinarily serious and the amount of technical disinformation and bias unacceptable, we are open to a constructive re-engagement with a revised Component Model proposal given that the following conditions are met:
冻结组件模型提案,直到 Wasm/JS 互操作性得到显着改善,从而减轻市场过早标准化的风险,这与 WebAssembly 的总体目标存在危险的矛盾。
¥Freezing the Component Model proposal until Wasm/JS interoperability has been significantly improved, mitigating risks of premature standardization ahead of the market respectively in dangerous contradiction to WebAssembly's overall goals.
对 考虑与开放网络平台的兼容性至关重要 (opens new window) 的坚定承诺。
¥A firmly established commitment to consider compatibility with the Open Web Platform critically important (opens new window).
承认错误行为并实际遵守 Wasm 和组件模型传达的目标。
¥An acknowledgement of wrongdoing and actual adherence to Wasm's and the Component Model's communicated goals.
在解决这些问题时存在善意和诚实,但缺乏政治技巧。
¥The presence of well-intention and honesty and the absence of political finesse when addressing the conditions.
如果不可能或被拒绝,我们建议 WebAssembly CG 取消组件模型提案的合法性,并且不要进一步推进它,因为标准化会过早地使 WebAssembly 偏向现有的 Web 平台,分别偏向那些适合 Web 平台的编程语言 考虑到权力格局和随之而来的经验,几乎可以肯定是永远的,因此将树立一个致命的先例,即通过可疑的做法在政治上破坏 W3C 标准化工作的目的和目标是可行的,甚至更糟糕的是合法的策略。
¥If not possible or refused, we recommend to the WebAssembly CG to delegitimize the Component Model proposal and to not advance it any further, since standardizing it would prematurely bias WebAssembly against the existing Web platform respectively against exactly those programming languages that would fit the Web platform by design, which is, given the power constellation and consequent experience, almost certainly forever, and as such would set a fatal precedent that politically undermining purpose and goals of W3C standardization efforts with questionable practices is a viable and, even worse, legitimate strategy.
# W3C 注释
¥Notes on the W3C
尽管 W3C 无疑已经意识到了这一点,但我们仍不清楚它在这些事件中所扮演的角色。尽管我们的经历很糟糕,但我们显然同意一个受人尊敬的标准化机构应该负责任地引导 WebAssembly 标准化工作,并且在满足以下条件的情况下,我们愿意扩大与 W3C 的合作:
¥Even though the W3C is undoubtedly aware, its role in context of the events remains unclear to us. Regardless of our bad experience, we obviously agree that a respectable standardization body should responsibly shepherd the WebAssembly standardization effort, and we are open to extend our engagement with the W3C given that the following conditions are met:
将 WASI 存储库和场所从 W3C / WebAssembly 组织中移出,以结束有害的认可。
¥Relocation of WASI repositories and venues out of the W3C / WebAssembly organization to end the detrimental endorsement.
任命相当中立且负责任的主席,以重新建立对 W3C 流程和价值观的信任。
¥The appointment of reasonably neutral and responsible chairs to re-establish trust into the W3C's processes and values.
开除滥用 CEPC 歧视和排除成员发表意见的成员。
¥Removal of members who have abused the CEPC to discriminate and exclude members for voicing their opinion.
对 考虑与开放网络平台的兼容性至关重要 (opens new window) 的坚定承诺。
¥A firmly established commitment to consider compatibility with the Open Web Platform critically important (opens new window).
承认错误并真诚道歉,以减轻那些受到系统性虐待的人的痛苦。
¥An acknowledgement of wrongdoing and sincere apology to lessen the suffering of those systematically mistreated.
在解决这些问题时存在善意和诚实,但缺乏政治技巧。
¥The presence of well-intention and honesty and the absence of political finesse when addressing the conditions.
如果不可能或被拒绝,我们建议社区调查 Ecma 是否是更合适的场所。我们认识到,如果浏览器供应商有兴趣自行决定让情况不那么理想,那么就没有这样的路径。
¥If not possible or refused, we recommend to the community to investigate whether Ecma would be a more suitable venue. We recognize that there is no such path if the browser vendors have an interest to leave the situation suboptimal at their discretion.
# 字节码联盟注释
¥Notes on the Bytecode Alliance
我们对与字节码联盟重新合作持怀疑态度,字节码联盟是多家科技巨头和精选合作者 那是 (opens new window) "致力于创建……新的软件基础,建立在……WASI 等标准之上" 的联盟。它的创始成员 describe (opens new window) 将 WebAssembly 的黎明视为 "修复损坏的地方的机会"(大概是 Web)、"为原生开发奠定新基础"(大概是非 Web),同时采取了 "采取深思熟虑的跨行业行动,确保以正确的方式实现这一目标"(可能解释了政治属性)。随后,从我们所目睹的情况来看,它似乎有选择地授权 WebAssembly 字段中各自较弱的参与者,应用有问题的 过程值 (opens new window)(例如 "不同意并提交"),这些 过程值 (opens new window) 实际上适合于破坏任何东西,包括它自己的 技术价值 (opens new window)(仅通过权威声明),并且, 如果说我们对其管理层的经验告诉了我们什么的话,那就是它的运作远远超出了其所谓的 社会价值 (opens new window)、"collaboration"、"inclusiveness" 和 "openness" 的限制。鉴于其并非绝对必要,但权力非常集中,并且其成员 '在所谓的开放和协作标准化工作的背景下采取的行动讲的是非常明确的语言,我们'd 希望提醒公众密切关注潜在的反竞争行为,这些行为表明需要反垄断立法介入。我们认识到,并非字节码联盟的所有成员都一定了解和/或批准其表面行动,因为其中一些成员真诚地与我们接触,尽管字节码联盟的代表并未这样做。总而言之,我们相信,没有它,WebAssembly 以及 Web 会变得更好,因为实际上,驱动其想法的流程和场所已经存在,但现在面临着因其操作的故意而导致功能失调的风险 。
¥We are skeptical of a re-engagement with the Bytecode Alliance, a coalition of several tech giants and select collaborators that is (opens new window) "dedicated to creating … new software foundations, building on standards such as … WASI". Its founding members describe (opens new window) the dawn of WebAssembly as an "opportunity to fix what’s broken" (presumably the Web), "build new foundations for native development" (presumably a non-Web), while taking "deliberate, cross-industry action to ensure this happens in the right way" (likely explaining the political properties). Subsequently, from what we've witnessed, it appears to selectively empower respectively weaken players in the WebAssembly space, applies questionable process values (opens new window) such as "disagree and commit" that are, realistically, suitable to break anything, including its own technical values (opens new window), solely by authoritative claim, and, if our experience with its management-level figures taught us anything, operates well beyond the limits of its purported social values (opens new window) of "collaboration", "inclusiveness" and "openness". Given its not strictly necessary but remarkable concentration of power, and that its members' actions in context of a supposedly open and collaborative standardization effort speak a very clear language, we'd like to caution the public to keep an eye on potential anti-competitive practices that would indicate the need for antitrust legislation to step in. We recognize that not all members of the Bytecode Alliance necessarily are aware and/or approve of its surface-level actions, since several of them have engaged with us in good faith, even though the Bytecode Alliance's representatives have not. All in all we believe that WebAssembly, and in turn the Web, would be better off without it, since realistically, the processes and venues to drive its ideas already exist, but now are at risk to be rendered dysfunctional by the deliberateness of its operation.
# 生态系统考虑因素
¥Ecosystem considerations
我们相信 WebAssembly 标准、其生态系统、Web 平台、其利益相关者和公众将从 WebAssembly 与现有 Web 平台的兼容性 (opens new window) 中受益匪浅,同时强调培育一个真正开放和协作的空间,让每个人都可以参与而无需担心骚扰,以便可以交流想法 ,更多的编程语言和用例变得可行,并且 Web 的原则和价值观得到遵守。我们看到了被政治所接管的任意中性技术的负面价值,而忽视了技术问题、既定事实和广泛的公共利益。再多的创意营销和政治技巧也无法弥补少数人的分裂努力对 WebAssembly 技术造成的巨大损害,该技术让我们感到惊讶,因为它承诺不仅将许多编程语言和用例引入到 Web,而且将人们更紧密地联系在一起。 。鉴于适合 Web 平台的用例被人为地置于不利地位,而难以学习的编程语言以及经常计量的具有不同概念的用例却被非理性地占据优势,因此,我们不仅悲伤地展望 Web 平台的未来,而且也展望未来 WebAssembly 字段的各种新尝试,因为目前受政治限制的形式剥夺了 Wasm 的真正潜力,同时引入了可移植性、兼容性和安全问题,市场可能不会很快增长到足以支持所有这些尝试。因此,我们相信,确保开放网络标准的目的、目标和价值观得到尊重,几乎符合每个人的最佳利益,但坦率地说,目前情况并非如此 - 而且可悲的是,许多人几乎把宗教信仰置于首位,从而加剧了这种情况。 编程语言偏好、支持非 Web 用例的掠夺性商业实践或两者在曾经如此有希望的愿景中的相互作用。
¥We believe that the WebAssembly standard, its ecosystem, the Web platform, its stakeholders and the public would benefit immensely from compatibility of WebAssembly with the existing Web platform (opens new window) while putting an emphasis on fostering a truly open and collaborative space where everyone can participate without fear of harassment, so ideas can be exchanged, many more programming languages and use cases become viable and the Web's principles and values are adhered to. We see negative value in an arbitrarily neutered technology that was taken over by politics while ignoring technical concerns, well-established facts and broad public interest. No amount of creative marketing and political finesse will make up for the enormous damage a select few's divisive efforts are doing to the WebAssembly technology that amazed us with the promise to bring many programming languages and use cases not only to the Web but their people closer together. Given that use cases that would fit the Web platform are artificially disadvantaged, while hard to pick up programming languages and often metered use cases with diverging concepts are irrationally advantaged, we thus look with sorrow not only towards the future of the Web platform but also towards the various new endeavors in the WebAssembly space, since, in its current politically constrained form that is stripping Wasm of its true potential while simultaneously introducing portability, compatibility and security problems, the market will likely not grow large enough soon enough to support them all. As such we believe that it is in almost everyone's best interest to ensure that purpose, goals and values of open Web standards are honored, which currently is, frankly, not the case — and sadly, the situation is reinforced by many who put almost religious programming language preference, predatory business practices in support of non-Web use cases or the interplay of both over a once so promising vision.
我们希望我们能够清楚、足够详细地表达我们的反对意见。谢谢你的考虑。
¥We hope that we managed to express our objections clearly and in sufficient detail. Thank you for your consideration.