All this ChatGPT talk got me nostalgic 😍 and made me think about the last technology which changed the world.
Although this revolution was quiet, without people knowing or posting inspirational posts about it, it’s certainly and by far Web Assembly (WASM). It made our entire computer experience significantly better.
When was the last occasion you took your time to search, download and install an app on your computer? In the past we had so many of them!
We had no other choice, web apps were fun but not nearly as powerful as desktop ones.
Also, developing a capable desktop app was way harder.
Today we need much less desktop apps because web apps are very immediate and robust:
- A UI/UX artist needs to sketch with Adobe XD? No need probably, they can go to Figma.
- Anytime we want to explore our globe, we use Google Earth.
- There’s a video, let’s download it. Oh, we don’t need to, because we have VLC Web (The road cone app).
- If an architect needs to draw? No problem, they just enter the big AutoCAD.
- Assuming developers need to quickly edit and present code? StackBlitz is their way to go.
- Whenever content creators want to edit videos? They use CapCut.
- Engineers use SketchUp.
- Training machine learning models is done with TensorFlow.
- Convert files to other formats? Easily done online in ~20 seconds.
And so so many more, all are possible thanks to WASM, and affect so many of us in a wide variety of professions.
What is WASM?
Web Assembly, released in March 2017, is basically the ability to run Assembly “on” the browser. It allows web apps to perform very (and I mean VERY) fast computations, which common higher level web languages such as JS perform much slower.
The fact we can run the lowest level code on the web, fundamentally means that browsers can do anything – the sky is the limit. Theoretically a browser can even directly run whole operating systems, servers, and everything which comes to mind.
Ok… that’s fun and games but smart people may say: “But normal Assembly can already be run on the computer, why is running it on the browser special?” And they would be 100% correct,
BUT:
We can indeed run native, or machine code directly “on” our computer, although it’s usually harder to write and might introduce compatibility challenges when run on different operating systems.
Getting deeper, writing W/ASM usually means writing code in another language which compiles to W/ASM.
If our desktop app needs to truly benefit the computing speed potential of Assembly, its source code also needs to be written in a relatively low level language – such as C or Rust. This process is harder and takes longer. Also, it’s logically unnecessary, since most of the times modern apps execute heavy computations only in a small number of features. Writing and maintaining the whole app in a low level language just for the sake of 2 or 3 features is a big overkill…
Here comes WASM:
First of all, it’s run directly on the browser so bye bye download and installation.
Secondly and most importantly, the big boom is the MIXTURE of both web and assembly code.
We can write web apps in a high level web language and make a library which uses WASM only for a specific heavy computation feature.
This is what the web app examples above use to make the needed heavy computations, while the user is in a web, light, fun UI, which was also relatively easy to develop.
The ease, the 1-code-fits-all-machines of the web, together with the computing power of Assembly, is what makes WASM enter the hall of fame of technologies.
And as a small extra, here’s something that blows my mind:
Building web apps with WASM is so easy that desktop app developers often make their apps web based (e.g. using Electron) and use WASM.
This means desktop apps are preferred to be run with Web Assembly over normal Assembly!
What a time to be alive.
WASM is so good that absurdly, today, in our world, native desktop apps are the minority, and are mostly apps which widely require high computing efficiency in all their features such as games. I believe we’re going to see further extraordinary things done with WASM in the future.
ChatGPT has blurred the line between human and machine, while WASM blurred it between machine and the internet.
Super interesting!