Pat*_*ski 19 javascript c# python webassembly
随着Web新时代的到来,WebAssembly将由Google,Microsoft,Apple和Mozilla合作设计:
WebAssembly高级目标
- 定义可移植,大小和加载时间有效的二进制格式作为编译目标,通过利用各种平台(包括移动和物联网)上的常用硬件功能,可以编译为以本机速度执行
我想问那些已经掌握了这些知识的人:
可能有任何编程语言一旦编译成WebAssembly吗?让它成为C#,Java,Python,JavaScript,Ruby.如果是这种情况 - 网络开发人员是否可以选择任何语言来完成他现在使用JavaScript实现的目标?
JF *_*ien 25
目标确实是支持任何语言,但支持任何语言都很难在没有大幅延迟的情况下完成.
WebAssembly目前专注于传统上提前编译的语言,在线性内存堆上运行良好,并且不需要动态重新编译,运行时代码加载或垃圾收集.其中一些限制是尽早获得最小可行产品(这发生在2017年2月),并考虑到现有的浏览器内编译器可以做什么.
请注意,MVP不支持线程.不久之后将添加主题.
通过将用C/C++编写的解释器编译为WebAssembly,可以轻松地支持Python,JavaScript和Ruby.更高版本的WebAssembly将支持JIT编译,但像V8这样的引擎必须将WebAssembly定位为新的ISA(例如与x86-64/ARM/...相同).
C#和Java需要类似的GC和堆栈操作原语.这也是路线图,但是在MVP,线程和动态链接之后.
请注意,语言可以正常工作,但支持所有库也很困难!我们(浏览器工程师)可以很好地支持语言,但我们需要社区围绕优秀的图书馆支持.
在你的最后一句话:是的,WebAssembly应该能够做许多JavaScript可以做的事情,因为它可以访问相同的Web API.它的目标不是取代JavaScript:它是为了补充JavaScript,避免为了不自然地支持其他语言而向JavaScript添加功能,并为低级语言(如C++/Rust)提供可预测的近原生性能.
为那些以JavaScript为目标或将类似语言编译为JavaScript(例如TypeScript)的人们保持JavaScript演变,并将WebAssembly演变为JavaScript喜欢其他语言的酷酷搭档.
最终,WebAssembly将支持更多低级功能.其中一些对于采用JavaScript没有意义,但现有代码(例如大型C++代码库)假定这些功能存在正确性和/或性能.
人们应该停止编写JavaScript并切换到WebAssembly吗?不.我希望与JavaScript的紧密集成意味着WebAssembly模块将用于JavaScript(比如快速图像处理器),而现有的C++代码库将以网络为目标,但我不认为JavaScript会很快消失.
| 归档时间: |
|
| 查看次数: |
4885 次 |
| 最近记录: |