Flash was a great technology for so many reasons. I really wish Adobe had open sourced it at the end. I suspect it would have paid dividends somehow.
Flash died because Adobe couldn't get a version running on iOS that wasn't garbage. I was working with Adobe when the iPhone came out and they did have dev versions where it was running, but it was awful. Visibly laggy, nearly unusable. No real thought into UI mapping for touch input. Apparently they showed this garbage to Steve Jobs several times and he shot it down, and I can't blame him.
Tragic, really. Even still, today, if Adobe open sourced Flash and Flash CS4 I think it be a huge hit. Homestar Runner and Newgrounds. Such an interesting space for creators. I can't even imagine the things people might create if it was still around today.
> Flash died because Adobe couldn't get a version running on iOS that wasn't garbage. I was working with Adobe...
I was working as Flash dev for a large company and we used to send support tickets to Adobe, some included weird compiler bugs that could be dodged by exchanging two lines of Actionscript. Adobe didn't respond a single ticket. My theory is that Macromedia's code base was just way too complex to be fixed or ported, and so they started working from scratch on the successor of Flash: Adobe AIR, but took some wrong decisions and never got as popular.
I was inside Adobe during the final death of Flash. Adobe as an organization is fully capable of maintaining a frighteningly complex product; Document Cloud is a testament to that. Steve Jobs and Apple's decision that iOS should be focused on mobile web (and later, the App Store) without Flash is what directly led to the end of the project.
I think that's a bit backwards. Flash provided a solidly mediocre experience. Non-native widgets (and consequently input issues and accessibility issues), high cpu usage and generally poor performance for things like video playback, poor security track record… on desktops. Avoid that on a more constrained platform was a no brainer.
Adobe's inability (or unwillingness?) to come up with a competitive product killed Flash. Jobs' unwillingness to hitch his wagon to Flash was a symptom not a cause.
And the relentlessly CVEs! It was banned on every corporate network at the time.
Once flash was used for ads, that didn't help either. It wasn't just "flash was slow", it was "webpages with a dozen yelling, flashing, dancing, cpu sucking flash ads" slow.
I wouldn't want that crap on my new shiny phone either.
Wasn't AIR just a repackaging of standard Flash for mostly internal/intranet use only, as the standard flash player was so full of bugs as to be significant security hazard?
AIR was/is basically what something like Electron is today. AIR wasn't just Flash, it was basically an HTML/JavaScript runtime that allowed you to make desktop apps with the web technologies, one of those technologies was Flash.
According to this Wikipedia page, Adobe AIR received its latest stable release on May 22, 2023.
~~This is not correct.~~ AIR was a way of publishing flash (only) content into standalone executables for desktop or mobile - win/mac/android/ios/etc.
As a platform it was basically Flash plus extra APIs for interacting with the OS, and as a tool it was a bundler that also handled stuff like signing certificates for the android and ios app stores (IIRC).
edit: miscommunication, sorry - AIR only rendered flash content, but it could display web content by invoking an OS browser component. So you could have a browser component inside a SWF wrapper, and the runtime could make the wrapper for you so from the author's perspective it was the same as supporting html/js. My bad!
No, it's definitely correct, they definitely supported HTML/CSS/JS at some point, not flash-only content - I myself published a normal SPA back in ~2010, and looking back it's actually kind of insane how similar Adobe AIR is to Electron.
Ohhh, I think one of the OS-integration features was that you could invoke an instance of the OS's web component, is that what you mean? AIR itself didn't do anything with html/js but you could render web content at runtime via the OS component.
Just looked back at some docs now, thanks. The things you forget in ten years..
Yeah, same! I didn't remember that it had been a wrapper (to be honest I have very little memory of -how- we did it), but I suppose it makes sense. TweetDeck was Adobe AIR too at the time, no?
Yeah, I'm almost sure there was no html renderer or JS engine in AIR, but you could have pure html apps with no flash in the source now that I think back. TweetDeck was I'm sure, and one other high-profile AIR desktop app was the launcher/lobby app for League of Legends.
>AIR was/is basically what something like Electron is today. AIR wasn't just Flash, it was basically an HTML/JavaScript runtime that allowed you to make desktop apps with the web technologies, one of those technologies was Flash.
When I was working with AIR it also had Flex4 , a GUI component library that you could use to create advanced and efficient GUIs for application. Compared to that in JS world you still need to create your stuff by nesting divs (in AIR you had customization, efficient and advaced Dropdowns, lsit views, DataGrids, Tabs).
When I mean efficient I mean I could have a DaraGrid with 1 million rows not like all HTML Tech where you get pagination with 20 rows per page or some infinite scrolling that is slow to load when scrolling and you can't do instant searches and filtering on.
ActionScript 3 the language is a typed EcmaScript like language, like a better TypeScript sicne types were actually used to improve performance.
Flash was epic for creative coding, and I haven't seen another software environment come close. We lost a really great onramp to UI development when Flash died.
I suspect there are deep licensing problems with the Flash codebase. For instance, video was such a heavy investment for them towards the end, and I'm sure they licensed plenty of that tech. I wonder how usable it would be if they just open-sourced the parts they owned free-and-clear.
I don't doubt the licensing and patent issue. But also, it's Adobe. They have the money. Instead of spending tens of millions on ads and media they could just do this.
I worked at Adobe in those days, adjacent to the Flash team, and AFAIK everyone involved would have loved to open-source the flash player. (And they did open-source significant parts of it, like the script VM - that didn't just randomly happen, people fought hard for it.)
But the overall player was a massive codebase - buildable for literally hundreds of platforms - that was developed over a decade with tons of external tech and external partners involved. Open-sourcing something like that (legally) isn't something you can just pay money to do.
Adobe mostly spends their time now releasing new versions of Illustrator that remove critical features at each iteration. 3D support removed from Photoshop. Save to web, save locally by default, both being removed from Illustrator. They're worse than worthless. If Affinity was just slightly better at parsing existing Adobe files, no one would need to pay for Adobe products anymore.
about ten years back I got my parents photoshop elements 11 as a present; it was the best thing since sliced bread. They'd seen the stuff I did (with Gimp) manipulating the family photos, they thought it looked like fun and they had hundreds of old slides/photos they wanted to scan and fix.
Elements 11 was a joy to use, made it easy to in-paint and erase glitches in the scans; all was well. I liked it too-it did smart stuff like seam carving.
A couple of years later, Adobe pushed me to elements 12. IIRC, that was the one where the subscription came in. I thought, that sounds bad but if it's advancing on the fantastic thing they'd had out before, it's worth the money. But no. It was completely unusable, all of the advanced features were gone, and the licensing was an intrusive nightmare. Honestly I'd have burned my computer to the ground rather than use that again.
That was the end of them for me. A product so bad that I'd paid full price and deleted it without a refund the next day, and would recommend no-one else goes near for 50,000 years. How the heck did they go so wrong so fast?
> If Affinity was just slightly better at parsing existing Adobe files, no one would need to pay for Adobe products anymore.
Maybe for Illustrator. After Effects doesn't really have a great competitor and the integration with Premiere is excellent. Resolve and Fusion show potential and the price is compelling, but after my last Adobe subscription lapsed I spent a few hours fighting with Resolve and it pushed me to re-up for another year on CC.
If you're doing motion design, I'd agree, I guess you're stuck with Adobe. In the realm of print, we are so close to never needing them again. Affinity is great. The only problem is that vector groups are lost when you need to import or export to Illustrator/PDF. Adobe is fully aware of this and makes their bespoke file format as difficult as possible to parse. When you're working with a dozen designers and 6 separate print houses for different things, you have no choice. It's the most monopolistic system I can think of, worse than anything Microsoft did with Windows and IE in the 90s. It's pure extortion as they take away features. And they know it. Adobe is doomed. Their entire attitude as a company is one of stripping as much as they can out of their current market dominance without adding any value. Adobe will not last another few years as far as cornering the print market. But right now, no one in the industry wants to be the first to bail on them. Everyone would love to.
Unfortunately, PDF seems to be as good as it gets, which destroys any grouping done in Illustrator. (When reading .ai files, I'm pretty sure Affinity just reads the PDF data). The best workaround I've found is to "sequence" all groups into layers first in Illustrator and then deal with them as separate layers in Affinity. Tedious and time consuming.
Also, Affinity's isolation mode is essentially non-functional, which makes working inside groups unreasonably difficult.
I was running a huge flash-based game site at the time and was able to test it on the dev Android Chrome plugin. The touch mapping was bad but there was clearly a way evolving around it (which worked well within a year for releasing AIR-based mobile games). To satisfy my own curiosity about performance, in 2010 I wrote my own JS/canvas engine[0] that was highly performant given the limitations of the JS engines at the time, and tested their frame rates side by side on the same interactive animations. Flash outperformed, but it ate more battery. I think in the end that was the reason Jobs decided to nix it.
It is tragic, mostly though because the Flash workflow was so great for working with animators and artists as you were refining 2D game assets. Along with the whole Away3D and Starling ecosystems leveraging GPUs it was extremely performant in ways that JS engines still can't quite touch, and there's nothing similar in terms of cross-platform deployment now (pixijs and threejs are both great, but they aren't integrated into a package non-coder designers can work with and you still can't compile them to a single piece of bytecode that runs anywhere).
I wouldn’t know, haven’t worked too much w/ Fishbowl. I was mentioning Magento as another product Adobe bought and is slowly screwing up so badly they’re killing it.
They desperately want AEM to be the front end to headless Magento and cannot/will not put any effort into a storefront or services layer or anything MACH for fear of it competing w/ AEM.
They’re missing the boat and in 5 years Magento will have gone from an eCommerce market leader to trailing the pack and almost dead.
adobe was the death of flash. Macromedia had a better handle on it, and when adobe bought it, then ran it into the floor and gave up early, leaving it to rot.
I don't think they could even open source it, with all the other companies' copyright work they shoved into it, like dolby
The problem was that Flash Player needed significant rewrites and Adobe didn't want to pay for them. Or at least, not without finding a way to get more money out of game developers for the privilege.
The story starts with Adobe. They proudly announce AS4, along with an "FP Next" intended to run it. Then they also mention new revshare rules mandated on anyone cross-compiling 3D game engines to Flash Player. This is specifically to keep Unity off the Flash platform. This, predictably, causes huge backlash from Flash developers - even those who don't care about cross-compilation. So they kill the revshare... as well as any plans to fix Flash Player's problems.
This all happened a year after Steve Jobs posted "Thoughts on Flash" and tried to ban Adobe AIR apps - and all other third-party development tools in the process[0]. We'd learn way later on that preceding this, Apple had begged Adobe to ship them a Flash Player build that would actually work on iPhones, and their attempts were... anemic[1].
[0] This was only stopped because the Obama administration threatened an antitrust lawsuit.
[1] While the iOS ports of Flash Player haven't been publicly released, they did ship NPAPI Flash plugins on Android, which were just as bad as Jobs had claimed. Actually they probably were the same codebase given that jailbreakers were able to get them to work on Safari.
I was a software developer of the Flash Player team at Macromedia and Adobe, specifically on the team porting it to Windows CE/PocketPC and then Android. What you describe is correct as far as I can remember, though I hadn’t heard the Apple “begged” Adobe to support iPhone.
I know that Adobe shared the Flash Player source code with Apple, but heard Apple assigned an intern to try porting it to iPhone. The Adobe developer working with Apple told me the ported code Apple sent back to Adobe didn’t even compile, so we don’t know if they even tested it on a real iPhone. We jokingly called the iPhone port “Project Boomerang” because the code that came back was basically the same that we sent them. :)
The Flash Player’s source code was ugly, but you have to remember that its roots trace back before Macromedia to SmartSketch, a vector drawing application for the PenPoint OS in the early 1990s. The core rendering and scripting code has since been ported and squeezed into new platforms and applications. And then the dot com boom happened. The development team grew to about a hundred developers and no one person understood the entire code base. Code was copy/pasted freely for fear of introducing regressions that would break existing Flash content.
Multiple rewrites and grand new engines that would live alongside the legacy engine were attempted but failed due to backwards compatibility, the second system effect, and product management’s pressure for new features.
To make matters more challenging, Adobe was losing interest in funding Flash development because revenue didn’t scale with Flash Player usage, only with sales of the Flash authoring tool to a small audience of Flash content creators. That’s when rev share schemes for 3D APIs, DRM, and asm.js-like C++ cross compilation (Alchemy and CrossBridge) were hatched.
I'm not sure exactly how to properly cite Apple's side of the story anymore, since it was from a Twitter thread that I don't know how to search for[0]. I know there was something on InternalTechEmails as well but I'm too afraid to touch Elon's Musk anymore.
Apple throwing "port Flash Player and HW accelerate it" to an intern also tracks. Especially if this was early iPhone development where basically half the company was being press-ganged into giving Steve Jobs an iPhone demo that wouldn't crash on stage.
Everything you said about Adobe management also tracks. I'm reminded about Jobs' quote about Xerox being filled with copier-heads[1].
Also...
>second system effect
Are you telling me that there was a Flash Player equivalent of Mac OS Copland[2]'s development at some point?
[0] Said thread also revealed that Jobs felt snubbed from not being able to have Adobe's CEO on speed dial
> Are you telling me that there was a Flash Player equivalent of Mac OS Copland[2]'s development at some point?
Yes, though these projects focused on “sidecar” JITs that would live alongside the legacy ActionScript VM inside the same Flash Player, not replacing the sacred Flash renderer.
A successful example was AVM2, the AS3 VM (open sourced in partnership with Mozilla as Tamarin [1]). A few years before that, a team had evaluated whether the .NET JIT (or a cleanroom implementation developed in-house) was technically and legally an option.
Much later, long after I had left, I heard from friends still at Adobe that somehow JVM developers from Oracle had joined the Flash team in the mid-2010s and were eager to attempt yet another VM, based on their JVM experience. But by this time, Adobe no longer wanted to invest in modernizing the Flash platform when it could simply milk the cash cow.
btw, the source code for Flash Player 4 is available on the Internet Archive. That was before my time at Macromedia, but I heard that Macromedia either open sourced the code (and then changed their mind for Flash Player 5 when they started charging for source code access) or it has been shared with a partner company who leaked it. Supposedly a few Korean electronics companies included this Flash Player 4 code in their devices when Macromedia was trying to sell Flash Lite (also a fork of Flash Player 4) as an solution for mobile phone UIs.
I know Adobe will never open source the final Flash Player code (because of third-party code licenses and there’s nothing for Adobe to gain), but I wish they had at least open sourced their internal test suite so open source players could improve their Flash compatibility.
I don't quite get why the Flash plugins were do slow on mobile. On Windows desktop, Flash was much faster than other NPAPI plugins. Most other plugins froze the whole browser for a second or so (Java even longer), while Flash didn't do that. And at the time, early native "HTML5 replacements" for Flash ads/games were actually slower than Flash.
Flash was software rendered almost exclusively. It also had quality options that let you scale the software renderer down a whole lot. But it still required a beefy CPU to push all those pixels. On mobile, you don't get a fast CPU - you get hardware accelerated EVERYTHING. Everything has to be done on GPU. Hell, iPhones still have dedicated JPEG decoders in them.
And vector rendering on GPUs is a pain to do, even more so with Flash Player's rendering quirks. Adobe's official solution to hardware rendering on Flash was Starling Framework, which rendered all your assets to bitmap textures and then gave you a DisplayObject-compatible API that triggered Stage3D renders under the hood.
In Ruffle we use a tesselation library to render on GPU. This preserves vector scalability but it has other issues. Most movies work fine with it, but we have to waste time tessellating[0] assets, and in certain contrived cases we tesselate things wrong and movies look polygonal.
[0] Which we hid behind existing Flash preloaders. We don't even support progressive download yet! But the alternative was Homestuck hanging your browser for minutes on end.
I always remember Flash being really fast at the vector calculation but and absolute hog on output rendering. So higher screen resolution hammered the CPU even though everything was setup.
Flash plugin was extremely well-optimized, it was one of the very few users of the original Pentium MMX extensions, and later SSE. That's also why they had such a difficult time porting it to 64 bits.
The Flash renderer was also state-of-the-art for the moment, with really awesome anti-aliasing and blending. All while using just fixed-point integer arithmetic.
>adobe didn't want to pay for rewrites or bugfixes
yeah, its a wonder they ever bought it to start with, then
you don't just buy someone's entire workflow and then not fix any of it. not at least, if you intend for people to believe you when you say you're the future.
Adobe is the Autodesk of the creative side of things. They've swallowed up almost everything in the space and exist only to collect rent. When something requires finesse, such as Flash, they fail miserably.
If Macromedia had a handle on it, it would not have been the dumpster fire it was when Adobe bought it. Flash was buggy as hell. The optics of history seem to be blurring how bad it was. Yes, you could do some cool and fun things at a very affordable way, but it was a security nightmare as people were trying to do much more complicated things that sprite animations. Rose tinted glasses of an old piece of tech than one has fond memories of is clouding judgment I'd say.
> If Macromedia had a handle on it, it would not have been the dumpster fire it was when Adobe bought it. Flash was buggy as hell.
No matter who owned it, Flash was a security nightmare throughout its existence, just as ActiveX and Java applets were.
The key thing is, these things were created in a time when there were far less bad actors on the Internet - not just because finding an actually working version of IDA was a challenge in itself but also because the financial aspect motivating bad actors these days (i.e. botnets, crypto malware) just wasn't existing or at least was sorta confined to nation-state actors. Plugin vendors could get away with an awful lot of utter bullshit back in the early '00s.
less rose tinted glasses and more the insanity of people entrusting logins and security to flash player to start with, or even adobe for adding that in. Yknow. if it was riddled with bugs and all that, you might avoid such a thing, for say, a banking page. Macromedia designed flash to be a web based animation system, not a full web stack. The very fact that these things were attempted is insane enough, and whats worse is the people who were surprised when it came crashing down.
all this talk about security and flash's being bad at it, and you forget what flash really was for. It wasn't for blaring ads (you can do that without flash) and it wasn't for secure logins
anyone who did use it for those was a money maker or a madman.
I thought Flash died, because Apple did not want Flash to eat into their app store profits. So yes, Jobs shot it down several times, because Flash would have allowed games and apps outside the direct control of Apple.
Flash could run great games and apps on Internet Explorer 6. If it was then impossible to get a non-garbage version on iOS, then maybe iOS was garbage.
It was also hard to get a non-app store version of pure HTML/JavaScript on the iPad. With severe restrictions to localstorage.
> because Apple did not want Flash to eat into their app store profits
Here's a fun fact nobody remembers anymore. Way back when (2010?) Adobe built a Flash feature that let you publish iOS apps. The feature went through an open beta and lots of flash devs made iOS apps, they worked fine, Apple accepted them into the app store, fun times.
Then riiight as the tech left beta, Apple changed the iOS terms to nonsensically restrict what language apps are "originally written" in - the source language had to be one Xcode supported, and apps converted from other languages were disallowed. Apple then removed the flash-based apps from their store, Adobe had to discontinue the feature, and a bit later Apple quietly removed the restriction.
(Working from memory here, details are approximate.)
To fill in some details (but IANAiOSdev): Apple first disallowed interpreted code [1]. (Wow, I had forgotten how much I loathed Apple for that.) Later in 2010 Apple loosened it to allow interpreted languages as long as you didn't download new code from the internet [1]. The exception was that you could use WebKit to run JS in a webpage in your app. I guess their excuse was security, so they could ensure the app they approved was the one you ran. In 2017 [2] they loosened it further to allowing downloading or importing code in some circumstances. The most important limitation now is that you can't generate executable code on iOS, which disallows JITs and makes everything other than WebKit a second-class citizen.
The old terms:
> Unless otherwise approved by Apple in writing, no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apple’s prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application.
That's a separate unrelated issue. The terms I'm taking about dictated what language the app could be "originally written" in, regardless of what happened at runtime. Technically, if you prototyped an app in some other tech and then manually ported it to objective-C it wasn't even clear if that would satisfy the terms as written.
(In practice of course it didn't matter what the terms precisely meant, because Apple never enforced them apart from removing flash-based apps.)
They did this just after I had started learning C# with Xamarin for iOS dev, it's why I got out of mobile development and am now a python/Django developer.
Edit: I forgot, at the time I was between jobs (2008) and had used a chunk of my money to buy an iPhone to learn iOS Dev on, they wasted a load of my time, and money.
> Flash could run great games and apps on Internet Explorer 6. If it was then impossible to get a non-garbage version on iOS, then maybe iOS was garbage.
The problem was pretty clearly on Adobe's end. They released a Flash runtime for Android in 2010; it was nearly unusable, and was quietly discontinued a year or two later.
No, because web apps had the same abilities and those were allowed. The reason Flash was blocked was because it was always going to be a poor experience and Apple sells great experiences.
Yeah the original plan for iPhone apps was they were all supposed to be web-apps saved to the home screen. No App Store. IIRC they even had a basic web SDK to make some standard-looking iOS views? Developers jailbroke the iPhone and reversed the APIs and made some really compelling demo apps and Apple had to rush to make an official SDK.
I just deleted my response about how I didn't think it was so tragic due to the security issues that plagued Flash, but I deleted it because I don't think my point about past security issues cleanly relates to yours about the benefits of open sourcing. I apologize if anyone attempted to respond to my comment and found that it was deleted by the time they submitted - that was not my intent.
> Flash died because Adobe couldn't get a version running on iOS that wasn't garbage.
Flash ran like garbage on every platform it supported, which is the reason Apple didn't allow it on the iPhone. And the Internet is a better place today because half of it is no longer built on a poorly implemented proprietary technology.
At the time I was a big Android fan, and it took me a while to come to terms with the fact that while my phone and tablet could run flash unlike Apple's products, the experience was so incredibly shitty that it was not worth actually using. I don't think I ever made it through a full episode of South Park on southparkstudios.com without the player crashing and me needing to reload my browser at least once.
It's too bad Flash Lite which quietly was on so many devices didn't have the abilty to upscale either.
At the time iOS came out, there was no App store, let alone a desire to let other runtimes run on iOS directly or indirectly like there are in some parts/ways today with web apps.
At the time when Flash was prematurely ended, there was no suitable replacement for what it could do, and it kind of set of more than a few years of darkness of reinventing the wheel.
Since Flash's ActionScript was based on ECMAscript (which is also familar to the Javascriptians), I don't think Adobe's replacement for FlashBuilder equivalent that rendered in HTML/JS/SVG reached the world, or if it did, timed well, or in any meaningful capacity.
If anyone could create html equivalent tooling for what html could do equivalent to flash, it would have been Adobe.
Few platforms came close to the promise of one codebase on many platforms like Flash. Lots of good hopes on the horizon in WebAssembly, Rust, etc, and more concretely with the next-curve techs like Flutter.
As usual, some vp ate another vp in executive jungle floor over chunk of budget and silverlight was promptly forgotten and corpo push “you need silverlight to run this” reversed after a while.
Not if it was valuable software, but it can happen with everything eventually as it happening with windows server, exchange, sharepoint and other “essential business productivity” offers.
Flash died because Adobe couldn't get a version running on iOS that wasn't garbage. I was working with Adobe when the iPhone came out and they did have dev versions where it was running, but it was awful. Visibly laggy, nearly unusable. No real thought into UI mapping for touch input. Apparently they showed this garbage to Steve Jobs several times and he shot it down, and I can't blame him.
Tragic, really. Even still, today, if Adobe open sourced Flash and Flash CS4 I think it be a huge hit. Homestar Runner and Newgrounds. Such an interesting space for creators. I can't even imagine the things people might create if it was still around today.