WebAssembly is essential to the blockchain technology project DFINITY that I am involved in. In today’s episode, I talk about the basics of WebAssembly and why it’s important.
Alright, we just finished our morning workout. We went for a run and some calisthenics. We’re having showers and after that, we’re headed for breakfast. Probably start our first work session at the breakfast.
What I like to do at these retreats when we get together is first to get an idea of everyone’s expectations and lay out what we’re going to approach within the next few days so that we’re all on the same page and we all have a good idea of what we want to achieve.
By the way, my shoulder is already almost back to normal. Pretty amazing how quickly the human body heals.
Exciting new project with unexciting Wi-Fi
It’s about 1:00 p.m. and we’ve been working on our schedule for the next few days. Working on a very exciting new project, putting all the pieces together of what we want to achieve in the next few days and which goals we want to reach.
Today is a holiday here in Turkey. Just quickly going to venture out for lunch. Also, see if we can find better Wi-Fi because the place that we’re staying at has okay-ish Wi-Fi but it’s probably not going to be good enough for longer calls.
So we found a cafe that had pretty good Wi-Fi but not really private rooms so we’re going to look for a co-working space tomorrow. Probably just roam from or tethered from a phone today.
What is WebAssembly?
So when you hear of DFINITY, one of the keywords that you’re often going to hear about is WebAssembly or short WASM.
WebAssembly is a standard that’s been developed by the major browser manufacturers such as Microsoft with Microsoft Edge, Google with Google Chrome, Apple with Safari, and Mozilla with Firefox.
They invented WASM over the last few years. And what WASM is – it’s basically a binary or it’s a bytecode that can be executed in browsers.
These languages are great and very high level, it’s very easy to get started but they also have a few downsides. One of them being that it’s very inefficient to compile code at runtime every single time you execute it. One thing that you’ve might have noticed when using your browser – there are a lot of applications that seemingly are “pretty simple” if you compare them with your desktop applications but still consume a lot of resources in your browser.
So people have been looking for ways to make it more efficient to run web applications, especially more complicated and resource-heavy applications. And WebAssembly is one way that they’re trying to use to solve that problem.
By sending bytecode to the browser’s virtual machine, the browser has to do a lot less computation in order to execute it and it’s a lot more efficient to execute those instructions.
Compiling code to get WebAssembly
Also, another benefit of WebAssembly is that there can be compilers from a variety of languages that then compile the logic into WebAssembly. You could be writing your code in C or Haskell or Rust or Go and then use that code, compile it and get WebAssembly on the other end.
And last but not least, here’s the same logic – an application that does nothing but print the two words “Hello Sendtask” in WebAssembly. And you’ll see that instead of using three or four lines of code, it uses roughly ten times as many lines of code.
Dinner at “The Butcher”
7:30 p.m. – leaving the house for dinner. Where are we headed, Bojan?
To Kasabim – steakhouse. For everyone who knows Turkish, that means butcher.
This guy parked in the middle of the road in a way that I guess cars could still go by but I’m still unsure if it was intentional or if it was an accident.
Kasabim – the steakhouse that we’re going to and apparently it’s been here since the 1950s.
Headed back to the apartment to talk a bit more about blockchain and DFINITY. And then it’s probably time for some sleep soon as well.
So with that, let’s have a good night and I’ll talk to you tomorrow!
You can listen to the audio version here: