by bartq on 9/19/22, 1:45 PM with 175 comments
In 2022 we have SVG, WebGL, canvas, sound API and we can practically rebuild many of those Flash websites. They were accessibility disasters, but today we can do much better.
All this makes me think: why Adobe haven't finished yet Flash export to HTML5/WASM which is easy and popular? What's stopping them? Money or technical obstacles? I can imagine the targeting all the browsers both desktop and mobile and QAing all of that is hard, but feels like doable and web platform is pretty reliable these days?
And the final question: can people from Figma help Adobe to make Flash actually work? Figma is one of the best WASM/WebGL apps out there which (I presume) very experienced engineering team. I've read the blog post when they were running JS interpreter compiled to WASM in a web worker to create secure sandbox used as plugin environment. All of it just works. Can they help?
by apignotti on 9/19/22, 2:59 PM
It is safe to assume that the Flash team has either left the company or moved to other roles in the meantime. The Flash codebase is gigantic, evolved over decades and probably includes IP with non-obvious licensing restriction (RTMP is an example that pops to mind). Porting to Wasm such a big codebase would require assembling a new team and figuring out some legal aspects. Both these things are expensive.
At the same time, FOSS efforts to replace Flash can at best achieve partial support for SWF content in the wild. The API surface is just too massive and poorly documented. I speak from personal experience here, having founded the Lightspark project when I was younger and with a lot of time on my hands.
Our opinion (at LeaningTech) is that Wasm can solve the Flash preservation problem by virtualizing the original, unmodified Flash x86 plugin. We wrote at length about our approach here: https://medium.com/p/eb6838b7e36f
The resulting product (CheerpX for Flash, https://leaningtech.com/cheerpx-for-flash/) is available to companies that needs to use Flash (and particularly, Flex) business applications.
Since the SWF effectively runs using the original Flash plugin the accuracy is optimal. On the hand, licensing the plugin itself is required, which means that the solution is not viable for end-users. As much as we'd like this to be different, it's unfortunately outside of our control.
Full disclosure: I am founder and CTO of Leaning Technologies, and lead developer of CheerpX
by null_object on 9/19/22, 3:45 PM
As long ago as around 2001, with ActionScript 1 or 2, I was already building smart drag-and-drop calendar applications, where conference attendees could book all their sessions online in an easy-to-use and intuitive interface, that included tips, and complex hover states, with extra information at user's fingertips.
I'd say web-apps are almost getting to the same state of sophistication and user-friendliness around about now.
After that, with ActionScript 3, I was building interactive and immersive promo sites where users could explore alternative environments, build their own 3D worlds, or do crazy stuff like mash-up their own facial features (captured through their webcam) together with different celebrity musician's faces, and then do a remix of the musician's music (for an 'art' event that the musicians were taking part in).
There were masses of other capabilities - both serious and playful - but I must admit, even though I'm sometimes sad we lost Flash, in the end - especially when it was obvious that Adobe had let it drift - it was a shitshow of insecurity and bandwidth-waste.
by 60654 on 9/19/22, 2:03 PM
They stopped working on ActionScript tools (Flash IDE, AS3 compiler, etc) and switched all their web designer tooling (web animations etc) to Javascript. For a while they kept pushing out Flash security updates, but only because they had an enormous existing install base - but even so, that happened with a skeleton crew, and I'm not sure it's still being maintained.
So yeah, there's nothing stopping them now - because they already stopped years ago.
by thomasqbrady on 9/19/22, 3:47 PM
I think the reason people aren't terribly aware of Animate, and why there isn't a competitor product—whether open source or commercial—with a big name is that we don't need/want it. I haven't looked at the numbers in a while, but last I checked most web traffic was coming from mobile devices, and heavy, high-gloss interactions akin to what Flash afforded and what could be accomplished with WASM/WebGL are not what people want in their mobile browsing experience. They want fast. WASM/WebGL may be pretty efficient, and may be the best way to accomplish the sorts of things Flash was used for in much more efficient ways, but they're still not the best way to render text with a few buttons and images (i.e. a typical web page). The use-cases that had us reaching for Flash in the "aughts" just don't come up very often in web development these days.
When users DO want heavy, high-gloss interactive content, they're going to the App Store/Google Play to find it, not the web. This gives the developers the choice of building those experiences with WASM/WebGL if they like, but the vast majority are choosing native SDKs or a game engines. Against those options the WASM/WebGL offering is just not competitive, yet (the APIs, tooling, community is just not as good, yet).
by paulgb on 9/19/22, 2:00 PM
I explored a bunch of apps in this category over the weekend and was pretty impressed with what's out there, although it still feels early. Rive (https://rive.app/) is probably the one I'm most excited about; their state-machine approach is novel (at least to me) and feels like a solid approach. Unfortunately they don't support text yet, which is a deal-breaker for what I wanted to do, but they say it's coming.
The Lottie (https://airbnb.design/lottie/) ecosystem is also interesting. Funny enough, Adobe still seems to dominate as a pipeline for generating Lottie files (Illustrator -> After Effects), even though you need a third-party plugin to do it.
by pier25 on 9/19/22, 2:14 PM
See the famous Badger SWF:
by PaulHoule on 9/19/22, 2:23 PM
Somehow though there is a cognitive gap there and people's brains just go "zzzzzz" and they just don't perceive it, no matter how you present it to them, if you are tactful, gentle, forceful, rough, whatever. It reminds me of a friend of the family who had epileptic seizures and would drive off the highway into the shoulder of the road and deny that it happened, crash a bunch of shopping carts into somebody's car and say it never happened, burn down the building he lived in and not remember it, ...
by astlouis44 on 9/19/22, 6:17 PM
Developers are getting more and more fed up that they have to go through walled gardens in order to distribute games and apps to reach their users, while forfeiting 30% of their revenue. A powerful, easy to use content creation tool with a discovery portal on the web represents a large opportunity to disrupt all of the walled gardens.
Unity and Unreal haven't historically had great developer tooling and exporting support for the web, but mark my words that this will rapidly change moving into 2023.
As a sort of litmus test, who here would use an editor that itself is web based, for authoring interactive 3D content for the web that could itself be published HTML5 via WASM and WebGPU? Think "Figma or Canva for real-time 3D". It would have strong UI/UX, and open up the market to more than just creators and software developers. East to use drag and drop tools, with scripting and plugins available for the technical community.
Upvote this post or leave a comment if this is something that you would use.
by claytongulick on 9/19/22, 3:37 PM
It was a really great language. Typed by default, but easy to do squishy dynamic types when you want. Easy to do FP things or traditional OOP, and to mix and match based on the problem.
Also, while the performance wasn't great, I did some very cool things with e4x binding in Flex.
We had reactive UIs back before that phrase was coined.
Query an API, update a xml variable with the results, and the entire UI would update based on bound e4x expressions.
It may be one of the reasons why I enjoy vanilla web components + lit-html for rendering. It feels a lot like having that same sort of simple, elegant and powerful rendering capability without the cruft of big frameworks.
by dralexmac on 9/19/22, 4:07 PM
by pjmlp on 9/19/22, 3:02 PM
EDIT: And one could argue that Unity is the new Flash.
by warent on 9/19/22, 1:55 PM
by bartq on 9/19/22, 2:05 PM
by bitwize on 9/19/22, 4:15 PM
Back in the day -- the mid-90s -- there was a DOS compatibility layer for Linux called DOSEMU. It's still around, but back when I was playing with it -- '96 or so -- it was good enough to run Doom at full speed, with sound. Windows NT, from the makers of DOS, could also run Doom -- but it was choppy and had no sound. Microsoft had the money, resources, and the exact programming talent needed to make a DOS compatibility layer that flawlessly ran on Windows NT with support for virtualized sound and other peripherals. They just didn't want to. For whatever reason, they decided that those resources were better applied somewhere else. And that's one reason why we got shitty Windows 9x -- it was more convenient for Microsoft to extend the DOS+Windows 3.x model for a few more years rather than translate everything to NT in such a way that the DOS stuff still ran well.
And that's what the Flash situation looks like. With Apple cutting off Flash on iOS, Adobe just decided they didn't want to port it or even maintain it beyond the bare minimum. Flash's successor is Adobe Animate, and that does export to HTML5, but Flash itself... the effort isn't there from the parent company so it died.
by davidork on 9/19/22, 6:46 PM
by jeromie on 9/20/22, 8:24 AM
It's also the case that a lot of games were dependent on specific timing, and changes to internals that were completely unrelated would elicit super weird behaviors in various games.
When Flash in the US was EOLed, the folks at Newgrounds used Ruffle to keep their large body of Flash content running. It's been a couple years since I've checked in on it, but what they had was pretty impressive compared to other FOSS attempts that had been made over the years.
by ajxs on 9/19/22, 4:30 PM
I see no reason why Adobe would want to. I don't think this is how websites are designed these days, or what consumers expect. I don't think people want to navigate these kinds of sites anymore. The internet is not designed to be an 'experience' these days, it's designed to facilitate consumer needs quickly with minimum friction. Which is pretty much the opposite of what the high-multimedia websites built in Flash were designed to do. Users want fast load times, and instant response, not interesting animation.
by jonplackett on 9/19/22, 6:04 PM
Why adobe didn’t create a great html5 authoring application (basically the same as flash) I’ll never know.
by chiefalchemist on 9/19/22, 2:42 PM
Your theory, your foundation, in 2022, is flawed. There's simply not enough market for Adobe to justify the expense. Furthermore, it's obviously not a growing market. It never will be. Factor in the opportunity cost and there's simply no good reason to invest in such a thing.
Editorial: While I'm not going to blame the tool, there were a lot of gawd-awful experiences built with Flash. Some have learned from that, others have not. Let's hope we don't go back to a day when pointless eye-candy was confused with good design and an effective UX. I'll hang up my mouse-pad if that happens again.
by tiborsaas on 9/19/22, 2:24 PM
If you are missing the Flash developer experience, then you are still in luck, we are going to see many options for WASM as a target.
https://www.adobe.com/products/animate.html
Flash died for a good reason, let it rest in peace :)
by Fiahil on 9/19/22, 3:04 PM
Note that Ankama is still using Flash for its MMORPG, Dofus.
They're moving it to Unity, FWIW.
by miedpo on 9/19/22, 3:32 PM
Now most people just do things in other languages. Flash was a very nice platform to target though. It got a lot of things right.
by meheleventyone on 9/19/22, 1:55 PM
by throw_m239339 on 9/19/22, 2:21 PM
Flash is long dead, that's your answer and Adobe isn't doing anything with it now.
by dathinab on 9/19/22, 5:18 PM
When they discontinued Flash WASM wasn't an option.
Now they already have abandoned Flash, told everyone to move one and most of the monetary profitable ecosystem _did_ move on.
And while there are probably still some companies willing to pay for new flash support for their legacy application it's unlikely to be worth it for Adobe.
Lastly even if you could create Adobe Flash WASM it's non trivial to make it down to bug compatible with Flash. But exactly that is the kind of compatibility is what remaining legacy customers want.
So IMHO it's less that they can't do it but more that for the for profit company Adobe it makes little sense.
by bsder on 9/19/22, 7:01 PM
It works quite decently, but they can always use help.
by kraig911 on 9/19/22, 2:50 PM
On your point though for actual apps in WASM that are more than just making a 'cool popping interface' there is a future. I also can attest that Lottie in icon design and animation is super fun. Also the sound API still sucks.
by Traubenfuchs on 9/19/22, 2:12 PM
Why would anyone go back to flash, even if it became available again?
by Matthias247 on 9/19/22, 3:41 PM
by dekhn on 9/19/22, 10:09 PM
If you have SVG, WebGL, canvas, and sound API just use those directly, don't make a flash portability layer.
by knicholes on 9/19/22, 2:12 PM
by vbezhenar on 9/19/22, 4:55 PM
by diebeforei485 on 9/19/22, 4:29 PM
If you want to run it in a VM running a legacy OS, in order to play an old game for nostalgic reasons, you have that ability. That's different from demanding the whole thing be ported to more modern technologies so it runs on modern systems.
by Kim_Bruning on 9/19/22, 11:21 PM
https://www.gnu.org/software/gnash/
Gnash only fully covers up to SWF v7 it seems. The project could use some love?
by easrng on 9/19/22, 2:58 PM
by qbasic_forever on 9/19/22, 3:54 PM
by randomdata on 9/19/22, 2:58 PM
by pipeline_peak on 9/19/22, 6:11 PM
by naikrovek on 9/19/22, 8:33 PM
by elforce002 on 9/19/22, 5:50 PM
by mdasen on 9/19/22, 2:55 PM
If it's A, then there's no money in it. There might be some nostalgia in resurrecting old Flash apps, but it just isn't worth Adobe putting in all that work.
If it's B, I think there's a host of issues to relaunching Flash as an active development platform.
First, I think the biggest thing is that the development community likely wouldn't want to buy into a proprietary system again. Yes, it would compile to WASM, but you'd be on the hook to Adobe for the future of whatever you were building. That might have been ok back when there weren't other options to create that type of media. I don't think you could get enough buy-in today.
Second, WASM isn't just perfect. I'm very bullish on WASM's future, but to pick on one example: it doesn't have a garbage collector. That means that any runtime that needs GC needs to ship its own GC. Instead of a lightweight JS payload, people have to download your garbage collector in addition to the code. Likewise, many languages often come with standard libraries so you're shipping your implementation for `List`, `Set`, etc. along with the code of the actual application. With JS, the browser already has the built-ins.
Microsoft has been putting a lot of effort into Blazor on WASM (allowing developers to write C# with Razor templates that execute in the browser to compete against things like React). It's been a pretty big effort and as of .NET 6 it's still around half the speed of React+Redux. Worse, its startup time is 3-6x worse depending on whether you're using AOT compilation or not. Ahead of time compilation helps it run faster, but it also means having to download a lot more. Even without AOT, Blazor could weigh in close to 10x React+Redux.
Again, I'm very bullish about WASM's future. .NET 7 (releasing in a month or two) should have nice improvements for Blazor. However, it's not easy to simply target WASM if you're looking to create a platform that people are wanting to actively use. I think that Blazor is going to be a wonderful long-term investment for Microsoft. WASM is looking to add GC capabilities so that languages don't have to ship it. Languages are getting better at figuring out which pieces of code are actually being used and need to be shipped.
However, does Adobe want to put all that money and effort in when it seems like the industry won't be beholden to a proprietary standard in the future? Probably not.
I think the big issue is that there's a large gulf between "this works" and "this is performant and efficient enough to compete with alternatives." Again, I think WASM is an excellent long-term investment for the web. If WASM had started in 2000 or 2005, we probably wouldn't have seen such amazing work on JS engines like V8. However, WASM needs to compete against incredibly advanced JS engines that are at the top of their game. It will happen and I think it's already great for languages like Rust and C. I just think that it wouldn't be trivial for Adobe to relaunch Flash as an active development platform.
Adobe wouldn't just need something that worked, but something that's a compelling alternative to modern development. Flash pre-dates jQuery by a decade. In the '90s and early 2000s, Macromedia and Adobe were offering an interactive, rich-media system that pre-dated anyone really using Ajax. I'm not saying Flash offers nothing today. I never developed for Flash so maybe it was a nice development environment. However, we're able to make the same rich, interactive experiences without Flash today.
Finally, on a legal level, it looks like Adobe may have licensed Flash to Harman/Samsung: https://services.harman.com/partners/adobe. Maybe that doesn't preclude Adobe from resuming Flash development in the future, but maybe it does.
by seba_dos1 on 9/19/22, 3:16 PM
by croes on 9/19/22, 4:30 PM
by DonnyV on 9/19/22, 3:42 PM
by delirehberi on 9/19/22, 6:41 PM
by trynewideas on 9/19/22, 2:36 PM
by captainmuon on 9/19/22, 4:29 PM
I can imagine there was a secret deal to uncerimoniously run Flash down. What did Adobe get in return? Maybe the assurance that Apple doesn't make iCloud the only allowed cloud service, so that Adobe could make profit with CC subscriptions?
A graphical RAD tool would have a big market, if you think of how widespread Flash was. Or if you think about old VB6, Delphi, and the raise of no-code. There is really a need for a simple interaction design tool that lets you click together a working graphical interface. (Now that I think about it, maybe this could grow out of Figma?)