Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Aaron Price
Aaron Price
5,974 Points

WASM (aka Web assembly)

Lately I've been thinking about Web Assembly, or WASM a lot and got to wondering what folks on here think about it. Obviously it's very early right now and they only just released the MVP. But I think it's a neat idea.

Let's have a discussion! Some questions in my mind...

In the future it could open the doors for new languages being built with the sole intent of being compiled down into WASM, and being rendered client side by the browser. What do you think those languages might be like? Strong functional ones like haskell and elm? High level, human friendly ones like ruby?

Will it be mainly used for performance intensive stuff like graphics, or do you think the web will eventually shift toward using it for general purpose development like any other language?

Do you think this could end Javascript's monopoly as 'the client side language'? Or will it stay on top because so much of the web is already using it?

Will it make the job of a web dev easier by allowing them to use whatever language they already know, and writing it everywhere (sort of what node.js did for js)? Or will it make things harder because there will be a wider range of technology for us to need to learn?

Anything else?

2 Answers

Nicholas Gaerlan
Nicholas Gaerlan
9,501 Points

if anything, the cycle has been JavaScript changing into whatever is needed. From a presentation I watched, WASM sits right next to the Assembly code level, but right now it has to divert to JavaScript to reach the DOM. Very inefficient. I don't know much about it, but is it somehow linked to a functional paradigm instead of an OOP? I do think that all OOP languages are expanding to include more functional behavior as that seems to be the demand. I'm a beginner but I am trying to decide between Go, Clojure, and Haskell, because even if I don't use it, I hear it's awesome to know it and looks great on a resume to have some kind of Lisp. It's a shame for me that Scala and Closure are built on the JVM. I personally don't like Java at all. Go and Rust have concurrency built in, but neither is considered a functional language (Google vs Mozilla... Google wins). Anyways, back to the WASM. It would be awesome to have some other modern language tied to it and made into a client side feature of browsers. The one thing I don't like about JavaScript is that I have to learn syntax from 5 years ago, only to learn that the language has changed and that the more I learn, the more I won't use what I learn now because I'll just end up using whatever new/trendy library is in demand. Same thing in varying degrees for other languages, but I'd still like some other modern language for WASM.

Nicholas Gaerlan
Nicholas Gaerlan
9,501 Points

After watching some Lin Clark vids on it... Seems like Rust and WASM would get along well. I've been learning React though and React Native is very interesting because one code base then transforms into a web app, or an iPhone app (Swift or Ob C) or an Android app (Java), so in theory you could also write in React Native and transform it into WASM... although, it's all useless until WASM can directly reach the DOM and handle it's own Garbage Collection. The more I think about it though, the more I'd rather WASM turn into a standard that replaces the DOM/HTML/CSS altogether. It's as if all of the advancements that happen are to abstract out all the shortcomings of HTML instead of finding a new and better alternative. I probably still don't know enough about it.