序言(二)

前端的可玩性变得越来越高,也越来越开放了。现如今,我们不仅仅能够使用HTML、CSS及Javascript来编写各种跨端的应用程序,WebAssembly的出现还让我们能够以极小的成本来复用其他领域已存在的成果,以此来弥补JavaScript在其性能与功能上的不足。

我第一次了解到WebAssembly是在2017年年初,当时沉迷于想自己制作一个基于Node.js环境和树莓派的语音助手。可惜对于语音处理这个领域来说,JavaScript 还是一个“新人”,大量成熟的实现成果主要集中在C/C++领域。因此,对于当时对Node.js扩展及C/C++了解甚少的我来说,这是难度颇大的一个门槛。后来通过Twitter我了解到WebAssembly的前身是ASM.js,于是我立即尝试使用Emscripten将Google Assistant的Linux SDK编译为ASM.js,并顺利地在Node.js环境中进行了调用,那份喜悦我记忆犹新,同时这也极大地提升了我对这项技术的信心和好感。之后在全民直播的技术提升项目中,我与另一位研发人员有幸一起对最核心的播放器组件编解码和弹幕协议加密部分进行WebAssembly化,并成功上线且获得了极大的性能提升。在此之后,我坚信WebAseembly在未来一定会大有可为。

由于 WebAssembly 是一项极新的技术,因此在最初学习 WebAssembly 的过程中常常觉得知识零碎且不成体系,经常会出现浮沙驻高塔的情形,感觉入门十分困难。好在本书的出版,让这种情形不再复现。这本书的好处就是它系统详细地讲述了WebAssembly的方方面面,由浅入深地构建了整个 WebAssembly 的知识体系。不管你是刚接触 WebAssembly 的新人,还是已经在工作场景中使用WebAssembly的“老鸟”,通过阅读这本书都能够得到极大的提升。总之,如果你想了解WebAssembly,或者想补足相关的知识体系,它都是一本不可多得的案头好书。风雨欲来,如果现在还不进行WebAssembly的技术储备,更待何时?

最后,我要感谢于航让我第一时间读到如此精彩的作品,同时也感谢他对WebAssembly在国内的布道普及所做的工作,我相信WebAssembly的未来一定会更加美好,Web的未来也会更加开放和美好。

赵洋

赵洋是“全民直播”的前端研发经理,曾经主导全民直播播放器编解码核心模块及弹幕协议加密过程WebAssembly化。