Is the problem rooted not just in web technologies but in the fact that we live in a different era and creators don’t really express themselves in this way anymore?
Is the problem rooted not just in web technologies but in the fact that we live in a different era and creators don’t really express themselves in this way anymore?
Figma is great but it's not using classical tags to express fonts, tables, layout. Similarly Flash got it's layout and animation right... it just wasn't a web standard. A Canvas based editor/builder/WYSIWYG approach would be fantastic but it required us to move past HTML/CSS in the traditional and compatible model.
Said another way - if you try to use HTML/CSS to build a layout tool, you end up having to re-create browser layout and rendering engine.
Developers could build a design/tool similar to flash using canvas and I've actually prototyped elements of a tag/based design language that gets rid of the traditional HTML layout engine. It's significantly faster (1000x) to render/send over the wire but the moat of HTML/CSS is so large that I'm not sure there's interest in such approaches.
There are already pretty advanced DAWs and video editors in the browser, so the UI isn’t the problem.
I'm not saying that we should bring back flash for entire websites as was trendy for a second, but I do think we lost something special that had a low barrier to entry for kids, artists etc to create interactive experiences
Somewhere around half of the last decade, we starting having Chrome and Firefox taking hundred of megabytes per tabs and totalizing a few gigabytes that put them very close to what flash used to take, maybe cpu usage is still lower though.
Flash IDE was easy to use even for very novice creators (at least at a basic level, not talking about ActionScript). So there was a ton of simple animations, silly games, just weird experiments without any purpose or meaning. Many people were just having fun with it and sharing their creations.
When Flash died, this whole ecosystem somehow disappeared instead of migrating to a clear successor.
I might also be getting the timing of it all wrong. Perhaps when Flash was slowly being deprecated it wasn’t that popular anymore and by that time most creators moved on to different—more fractured?—ecosystems.
People frequently call out how wonderful "native" applications are compared to web applications are fundamentally talking about these limitations. Most web applications that also have mobile applications deliver a second rate and more mediocre experience on the web. With Canvas, WebGL, WASM, etc. a lot of that can now be addressed. Hence ruffle being able to deliver the experience we had decades ago when people routinely knocked out all sorts of things in Flash that are near impossible to do with HTML 5/JS without a lot of work.
All IOS and Android do is provide programmers a robust component library and a modern development experience around it; which is something web developers simply don't have and never have had. The built in browser components are pretty poor in comparison and the stuff people hack around that isn't a whole lot better typically. That's why people prefer native: richer components that work smoother and better. It's just nicer. And less work.
After two decades, I don't believe HTML5 + JS/CSS is actually fixable. There's a technical gap with "native" applications in terms of what it can be made to do. Luckily, with WASM, we don't have to. Ruffle is a nice example of that. Applications like Figma show that UIs in a browser can be fast, responsive, and slick. I see it as an early example of a new style application that mostly just opts out of the traditional web stack and its limitations.
WASM is only going to get better. Jetbrains actually silently released a WASM compiler for Kotlin recently that currently requires several experimental flags on Chrome to enable all the new features it needs for e.g. garbage collection and a few other things. Once that stuff stabilizes in browsers, there's going to be an influx of languages that don't do manual memory management and those languages will bring new tools and component frameworks. It will become basically a general purpose architecture you can target with pretty much anything that has a compiler. Doing DOM/CSS based work with that is going to be possible of course. But driving a "native" framework that bypasses that, probably makes more sense for a lot of things.
They do exist, though.