原文

翻译

WebAssembly不是玩笑。我花了两年时间在我的 Github 存储库上得到一颗星星。这是一个 npm 包, 上个月的下载量超过 900 次。我使用 WebAssembly 创建了一个存储库作为 npm 包的占位符, 它有 4 颗星…14 小时后!如果你像我一样,你可能对这项新技术很感兴趣,但不知道从哪里开始。
与其写一篇关于 WebAssembly 能做什么或它有多整洁的帖子(这是),我会尝试提供一个你可以遵循的启动和运行操作方案。
在我进入肉和土豆之前, 我也许应该提供一点我的背景。我是一名JavaScript开发人员,他写了很多VBA代码,所以底层技术对我来说就像对你们一样新。我们开始吧!

第 1 步:了解技术

在开始编写任何代码之前,先熟悉一些更高级别的概念可能是个好主意。有一个伟大的系列的文章,林克拉克从Mozilla写了名为卡通介绍网络组装。老实说, 如果这就是你读到的, 你会状态很好。
如果你想深入一点,你会发现解释性博客文章和文章的日期都全在地图上。这是一个问题,因为该标准在年中不断发展,其中一些信息可能已过时。我强烈建议我到官方网站,WebAssembly.org,四处逛逛。入门部分是有帮助的,规格是可供下载,虽然它的157页,可以压倒一切。
如果你厌倦了阅读它,想进入黄铜钉,你需要安装工具链。我们去拿饼干吧!

第 2 步:安装工具链

在我进入安装步骤之前,我想指出一个替代方案:如果你只是想玩WebAssembly,而不承诺在您的计算机上安装一堆的东西,你实际上可以得到相当远与瓦斯姆菲德尔。主要警告是,每次更改代码时,您必须下载新文件并把它丢在目录中。.wasm
如果你想全部进去, 太棒了!要开始创建 Web 组装模块,您需要安装一些内容。此页面提供了有关您需要的更多详细信息,但以下是快速细分:

对于Emscripten SDK,我使用的是 Mac,因此我下载了用于 Linux 和 OS X 的 Emscripten SDK。我提取它到路径(我放弃了 。这是一个非常简单的设置,只需按照安装部分的指示~/Tooling/emsdk``-portable
I don’t want to get into the details of what Emscripten is or how it’s related to WebAssembly. I’ll just say it’s a LLVM-to-JavaScript compiler that can also generate WebAssembly modules.
Note: I added the environment variables generated when running the command to my in my (if you use bash, you would add them to your ) so I could run the compile commands without the ( instead of ). The gist below shows what gets exported.source ./emsdk_env.sh``PATH``exports.zsh``.bash_profile``./``emcc``./emcc
Exports for Emscripten

第3步:下载开发工具

There’s a whole bunch of options available for development tooling. You need an editor or IDE that supports C or C++. There’s a good chance that the editor you‘re already using will work. I personally use CLion because I’m a JetBrains guy, but you can use Visual Studio Code, Visual Studio (Windows), Xcode (Mac), and many others.
注意:如果您决定使用 CLion,则需要创建一个包含项目根文件夹路径中一些相当基本信息的文件。下面要点表示简单的 CMake 配置。CMakeLists.txt
CMake 文件用于 CLion 用户

第 4 步:学习 C 或C++

这可能是最耗时的部分。您需要学习 C、C++或 Rust。如果你有一个复数会员,有一个伟大的学习途径C++,但你正在寻找一个47小时的承诺。复数也有几个 C 课程 (我没有看过他们, 但我敢肯定, 他们是坚实的) 。网上有丰富的免费资源可以学习,考虑到他们的成熟程度。这里有一些我发现,这是一个很好的开始:

学习 C 和学习C++非常漂亮,因为它们有交互式教程,因此您可以在浏览器中运行代码。如果你决定走一C++,凯特格雷戈里在教授语言方面做得很好。她是上述学习路径中几个复数C++课程的作者。锈是另一个伟大的选择,与WebAssembly工作得很好。这是一种相对较新的语言,所以在线提供的培训材料没有C或C++。有一个锈基础课程的复数和Udemy提供了一个非常合理的价格锈培训课程。我还发现这个列表hackr.io从各种来源获得的培训材料。

第 5 步:学习 Web 组装

对我来说,这可能是最棘手的部分之一。有很多博客文章和教程在那里让你启动和运行,但他们不会太深入的基础技术(或他们得到的方式太深)。我强烈推荐盖伊· 贝德福德在 11月 1 日开始使用egghead.io。如果你对 WebAssembly 是认真的, 你为蛋头会员资格支付 40 美元是值得的。
一站式的一站式大资源是真棒浪费回购在GitHub。有一个令人难以置信的全面的文章列表,工具,演练等。
如果您是熟悉 Node.js 的 JavaScript 开发人员,我在 GitHub 上提出了一个简单的样板项目,演示了如何将文件与 JavaScript 集成。如果要测试它,则需要安装 Node.js 8。.wasm

总结

开始使用 WebAssembly 并非易事。我已经研究和玩了将近两个月了, 我觉得我几乎没有划伤表面。预测未来是不可能的(尤其是网络的未来),但我相信学习WebAssembly将是一个有利的时间投资。
您也可以这样看:即使WebAssembly报废了,你仍然可以得到一份作为程序员C++的工作😀。