第 8 章 服务器中的 WebAssembly 服务器中的 WebAssembly
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
作为聚光灯下的焦点人物,我感到非常不自在。我非常喜欢幕后的角色,因为那里有我所有的自由。
布莱恩-伊诺
我的职业生涯始于用户界面领域。我首先开发了一个 X/Motif 应用程序,用于控制 Network+ 矩阵交换机。1从那时起,我进入了一个能够显示 TB 级地形数据和高光谱图像的全地球可视化环境。这不仅从三维可视化的角度来看很有趣,而且我们还受到了 Silicon Graphics 公司 Doug Young 的启发,围绕命令模式构建了整个应用程序。2这比 "四人帮 "设计模式一书的问世还要早一年。
在大多数时候,开发人类坐下来使用的软件是一种有趣而有益的体验。你可以通过考虑人们如何完成工作任务,真正让他们的生活更轻松、压力更小。尽管有这些优点,但它也有缺点。虽然每个人都对用户界面的决定有自己的看法,但只有部分人的看法是有依据的。
我想,在某种程度上,,这就是布莱恩-埃诺在上述引文中所说的。他是著名的乐声乐队(Roxy Music)的创始人之一,也是各地音乐迷的宠儿。不过,尽管他衣着华丽、浓妆艳抹,但他并不真正喜欢成为聚光灯下的焦点,在与布莱恩-费里(Bryan Ferry)频频发生冲突后,他开始走自己的路,更专注于作曲和制作,而不是成为一个典型的摇滚明星表演者。
我的职业发生了转变,开始专注于设计、架构、后端服务等领域。我远离了用户界面的聚光灯,开始享受相对自由的后台服务器工作。它不像面向用户的活动那样引人注目,但它也有不像面向用户的活动那样引人注目的好处。
在 WebAssembly 存在的大部分时间里,它一直被定位为一种客户端技术。,它主要被视为扩展和拓展浏览器功能的一种方式,一种不再局限于只能通过 JavaScript 扩展的通用客户端。WebAssembly 的作用远比前端宠儿要大得多。作为浏览器之外的一项技术,WebAssembly 也将发挥极其重要的作用。事实上,Node.js 几乎一直都支持WebAssembly模块,WebAssembly的定位也正是如此。
在服务器上,性能至关重要,而且您通常可以自由选择实施技术,因此这在服务器上的意义可能并不明显。然而,在硬件的异构性和演进、开发人员的生产力、商业价值、安全性以及架构作为设计选择以最大限度地降低基础设施和网络成本的能力等因素的交汇点上,蕴藏着一个光彩夺目的机会,WebAssembly 正在迅速扩展,以填补这个机会。在本书剩余的篇幅中,我们将详细介绍这个故事,但现在我们只关注在浏览器外运行 WebAssembly 的基础知识。
Node.js 的本地扩展
Node.js 的出现,除了其他的原因外,还因为开发人员在浏览器客户端使用一种语言和一套框架,而在服务器端使用另一套语言和框架。此前,为了获得随处可重用的代码(通过 Java 本身和谷歌网络工具包 [GWT]),开发人员尝试了从服务器到客户端的另一个方向。这是朝另一个方向迈进。软件开发领域的大部分兴奋点都发生在浏览器以及从 Ajax 到 jQuery 到 Angular 等技术和框架的爆炸式增长中。要编写在浏览器中运行的代码,然后再用不同的语言重写代码以便在服务器上运行,这是一件令人抓狂的事情。
Node.js 迅速普及,成为软件开发人员的宠儿,因为他们现在有了更大的影响力和更强的可重用性。作为一个基于 JavaScript ...