<p>我们的目标确实是支持任何语言,但是支持任何语言都很难在没有巨大延迟的情况下实现。在</p>
<p>WebAssembly目前主要关注那些传统上提前编译、在线性内存堆上工作良好、不需要动态重新编译、运行时代码加载或垃圾回收的语言。其中一些约束是为了尽早得到一个最小可行的产品(这发生在<a href="https://lists.w3.org/Archives/Public/public-webassembly/2017Feb/0002.html" rel="noreferrer">February 2017</a>)中,并考虑到现有的浏览器编译器可以做什么。在</p>
<p>注意MVP不支持线程。之后不久将添加线程。在</p>
通过编译一个用C/C++编写的解释器,可以很容易地支持Python、JavaScript和Ruby。更高版本的WebAssembly将支持JIT编译,但是像V8这样的引擎必须将WebAssembly当作一个新的ISA(例如,与x86-64/ARM/…)一样瞄准WebAssembly。在</p>
<p>C和Java需要类似的GC和堆栈操作原语。这也在路线图上,但在MVP、线程和动态链接之后。在</p>
<p>请注意,这些语言可能工作得很好,但是支持它们的所有库也很困难!我们(浏览器工程师)可以很好地支持语言,但我们需要围绕强大的库支持建立社区。在</p>
<h2>WebAssembly会取代JavaScript吗?在</h2>
<p>最后一句话:是的,WebAssembly应该能够做很多JavaScript可以做的事情,因为它可以访问相同的webapi。它的目标不是要替换JavaScript:它是为了补充JavaScript,避免为JavaScript添加特性,以便不自然地支持其他语言,并为低级别语言(如C++ + RIST)提供可预测的近本地性能。在</p>
<p>为那些以JavaScript为目标或编译与JavaScript相似语言(例如TypeScript)的人保留JavaScript的进化,并将WebAssembly发展成JavaScript喜欢其他语言的酷助手。在</p>
<p>最终,WebAssembly将支持<a href="http://webassembly.org/docs/future-features/" rel="noreferrer">even more low-level features</a>。其中一些对于JavaScript的采纳是没有意义的,但是现有的代码(例如大型C++代码库)假定这些特性存在正确性和/或性能。在</p>
<p>人们应该停止编写JavaScript,转而使用WebAssembly吗?不,我希望JavaScript的紧密集成意味着WebSimMeleMax模块将被用于JavaScript(比如,一个快速图像处理器),而现有的C++代码库将针对Web,但我看不到{a3}。在</p>