WebAssembly实战

[加] C.杰勒德·加伦特(C.Gerard Gallant)
前言 与一些朋友相比,我在编程方面开窍较晚。直到高中时,我才偶然接触编程。当时我需要再修一门计算机课程,辅导老师向我推荐了一门选修课。我以为要学习的是计算机工作原理,但出乎意料,这门课程是关于编程的。很快我就对它痴迷不已,并将职业发展方向从建筑学调整为软件架构。 2001年,我加入了Dovico软件公司,工作内容是维护与改进公司的C++客户端/服务器应用程序。当时的风向已经转变,2004年,Dovico决定转向软件即服务模式,我也将工作重心转到了Web应用程序产品。虽然我仍会帮助维护C++应用程序,但我的核心关注点变成了用C#和JavaScript进行Web开发。目前,我仍然从事Web开发,但是重心转到了体系结构方面——构建API、使用数据库,以及探索新技术。 我很乐于通过博客和公开演讲回馈开发者社区。2017年9月,有人问我是否有兴趣为本地用户做一场演讲。在四处浏览以寻找演讲主题时,我看到了一篇来自于PSPDFKit的文章,其中讨论了一种名为WebAssembly的技术。 当时我已经对谷歌的Native Client(PNaCI)技术有所了解,它允许编译后的C/C++代码在Chrome浏览器中以接近原生的速度运行。我也了解过Mozilla的asm.js技术,借助这种技术,可以将C/C++代码编译为JavaScript的一个子集,并让它在支持此技术的浏览器中高速运行。它也可以在不支持asm.js的浏览器中运行,只不过速度上没有优势,因为它就是JavaScript。这是我第一次听说WebAssembly。 WebAssembly拥有asm.js的优点,同时致力于弥补其缺点。有了WebAssembly,你能够以多种语言编写代码,并将它编译为可在浏览器中安全运行的代码,而且它在所有主流的桌面浏览器与移动端浏览器中都可用!它也可以应用于浏览器之外,如Node.js!我被WebAs…