Chapter 2. “Hello, World!” (Sort of)

How does it, um—how does it work?

King Arthur, Monty Python and the Holy Grail

Part of the difficulty in teaching people about WebAssembly is that there are many places to start. If they are a C/C++ developer, that might be a reasonable place to begin framing the discussion. If they are a Rust developer, that would be. But you can also talk about the mechanics of WebAssembly independent of the languages you use to generate it. In this chapter, I am going take that approach. We are going to learn low-level details incrementally over the next few chapters before we start to build up to the connection to higher-level languages. These details will seem simplistic and confounding initially, but we are looking at the basic mechanisms, which is ultimately not where you will be working. Let’s begin by considering why we cannot start where most programming books do.

In Chapter 1, I introduced the first program most people write in a new programming language or technology when I discussed asm.js. We show it again in Example 2-1. We call this program a “Hello, World!” example in a nod to the first program used in Brian Kernighan and Dennis Ritchie’s seminal book, The C Programming Language (Pearson). Many quality programming books1 begin with that example because it gives the reader a taste of what is going on without delving too far down into the details. It is fun, empowering, and a good way to make sure the reader has their tools set up correctly. ...

Get WebAssembly: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.