THREAD 👇
The #WebAssembly Summit livestream is starting now, and I'll be covering it remotely.
It's the 4th language of the Web, & the biggest architectural shift since JavaScript.
Schedule: webassembly-summit.org/schedule/
Stream:
Starting now: #WebAssembly evangelist & code cartoonist @linclark talk on "WebAssembly: Building a new kind of ecosystem"
Another Web Assembly Summit organizer is @torch2424.
@linclark talking about security with #webassembly.
Recapping many points she made in this talk:
Malicious code via modular code on NPM dependencies has been one of the biggest attack vectors.
#wasmsummit is the official hashtag for this event to follow along. @linclark of Mozilla & @codecartoons does a great job of visually telling the story of #webassembly.
Here's another great talk that gives an introductory overview.
More context in thread👇
The security architecture of #webassembly aims to fix some of the biggest threat vectors of the existing web.
It takes a container/VM type of approach with: 1. Sandboxing 2. Memory model 3. Interface types 4. WebAssembly System Interface 5. WebAssembly nanoprocesses #wasmsummit
On Nov 11, 2019, the Bytecode Alliance (@bytecodeallies) was announced which is a "new industry partnership coming together to forge WebAssembly’s outside-the-browser future by collaborating on implementing standards and proposing new ones." hacks.mozilla.org/2019/11/announ…
.@linclark ends her #wasmsummit opening keynote with a quote from #webassembly co-creator @luke_wagner on how this tech represents new greenfield opportunities to create secure-by-default foundations for native development that are portable & scalable, but needs collaboration.
Emscripten creator @kripken giving a low-level #wasmsummit talk on "Shipping Tiny WebAssembly Builds" on best practices in "generating small WebAssembly builds when using popular toolchains like LLVM, Emscripten, Rust, Go, & AssemblyScript."
wasm-shrink: webassembly.github.io/binaryen/shrin…
Here's the slides for @kripken's #wasmsummit talk on "Shipping Tiny WebAssembly Builds," which goes into way a lot of wonky optimization details. #webassembly offers smaller code size, which means faster downloads, faster startup, & less mobile data usage. docs.google.com/presentation/d…
Co-organizer @ag_dubs starting a talk on "Why the #wasmsummit Website isn't written in Wasm, and what that means for the future of Wasm."
Or why #webassembly is not designed to kill JavaScript, but if were, then this is what would need to happen.
This @ag_dubs talk is unpacking how tell the story of what #webassembly is, what problems it solves & why it's important.
She did a series of marketing resarch Twitter surveys to discover the conceptual models of what WASM wants: fast, sandboxed, universal target, multi-language
There's a paradigm shift happening in the software architecture of the web, & @ag_dubs is bringing out her philosophical background to reflect on different tradeoffs & affordances of the variety of programming languages & the conceptual models & paradigms they've fostered.
.@ag_dubs going over an abbreviated history of programming languages in the context of the evolution of the web, the browser wars, & increasing speed of computation. Innovation comes in waves (especially 1995), but there seems to be a recent upturn of new approaches. #wasmsummit
.@ag_dubs says the developer experience & tooling for #WebAssembly is still in the very early days & it's still too painful for most developers to get into yet. Lots of UX yet to be done. Cites usability evolution of C++ & more tooling needed to grow dev ecosystem. #wasmsummit
.@ag_dubs ends #wasmsummit talk with a Super Mario metaphor of the difference between Fire Flowers (representing tech for tech's sake) versus Fire Mario (focus on empowering users via tech to solve new problems). #WebAssembly community needs to focus on empowerment of new folks.
In between #wasmsummit sessions, attendees are voting on a number of different #webassembly working group proposals for how to expand the spec & features of the language.
So far Single instruction, multiple data (SIMD) & Interface Types have won. github.com/WebAssembly/pr…
The next #wasmsummit talk was by Apple's @tadeuzagallo, which covers JavaScriptCore's new #WebAssembly interpreter.
JavaScriptCore "provides the ability to evaluate JavaScript programs from within Swift, Objective-C, and C-based apps" meaning WASM can be executed in iOS apps(!)
@tadeuzagallo Rewatching @ag_dubs talk, she referenced the "Bringing the Web up to Speed with WebAssembly" white paper presented at the ACM @sigplan Conference on Programming Language Design & Implementation (#PLDI2017) in Barcelona on Mon 19 Jun 2017 14:00.
Video: pldi17.sigplan.org/details/pldi-2…
It's pretty amazing how fast this collaboration between Google, Apple, Mozilla, & Microsoft went from idea to implemention to official W3C spec.
Video:
Next up at #wasmsummit is @salomonsen_p talking about creating a sequencer & synthesizer in #WebAssembly. Pretty cool!
He spent the 1st part of his talk doing live performance & live coding of synthesized music.
Here's a link to a sample song & interface: petersalomonsen.com/webassemblymus…
The #WebAssembly synthesizer by @salomonsen_p uses @AssemblyScript to dynamically compile new wasm in response to either live coding or MIDI input for rapid, iterative development in the browser. He can also program the synthesized instruments in the fly as well. 🤯 #wasmsummit
Here's @salomonsen_p's sources on GitHub, which contains the #WebAssembly music experiment + the previous JavaScript music projects for MIDI synths & 4klang.
After this talk, I wonder if wasm could be a new cross-platform audio format.
Also FMOD & MIDI 2? github.com/petersalomonse…
Next #wasmsummit talk is @beriberikix talking about #WebAssembly & Internet of Things (#IoT) & embedded systems, which are constrained by power, processing power, memory, storage, bandwidth, low cost, power efficient. Also has a specific development tool ecosystem.
#WebAssembly was designed to work in non-web embeddings, especially in #IoT apps: webassembly.org/docs/non-web/
Embedded apps often use C++.
Atwood's Law & JavaScript's high-level of abstraction has increased demand for JS, but @beriberikix decided to go with wasm as intermediary.
.@beriberikix showed a demo of WAMR + Unikraft, which is a "comprehensive toolchain & library OS which construct unikernels which are highly specialized software bundles that consist of a target application along with just the OS & libraries features it needs to run." #wasmsummit
There's now a second embedded runtime for #WebAssembly called @wasm3_engine focused on speed. @beriberikix showed an ESP32 (WiFi Arduino) + wasm3 demo on Rust, TinyGo, & AssemblyScript.
So wasm3 is a multi-language platform that runs on embedded devices. github.com/wasm3/wasm3
.@beriberikix says most IoT protocols have C implementions, but need WASM ports.
MQTT (MQ Telemetry Transport)
OPC (Open Platform Communications)
CAN Bus (Controller Area Network)
CoAP (Constrained Application Protocol)
Weave
Lightweight M2M
BACnet (Building Automation & Control)
Most developer tools for embedded systems are not written in #WebAssembly yet & so devs have to wrap the existing non-wasm tools for updating firmware, debugging, & testing.
Lots of developer experience work to be done in fleshing out the wasm-native, feature parity tool pipeline
Here's the @wasm3_engine demo developed by @alvaroviebrantz & shown during @beriberikix's #wasmsummit talk on IoT. #WebAssembly is being touted as a "universal language" that developers have been waiting for.
This modular interoperability is revolutionary.
Wrapping my mind around the implications of #webassembly code running in the browser, server/cloud, and/or embedded IoT devices. @KevinHoffman demoing containerless, cloud-native services in wasm being live-swapped with zero downtime without having to provision new resources(!)🤯
"WebAssembly Secure Capabilities Connector is a #WebAssembly host runtime that dynamically & securely binds WebAssembly modules to capability providers." @KevinHoffman points to this site for more info for running WASM on servers: wascc.dev
.@brionv's #wasmsummit talk is on how Wikipedia turned to #WebAssembly as a <video> polyfill because video codec patents are a pain for folks committed to fully open source stacks. ogv.js implements Ogg Vorbis/Opus/Theora audio & WebM VP8/VP9/AV1 video. github.com/brion/ogv.js/
#WebAssembly allows Wikipedia to embed video using patent-free codecs across a wide range of older browsers. 2nd half of @brionv's #wasmsummit talk on optimization journey: 1) JavaScript to wasm 2) Threading across multiple CPU cores 3) Single Instruction, Multiple Data (SIMD)
.@binjimint's closing #wasmsummit keynote of goes through the early history & evolution of #WebAssembly.
Started as sexpr-wasm on Aug 31, 2015 as a two-week bet. Eventually renamed to wabt in Sep 2016, & Ben has been working on it for 4.5 years now.
The high-level goals for #WebAssembly were developed in April 2015. @binjimint continuing to tell the evolution & history of wasm as the closing talk of #wasmsummit.
By March 2017, #WebAssembly reached browser concensus had four browsers that had a MVP in 2 years, which was unheard of.
November 2017 proposals had lots of Ability, & ideas of Producers, Interior, & Embedded needed collaboration (except for garbage collection & host bindings).
.@binjimint walking through the open problems of #WebAssembly garbage collection, which has to live in linear memory that's needs to be separated from local variables.
Also Host Bindings where JavaScript is the slow interface with WASM. #wasmsummit
More #WebAssembly history in @binjimint's #wasmsummit talk.
By June 2018, more progress on garbage collection, reference types, & started to see Wasm C API to make the API useful beyond the web & make VMs swappable.
Continued #WebAssembly history by @binjimint's #wasmsummit talk. By August 2019, typed function references, type imports, interface types, & WASI (WebAssembly Interface Types).
WASI is all about interoperating with the outside world in a sandboxed way.
The WASI APIs will evolve over time, & @binjimint points out that WASI's high-level goals mirrors the original #WebAssembly goals. #wasmsummit
Now up to today's proposals, February 2020
Reference Types at phase 3, close to open standard.
Garbage collection: Single Open Intermediate Language initiative are academics collaborating with #WebAssembly.
The Wasm C API is implemented in V8, Wabt, & Wasmtime.
WASI has own org
The #WebAssembly Interface Types proposal "describes high-level values (like strings, sequences, records and variants) without committing to a single memory representation or sharing scheme."
This proposal won the popular vote at #wasmsummit
Explainer: github.com/WebAssembly/in…
Here's what @binjimint sees as the future abilities, languages, interop features, & distribution contexts for #WebAssembly.
Group photo of #wasmsummit speakers at historic gathering
#WebAssembly represents one of the biggest architectural shifts in creating cross-platform, interoperable services that span browsers, containerless, centralized cloud, & decentralized, serverless, edge compute devices.
I wasn't able to attend the summit, but I really wanted to cover it remotely live to better understand some of the deep paradigm shifts #WebAssembly represents.
It's pretty profound.
If you find this coverage valuable, please consider supporting it here: patreon.com/voicesofvr
• • •
Missing some Tweet in this thread? You can try to
force a refresh
2/ Zuckerberg saying we're going to be taking another big step forward with VR after walking through a history of VR tech since the Oculus acquisition.
3/ @boztank talking about some ecosystem stats for VR apps.
Philosophically they want to make ecosystem more open & how some apps have onboarded via the App Lab. Will push towards openness.
Pico was acquired by Bytedance (aka @tiktok_us) & they’re taking on Meta as the best standalone VR competitor to the Quest (but only in Europe & Asia to start).
Thread 🧵👇 to digest the livestream & news
2/ My sources of @PICOXR news are the official livestream👆
@CasandChary have the most comprehensive & digest & hands on:
3/ Here's 1st of 4 trailers @PICOXR showed during their Pico 4 announcement livestream.
Pico 4 has color, mixed reality passthrough while Meta is expected to launch similar features with Meta Quest Pro but at a higher price point.
Pico 4 Pro details to be announced at AWE Lisbon
1/ I recorded an epic recap & reviews of the 30 immersive stories in competition at #VeniceImmersive with @vrgeschichten.
We chat about each experience for ~5 min, & so it's a comprehensive break down of this year's selection. voicesofvr.com/1121-venice-im…
20+ interviews coming soon
2/ I'm about to release other 20 podcasts from #VeniceImmersive, and here's a sneak peak of the 26 episodes, which total just over 24 hours worth of coverage.
I'll be onsite at #VeniceImmersive covering the fest & this is will be my THREAD🧵👇
2/ There will be 10 hours of different #VRChat world hops during #VeniceImmersive spanning 30 different worlds.
The guided tours are only available on site, but the worlds are public.
I link to all of the @VRChat worlds by genre at the bottom of this post: voicesofvr.com/1119-venice-im…
3/ The video below has trailers for the 30+ different #VRChat worlds featured in the #VeniceImmersive World Gallery Selection.
3/ The new language around Mutuals as Friends and “follow requests” is confusing.
A “follow request” should really be named “mutual follow request” as accepting a “follow request” is the same as accepting a friend request.
“Should I let this person follow me?”= friending them.