The Future of IsoMorphic WebGPU WebAssembly Apps with Rust
If you don’t know what WebGPU is, it’s a new graphics library standard that aims to parallel performance advances of Vulkan ( an graphics api that aims to supplant OpenGL). It runs on the web and desktop.
A Taste of WebGPU in Firefox - Mozilla Hacks - the Web developer blog
WebGPU is an emerging API that provides access to the graphics and computing capabilities of hardware on the web. It's…
We stand at the precipice of a new age with WebGPU, Chrome 93 is getting an origin trial, Rust is writing the foundations of a WebGPU library being used in many places, and UI libraries are just starting to build themselves off of what will be the future graphics platform of the web and beyond.
While all this sounds new and fancy, the reality of building apps today is remarkably different from the OpenGL apps of the last decades.
- SEO matters
- Deep-linking matters
- Social media friendliness matters.
- Responsive to user screen sizes matter
These concerns do not go away because of the introduction of a new graphics library. The future of how we build web apps must be balanced with the legacy of how apps fit into the larger ecosystem that exists in our society.
React became an industry standard largely in its ability to satisfy all these concerns while giving people speedy interfaces. Particularly it gave developers the ability to write a frontend and backend in similar technologies and save time and money for their companies by hiring specialist full stack developers.
To do the same, the WebGPU ecosystem will have to develop similar but unique foundations. The first is the creation of isomorphic foundations that make up the core of an app.
- Isomorphic fetch libraries that run in browsers as well as server environments equally well
- Isomorphic content loaders that can render out to HTML for SEO on servers and provide content for running WebGPU applications in frontend.
- Isomorphic routing libraries that are able to determine page context in a server equally well as in the browser
On these foundations WebGPU applications will have to gather context and content which determines what they should show in the most responsive manner for a users interface.
Why are we even going this far?
We live in a convenient era for 2D interfaces. Increasingly as time goes to infinity, 3D interfaces will start to become a part of our lives through virtual reality or mixed reality. Our content will also increasingly become non-flat. Imagine the future of watching youtube or twitch where your streamer is a 3D point cloud, and your video game is streaming a map of the real game which you can peer through. Our concept of what is a responsive app will increasingly grow.
Machine learning will dominate flat web design leaving human developers specialized in creating bespoke interfaces machines can’t generate
The writing is quite plainly on the wall that structured problems will increasingly fall into the realm of machine learning. We live in an era where where machines now generate color palettes, text content is created with GPT-3, and write code based off github repos. How long will it be before WIX creates an AI that’s “good enough” to not hire a flat web programmer.
Programmers must stay on the creative edge to maintain economic viability and that edge is in interfaces that use human imagination in math to create what’s a beautiful experience of the senses.
I won’t even get into a rant on neural interfaces yet. I’ll save that for when someone develops WebGPU powered machine learning inference to detect your generalized emotion state in your browser.
What’s this have to do with Rust?
There’s not many languages that can plainly say that they compile to WebAssembly. Much fewer of those languages have viable web frameworks server side. Much fewer of those have language ergonomics that most would consider modern.
Rust is the isomorphic, high performance, and high creativity programming language of the future
There’s just nothing that even comes close.
I’m excited, this article has no code, no libraries I can point to. I’m just a web tech vanguard telling you my best guess about the future. In the meantime I highly encourage you to learn Rust and study WebGPU. If I have to put my bet down, it’s where I think i’ll be in 10 years.