Java编程网

分享 Java Web 开发相关知识

WebAssembly:Web开发的未来

想象一下一个世界,您可以使用C,C ++,Rust,Python甚至GO来构建软件,然后在没有任何安装和接近本机性能的情况下通过Web浏览器将该软件交付给最终用户。超过75%的用户正在运行能够在其浏览器中运行JS以外的语言的浏览器。

我们正在展望一个未来,不仅可以在JS上构建网络,而且可以在C,Rust甚至GoLang上构建网络。WebAssembly是一种可以在现代Web浏览器中运行的新型代码-它是一种低级的类汇编语言,具有紧凑的二进制格式,可以以接近本机的性能运行,并提供诸如C / C ++,C#和Rust的语言带有编译目标,以便它们可以在网络上运行。它还被设计为与JavaScript一起运行,从而允许两者一起工作。WebAssembly对Web平台具有巨大的影响。

它于2019年12月成为W3C的正式标准。WebAssembly使开发人员能够构建可在任何设备上使用的强大的交互式体验。它包含一种类似于程序集的低级语言,可以用文本表示,然后将其转换为可在所有现代浏览器上运行的二进制格式。但是,您实际上不会直接编写此代码,而是将其用作用其他语言编写的程序的编译目标。例如,您可以使用Unity和C#构建视频游戏,然后将其编译为WebAssembly,以便可以轻松地在浏览器中交付它。

现在需要注意的是,实际上这并不是要替换javascript,两者可以很好地协同工作。这可能不仅会影响我们对JS的看法,还会影响整个网络体验。例如,Figma将React.js用于其外部UI,而不是在内部,您拥有一个高性能的C ++设计工具,其感觉与本地软件一样快。在阅读Figma首席技术官Evan Wallace的这篇文章之前,我并不知道这一点。

WebAssembly不仅如此。您可以将WebAssembly用作难题,以使Web平台缺少您所缺少的一些功能,或者通过手术来替代JavaScript瓶颈。与javascript不同,动态解释语言WebAssembly是具有严格类型保证的静态编译语言。可以使用多种方法来构建WebAssembly应用程序,最流行的工具之一是emscripten,它可以将C或C ++程序转换为WebAssembly。如果您想对代码进行低级控制,则可以使用称为AssemblyScript的代码。它是WebAssembly编译器的TypeScript。现在,这可能会误导您,因为您不能只是将现有的TypeScript扔到此编译器中并从中获取WebAssembly,因为在WebAssembly中,您没有DOM API,因此您不能仅使用相同的代码。但是AssemblyScript使用的是TypeScript语法。

JavaScript和WebAssembly不是对手。它们之间有协同作用。一起使用。一个不会替代另一个。
就像调试将变得更加困难,并且当前WebAssembly的代码拆分要比JavaScript的难得多,您必须来回调用。

我试图使文章简短明了。我将在以后的文章中更多地介绍WebAssembly及其用例。请在评论中让我知道您的想法。

编码愉快!!!🎉

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注