How #WebAssembly could impact the future of programming languages.

A thread 👇
First some context : WebAssembly Component Model (WIT) is maturing in order to standardize reusable components.
When ready, WIT components will be published in a repository (like @npmjs or Maven Central but for Wasm) in a polyglot fashion targeting any language that supports Wasm.
Wasi (the Posix of WebAssembly that allows to use it outside of the browser) is currently rebased on top of WIT (tentatively called Wasi Preview 2).
With Wasi, Wasm could become a major way to deploy workloads on Edge and Cloud platforms.
I think it is important to differentiate 2 use cases: languages used to write Wasm components and languages used to consume them.
Could be the same language for both, but I think we will see some languages more used for a use case and less for the other.
I think WebAssembly components will typically be implemented with languages like @rustlang or @ziglang for new code.
Or with C/C++ for the huge ecosystem already developed with those languages.
The glue code (the application) where various components are assembled with the business logic will IMO be typically developed with statically-typed garbage-collected languages.
WebAssembly Garbage Collector support is making good progresses in order to make Wasm a great target platform for those languages.
It is still unclear which language(s) will lead that space.
About @Java, I tend to think it is unlikely to see @Oracle investing massively in Wasm because ultimately, it is a JVM killer.
Maybe @GraalVM team will work on native image generating Wasm files instead of native executables.
The more serious champion for Java to Wasm these days is @Google with github.com/google/j2cl. Currently frontend oriented, Wasi is not yet a target.
@dotnet and C# are good candidates with pioneers like @stevensanderson who worked early on Blazor and their recent work on Wasi, but there are limitations (no GC proposal support).
After pivoting to the mobile with @FlutterDev, curious to see @dart_lang upcoming Wasm support medium.com/dartlang/exper….
@SwiftLang could be in theory a great candidate, and @swiftwasm community is doing an amazing work, but IMO @Apple won't invest too much there.
@KotlinLang with their early but promising Kotlin/Wasm effort is probably my favorite one. Lack of short term plan for Wasi support and JVM-focused tooling are current main limitations IMO.
Wasm is likely to play a big role in #Python future with @pyodide and @pyscript_dev for data science but footprint and dynamic typing may prevent dominating the application space.
@TypeScript has been designed as a superset of JavaScript, so not sure WebAssembly will become a major target.
@AssemblyScript is a TypeScript-like language compiling to Wasm but it is unclear if it will evolve to become a general purpose language.
Notice there are other languages specifically designed for Wasm like @grain_lang, Virgil (github.com/titzer/virgil) from @TitzerBL and likely many other ones to come.
@golang compiler generates huge Wasm files, @TinyGolang optimized ones but it supports only a subset of the use cases and is not "the official one" so not sure how that will evolve.
Middle term, I expect efficiency of compilation to Wasm, WIT and Wasi interoperability to become key differentiators impacting programming languages adoption massively. Thanks for following this long thread!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Sébastien Deleuze

Sébastien Deleuze Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(