Web Assembly

6 minute read

WASM

This is what has been infesting my dreams lately (probably a lie).

I hinted at getting started with some new tools on my generic stream updates which included assembly for my new reverse engineering fun-project.

And this.., this was love at first site (suits better than sight).

Let me elaborate…(Pre-Script : My story telling skills are too good (to be comprehensible ?))

Story time

There’s this normal wannabe code junkie moving about his day and walking around having numerous “ideorgasms”.

(He’s developing his own dialect : and this is an idea-induced-orgasm. He probably will create a map soon enough; also generate his own grammar while he’s at it; Linguistics is an old friend)

Proceeding: He starts with this full stack deep learning project and extrapolates his imagination. All the deployment options and issues make him look around a bit and get a feel of the lands - they are vast.

He then finds out these lands are divided : development, machine learning, crowd sourcing data, presenting all this in a presentable format ; connected with bridges (or pipelines).

He soon realizes that analogizing restricted to the earth is not enough. So let’s say the earth is his workstation and there exist other workstations- say planets and these big giants : stars making up the galaxy and hence the universe (his universe to be precise : DO NOT FACT-CHECK, EVER).
So, habitants of a planet can see others via photons - packets of data ( or imagine rivers of bit streams if you’re a wavey, gooey person ). So the Internet would be the simultaneous passing around and meaningful reception of these photons. A star would probably be a data-center. What he realizes is inter-galactic communication is the key to leveraging all that is possible without reinventing nuclear fusion (the wheel ?).

He then moves on to understanding the presently established communication channel : electromagnetic waves (accept it or not : Javascript).
Well, He’s pretty impressed with all these frequencies (dialects of Javascript) doing their own job : ranging from Elm looking out for the evolved Saturns and vanilla javascript looking out for the slightly primitive and unstructured Mercury :- it does the job) and informational entropy (I’m definitely using it in the wrong sense) does its thing and VOILA : He discovers Gravitational Waves : This literally breaks barriers : that of time and space, bending it at will and mocking upon euclidean Laws (again, DO NOT FACT-CHECK, if you can that is) - (rapid, minimalistic byte code compilation target : WebAssembly, if you’re following)

What he enjoys even more is that these gravitational waves intermingle intricately with relativistic quantum mechanics ( the beloved C++ : not a language : cause it can do(reason about) anything) and its type-safe non-relativistic consort: Rust.

This just made life a little bit more interesting.

Learnings

  • got to know the textual representation of wasm (WebAssembly) can be interpreted in multiple ways :- Abstract Syntax Trees, as a stack machine (different from the call stack) and source maps coming soon: consequences follow
  • If you still don’t get why I’m this euphoric, I can write C++ on the web - which is portable (wasm interpreted by most browsers now) and build progressive web apps (soon) with my current C++ development environment; was going to grasp dart(and hence flutter) otherwise.
  • I’ll still have to do that I believe cause Javascript is still good to know about and yeah, it’s still and probably will be ubiquitous.

Consequences

  • I found a pretty good target for my reverse engineering exploration (check project inception section); if not wasm, it would’ve been x86 or ARM or other simplified stuff(MIPS); but now, we got wasm - we’ll wasm.
  • check out the Web Assembly Explorer if you’d like to get on the wagon.
  • I realize, I’m a bad narrator and probably need to tone down the inaccurate analogies
  • Nah, screw that. I do what I want.

Leave a comment