上周,谷歌在Chrome中启用了WebAssembly垃圾回收(WasmGC)。这是一个重要的发展,因为它可能会导致更多的Web开发人员使用WasmGC。
WasmGC使开发更好的Web应用程序变得更容易。此外,它有助于管理内存,将现有代码移植到网页,并支持更快的实时应用程序。谷歌对Chrome中的WasmGC的支持显示了他们对WebAssembly技术的承诺。
这一更新有可能使JavaScript在开发者中变得稍微不那么流行。JavaScript广泛用于制作交互式网页。
软件开发人员Eloff在X上发布说:“WebAssembly GC是一个大事情。WebAssembly就像通用机器,一个编译器可以针对的指令集,在任何地方都可以运行。”
在WebAssembly之前,JavaScript是少数几种可以用来开发Web应用程序的编程语言之一。然而,特别是对于复杂的应用程序而言,JavaScript并不以其性能而闻名。
WebAssembly解决了这个问题,它允许开发人员使用高性能的编程语言来开发Web应用程序。
这对Web开发人员意味着什么
WebAssembly是一种新技术,它允许开发人员使用JavaScript以外的编程语言开发Web应用程序。Wasm中的垃圾回收功能使得它变得更好,因为它使得开发人员不需要担心手动管理内存。
WasmGC自动管理内存分配和释放,让开发人员可以专注于开发其Web应用程序的核心功能。
将语言移植到新架构通常涉及重新编译虚拟机(VM)以支持该架构。虽然传统方法适用于WebAssembly(Wasm),但Wasm垃圾回收(WasmGC)提案解决了其特有限制。
WasmGC通过Wasm VM的GC实现来管理结构和数组,提供高层次的优势和与目标VM的更紧密整合。它有助于最小化已传输的内存管理代码,减小二进制大小,并通过Wasm和JavaScript之间的双向链接高效处理循环收集,使得两者之间可以进行适当的引用。
JavaScript面临激烈竞争
HackerNews上的一位用户说:“JavaScript突然似乎不再是唯一的真正游戏。”
WebAssembly由于其固有的优势可能对JavaScript的流行构成挑战。Wasm的编译本质使得它从像C和C++这样的语言中编译,与JavaScript相比执行速度更快,而JavaScript是一种解释型语言,众所周知比较慢。
WebAssembly的适应性对比JavaScript在这一领域的局限性,增强了其可移植性。此外,WebAssembly在沙盒环境中的隔离安全性提高,将其与浏览器的其他组件隔开,这是JavaScript所缺乏的优势,它面临更多潜在的安全威胁。
WebAssembly的垃圾回收功能在2017年提出。然而,大部分工作在过去三年完成。随着使用WebAssembly建站的用户数量增长,Chrome、Edge和Firefox已默认选项。
尽管JavaScript和WebAssembly在Web开发中的性能和速度方面有两个不同的角色,后者脱颖而出。WASM通常比JavaScript更快,因为它是预编译的,并且能够直接在硬件上高效执行,而JavaScript是解释型的,导致执行速度相对较慢。
发表的一篇论文比较了两种语言的性能,得出的结论是Wasm的能效提高了30%。
与JavaScript不同的是,Wasm代码可以为不同的硬件架构编译,确保在不同设备和平台上的可移植性。此外,它支持多种编程语言,允许它们之间的无缝互动。
Wasm的执行发生在沙盒环境中,它将其与主浏览器线程隔离开来,通过限制对系统资源的未授权访问,提供了改进的安全性。这是两种语言之间的关键差异。
随着大多数在线黑客攻击发生在浏览器上,Wasm在多个方面提供了安全优势。
JupiterOne的首席信息安全官Sounil Yu说,“Wasm有限的指令集和更好的内存管理,有助于减少漏洞的攻击面,并防止一些常见类型的漏洞,如缓冲区溢出。”
Wasm代码还通过不可读性提供了一定程度的安全性,使得攻击者更难以逆向工程代码,从而更难发现和利用漏洞。
JavaScript在Web开发中拥有超过63%的用户数量。它是现代Web开发的基础,提供了易用性、广泛的支持和与浏览器的DOM的无缝集成。
WebAssembly相当新,仅在三月份发布。
在2022年的WebAssembly现状调查中,67%的受访者经常使用WebAssembly,这比2021年的47%大幅增长。现在,WebAssembly被用来构建流量最大的网站。WasmGC只会推动这种流行。