Flash Sucks –- But everything else sucks more (2011)
kristopolous.blogspot.com
kristopolous.blogspot.com
I'm a long time software engineer for UNIX and embedded, but I'm certainly not a web developer - the closest I get to a browser and related technologies is as a user/reader.
I think this may be part of the cause of a very different viewpoint - it seems like web developers actually bemoan the demise of flash? As a UNIX/Linux user especially, I was extremely happy to see the end of that. I danced a jig when Netflix and Prime dumped it. GAD it was awful! Only think worse was java in the browser. I had never considered anyone would be a flash apologist (even adobe employees).
So while using CSS, etc. etc. might be a pain for the developer, I think everybody else was more than happy to see it die. Just about everything from adobe seems to have the same basic stench.
I wonder what other things are popular for the creators but hated by the users? That's kind of an odd economic situation.
Electron, depending on how the developers use it. Most users doesn't knew that it's Electron because it's bundled with the application versus Flash which is visibly installed by the user, but most do indirectly complain of incomplete integration on their OS (usually they re-implement the notification system instead of using the native notification of the system) and very bloated memory requirements.
Yes Unity and Unreal do support them as backend, yet those export formats remain as experimental prototypes.
The indie game development community moved into the mobile platforms, which gave them what the Web took away and is yet to properly replace.
And for what? WebGL + WebAssembly now have brought Flash back.
Yeah, we've sort of got the tools now, ten years later, to be able to do what we were doing in the 2000s. Although it's still a lot messier. You now need to pick an audio lib and a drawing lib and a networking lib and hope they're all still supported in a few years, or be willing to maintain them yourself. But what really gets me is the way Adobe killed it in the end, by silently adding a self-destruct date to the plugin several versions in advance. I mean, people should still be allowed to somehow load my old games and apps if they want to. But now I can't even load them on my new machine. Literally hundreds of thousands of lines of hand-crafted code, three gaming platforms I built from scratch, several private business logistics apps that were still in daily use, and the majority of my work output from 2004-2014, was obliterated with very little warning.
Right now I'm still rewriting a critical AIR app that's still used by employees onsite all over the country, the last one I have in the wild. There's absolutely nothing wrong with the app other than that the language was killed, and it's basically impossible for me to push updates. Doing everything again is just a huge waste of time. The client can't understand why we're spending the money and time to completely rewrite something that will look and function exactly the same, only it'll be in TS instead of AS3.
The reason there's not an open source AS3 emulator out there that you can run in a web page is that Flash did so many different things, as related by this little article. It let you code sockets before there were websockets, and was still a friendly place for your artists to make their animations. It was like a swiss army knife with everything in one place, working pretty darn well.
Do you have a email or another form of contact I can message you on?
I'm surprised no one has had a good crack at re-creating the core functionality of Flash circa 2004, based on web tech, or something like Kha[1]. I've thought many times about starting such a project. I think the biggest challenges are developing a solid vector rendering runtime alongside the vector drawing tools, but just about everything else that ex-Flashers want can be reduced down to some pretty simple functionality. You could even forego all the cruft of the display list, the event model, etc, and just go with a simpler immediate mode renderer and I think you'd still be retaining those core components that made Flash special.
There are so many use cases (eLearning experience, Digital Signage, Touch Screen Kiosks) that Unity isn't particularly suitable for, and for which HTML/Javascript is just clunky, that such a tool could far better accomodate.
AFAIK this drawing model came from Flash's predecessor FutureSplash Animator. In fact, it might have already been there in SmartSketch. It really was the most innovative part of what became Flash, and it's not surprising to see all the commercial and open-source would-be-replacements opt for the easier-to-implement vector model used in stuff like Illustrator, where you just have a stack of separate shapes.
I think any Flash replacement that does vector graphics the easier way will have a hard time feeling as natural to create in as Flash did.
I reckon taking something like Godot's vector draw tools, and combining that with a Flash timeline/library, with a Javascript runtime, and you would win over all those animators that keep saying "why can't they just re-make Flash".
The state of the creative web diminished dramatically during this time because there were pretty much no tools that could replace Flash. Making something creative became the exclusive domain of web developers who understood the miasma of different technologies (JS, SVG, CSS, WebAudio, etc). What came of that? Nothing, because devs that know those things work for boring companies making boring software.
Sure, we still get.. some of it, but the amount of skill and dedication required is a big limitation.
I still consider the loss of flash a great cultural loss.
Sure, the web rendering technology has caught up, you can certainly do what flash did, and more, better, faster on modern browser platforms, but you can't do it nowhere nearly as easily, the bar for entry has been set so much higher, to the detriment of all.
> Ruffle is a Flash Player emulator written in Rust. Ruffle runs natively on all modern operating systems as a standalone application, and on all modern browsers through the use of WebAssembly.