Ruffle is a Flash emulator written in Rust that can be used as a browser extension, a desktop client, or a website polyfill. It's still a work in progress, but eventually websites with heavy use of Flash content (like many late-2000s webcomics, or even Newgrounds itself) could use the polyfill to replace Flash content with WASM blobs.
The roadmap was updated recently, and provides a good overview of Ruffle's current capabilities. There's also a demo instance that can run arbitary SWFs, with a few examples available.
Is any of this open source?
> The Flash plugin itself includes a JIT compiler that
> converts AS3 code to x86 code on the fly, which is then JIT
> compiled by CheerpX into WebAssembly.
I'm looking forward to seeing this as a dependency of any future Electron app too; Moore's law must be brought to use.
(That isn’t normally called JITting, but I think one can view it as such, especially when the CPU caches the translation, as in https://en.wikipedia.org/wiki/NetBurst_(microarchitecture)#E... or https://en.wikipedia.org/wiki/CPU_cache#UOP-CACHE)
And that’s totally fine to support legacy code.
After all, it continues to put some tiny pixels on a screen, emit some light and gets interpreted by some huge neural networks that took decades to train and finally releases a small shot of endorphins.
Why not just start with the endorphins?
And their website: https://www.leaningtech.com/pages/cheerpx.html
This is honestly one of the coolest things I've seen, and given the amount of Flex/Spark software for enterprise out there, it could drastically change the legacy software landscape.
I hope they release something usable that I can just download and play around with. I'm not a huge company which will create something really amazing and can pay royalties to them, I guess I am not interesting
It's easy to make a mess in many things, and it's true Flash has it's share due to it's sheer ability to create beginners in the realm of digital experiences.
We obviously also cannot support any of Flash Player's DRM features, not for any particular technical reason, but because we (and likely Adobe) are legally restricted from shipping a pure-web decoder for that DRM. We probably could proxy to an Adobe-provided EME plugin, but that would require cooperation with Adobe and major browser vendors for a 0.01%er preservation use case. We also cannot proxy early Flash video as no browser appears to expose native/hardware H.263 or VP6 decoding, so we'll have to ship software codecs that will probably perform like hot garbage on HD video. Fortunately, I don't think there's a lot of SWFs or FLVs with HD video in those codecs anyway.
Flash also allows you to enumerate device fonts, which used to be possible on the Web but isn't anymore. I don't think anyone will miss it.
However, the web sandbox is so large and all-encompassing nowadays that all of the above seems like small caveats. The vast majority of Flash content that people actually want to use is either standalone movies (Newgrounds, Albino Blacksheep, other portals) or static websites (e.g. Homestar Runner, Homestuck). The big hurdles for that are AVM2, dynamic text & inputs, and Stage3D. All of those are almost-perfectly enclosed within the web sandbox. Most of the sandbox-prohibited stuff is necessitated by websites which likely either have executed a transition plan to web standards (and thus won't be using Ruffle) or are willing to put up with whatever extra wrappers or steps we require to make these old APIs work.
How about flash games?
I bet much more time was (and is) spend on flash games, than movies or static websites alone.
But games are performance critical.
Sure, someone has to run that proxy, but I'm sure flash games sites wouldn't have trouble doing so.
It's kind of a moot point, though; I doubt that the networking servers that these games depended on are still online. That's a whole separate preservation problem.
Alternatively, figure out a way to ship remote dependencies alongside the swf file, and define a patch format that allows replacing network requests.
All of this is more work to do, but all of it is also workable solutions.
At the same time, I don't want to be dogmatic about anything, those are just general tendencies. Emacs for example is a beautiful example of an almost opposite design. The software is like a computing instrument that the user has to first learn how to play, but the more effort they put in to it, (up to a point at least, and depending on what they want to do) the more they get out of it. Ultimately it depends on what you're trying to accomplish and who your users are.
I've watched a few products "grow" using this method then project managers be surprised when down the line it's all held together with duct tape and chewing gum and a "simple" change is a week of work. There have been a number of times in my past where I have purposefully not suggested or the team decided not to bring up an "option" because we knew it would be abused.
He goes into some of the reasons it's a bad phrase and some of the problems behind it. I'd recommend the talk.
These are insanely hard problems yet they are solved because someone asked and someone tried.
For that you need server snapshot, that should be easy - just require it (maybe with source) to be provided with each application that use network. But some servers aggregate data from several users.
That's easy too - require it to be possible to deploy by user on some generalized network architecture.
We have same conversation again and again - The Right to Repair, Internet Archive, Open Source. Flash was part of that rhetoric too - that's why it is so polarized. Brilliant tool, so much creativity and yet closed source, poorly supported, bug ridden. It was a public stance - if Flash become standard it would be new IE once again.
Based on that I'm pretty skeptical that Ruffle will succeed, although I guess it does have the huge advantage that Flash is no longer a moving target and they really only have to get it to work with existing Flash movies - nobody is creating new ones.
The SWF format itself is tiny in comparison to the web standards like HTML, JS, or CSS.
swf format: 100% implemented
Tamarind AS3 VM: Open sourced by adobe.
AS1, AS2, AS3: Not technically 100% but effectively so
Flash platform API: Enormous and bug ridden, like mapping the coastline of finland. you can get 90% through this and have 90% to go, over and over again for however many decades you care to work on it. It's not like the stuff here is hard, it's just the sheer quantity of stuff, like, for instance, the precise way that XML whitespace gets parsed by the XML parser into a DOM matters. The gamma interpretation of RGBA colours. And so on.
Flash rendering pipeline: No one has succeeded in figuring out how this works, at all. You can get far enough for strongbad, but for 100% compatibility, the CheerpX approach is the only one that I think has any chance of success.
also, you may be interested in the openflash project
and the shuobject api
It currently provides one of the strongest models for parsed SWF files and AVM1 bytecode, and the corresponding parsers and emitters. These libraries are in use to process SWF files automatically (remap identifiers, edit tags, compress files).
The end goal was to provide a player, but Ruffle already has relatively good support, so the goal is shifting to automatically convert SWF files to other languages and help with migrations. The current focus is on AVM1 (Actionscript 2) decompilation.
Running AS3 games:
I sure wish that were true, but it's almost certainly not.
In this area, spectre and meltdown have caused huge shockwaves (no pun intended) in terms of things commonly assumed to be safe turning out not to be.
That's not to say it's not a good approach, just that it doesn't bring security concerns to zero.
Not trivial. You can put every assembly instruction inside its own container, yet still cause a huge security fail.
I was pissed when they switched to Flash but whatever you think of the tech, or Charlie for that matter, it would be a crying shame to loose so much content. He interviewed everyone who was anyone during some eventful times. That site is part of the rough first draft of history.
1/ Its IDE which made creating creative and interactive content mixing video/vector graphics sounds and code easier
2/ it's API that provided things that were not possible when browsers had none of these API (video streaming, socket programming...). At some point you could even write 2D shaders or inject C/C++ code with something called Alchemy.
Point 2 is now largely covered by browser web API, although one might argue that the performances might not be always as good as they were in flash, especially when it comes to vector graphics or realtime audio processing. But 3D and webgl are more performant than flash in the browser.
Point 1: well there isn't really an equivalent, and even Adobe Animate isn't really doing exactly what flash did when it comes to authoring content for browsers. So there is still a potential market here. I'd like to see something node based when it comes to coding. Artists love their nodes.
The real problem is obviously running old flash content like games. Some of these games were really good. I remember playing one which was a hotel management simulator and it was really really fun. But it's a bit like a these jar games in the 2000' one cannot run on modern mobile phones anymore. Without an effort to preserve these, they will all be lost.
They was so over controlling so there was whole game development industry where literally every company used Flash for UI for decade, but with 3rd-party proprietary runtime simply because Adobe ignored that market completely.
If they only moved Flash into open source when it was on peak of it's popularity they would probably still sell their proprietary tools to so much larger audience.
Adobe's idea at the time of the HTML5 transition was that they were going to completely replace Flash with the Edge Suite, while Flash Player became an expensive-to-license compilation target for Unity. Hence, the whole "premium licensing" debacle that smacked of "we don't know who our customers are, but some of them aren't using Creative Suite, so let's try and charge them lots of money for things the web can already do".
In my opinion it all was just too little too late. They should been investing heavily into open source as soon as Google started their crusade on web with Chrome. By the time WebGL and other APIs became mature everything was over for Flash.
Adobes evangelists really started running in circles after that.
And adobe itself made one stupid management decision after the other. And after they realised they will not get back on the ipads, they abondoned flash.
And this, after AIR ((flash for desktop) and Flex (UI Libary) were on its way to become established. Flex was really powerful. I would have loved to still use it, with a open-source flashplayer as its base. But adobe could not get themself waging to do that, so they just let it die.
There would be causalities - accessibility, responsive design, ad block (cosmetic and network), personalization (stylus). Yet with still unmatched creativity, maybe with stronger case against native applications (like today fuchsia). World would be different and we would never know exactly how.
The most important thing Adobe completely failed at. The Flash community was a fantastic thing that will never have any equivalent, ever. Macromedia understood the idea of ecosystem.
But what business survived being "Eloped"?
So did we eventually come full circle?
That said, the Flash client was closed-source, buggy, security-challenged, intrusive, and a memory/battery hog. All that contributed to its demise.
It also helped that it was denied access to what would become the world's largest consumer compute marketplace: the Apple App Store.
Why is it that with all our computer power, we somehow can't create authoring tools as good as we had in the past?
HyperCard, DreamWeaver, Visual Basic 6, etc. all seem to be dramatically better for common people (read: not career programmers) than any modern equivalent we have.
A 1.0 would need to address a large enough surface area of the web to be useful. There's also a discordance between hand-coding "friendly" HTML/CSS and what would be exposed in a WYSIWYG tool. Further complications are all the new and old bugs in browsers.
That said, every day I was working on Hype 1.0 in early 2011, I would nervously check Hacker News for a "Show HN" post for a HTML5 animation app that would steal the thunder; luckily none came. This is even more surprising given Hype exports were mostly compatible with Internet Explorer 6 -- such an app could have been written long ago.
Another side is that programming and web is no longer novelty so common people prefer to just pay for someone else for their time rather than learn anything on their own.
Most people prefer to pay their auto mechanic, plumber or electrician even though most of people are capable of fixing many of their problems just by following simple tutorial and common sense. Programming is no different here: it's just easier or more time efficient to pay to someone else.
I absolutely don't buy this.
My father, a high school English teacher, could barely run a spreadsheet that I set up for his grades--something that basically everyone can do today without blinking.
And even he could use Hypercard.
It's the tools, not the people.
Likewise I rather spend my time in Unreal and Unity, than trying to feel superior while doing everything from scratch with SDL.
Dealing with the modern web is like reading an infinite run-on sentence because it absolutely overwhelms you with shit and it doesn't let up. It's not hard to go to any random site and find 75% of the above all at once.
Flash was bad. Somehow web developers took its demise as a challenge to make the web worse.
I detest the modern web, and I find myself using it less and less.
The other day I was researching how to add simple procedural animations to some web-based interactive content for a museum.
This would have been a breeze with Flash. You just passed the .fla to the animator/illustrator and they would create the item in the library for you. Then you could simply animate that display object in your code and the artist would be able to modify it without breaking anything.
I came up with this solution using DragonBones so that the artists could work on their own. And then I could render those animations with Pixi.
I agree an all-in-one solution would be much nicer but not sure there is a market for it.
Though in either case, you lose the web platform, with its accessibility (aria, screen readers) and forward compatibility (like the one we had with the move to smartphones, etc).
I haven't really benchmarked the size, but there are a few demos floating around. Not entirely sure how to measure it, but that one seems to come down to less than 10kB? https://obersprengmeister.frozenfractal.com/
For simple games or single animations Pixi is plenty. In fact Phaser.js is built on top of Pixi.
If anyone knows anything current similar to the flash IDE, I’d be curious to hear about it.
In the Linux / programming world Flash was a pariah that didn't conform to their standards. But it was booming for creatives and end-users. In 2010, almost all websites used Flash video and Flash gaming was exploding on Facebook. (Apple had to fake their Keynote to demonstrate the iPhone could view the "entire internet.")
Security complaints are a weak argument: both Apple and Google have had security issues on their proprietary platforms. (I'll concede Adobe was a very poor steward.)
Jobs' hit job was a calculated sucker punch, leveraging an exciting new platform to lock out competition. The iPhone wasn't powerful enough to play Flash and made Apple look weak. The iPhone business model depends on consumer lock-down, so making Flash compatible was counter-productive.
Performance, performance, performance. Battery life matters. Smooth animations matter.
People seem awfully sure Apple's anti-Flash move was 100% motivated by platform-building and 0% by perf. I'm not so sure it was 100%/0%, because I actually saw how shockingly bad Flash perf was, and I saw how big Apple's perf push was at the time.
One time (2010-ish?) I accidentally left SpinControl.app open after a dev session for ~1 week. SpinControl was an app that would automatically dump a stack trace whenever any application failed to drain its event queue for more than a few seconds and beachballed. Super handy. In any case, when I came back to development and noticed SpinControl, I was surprised to find that 100% of the hundreds of stack traces collected after my development session involved flash. Not 99%, not N-1, literally 100%. WebKit was finding its way into different applications so the symptoms weren't limited to Safari, but I still suspected that I had a filter enabled or something. Surely Flash couldn't have accounted for 100% of my beachballs? I triggered a Mail.app reindex, and sure enough, a stack trace popped up in SpinControl, this time in sqlite, as expected. It wasn't an instrumentation problem. Flash had literally been 100% responsible for all of my beachballs over the past week. Crazy.
This was around the time that Apple started to push developers away from APIs that made it impossible for Apple to aggregate background thread wakeup events to save battery life. In other words: they were willing to sacrifice goodwill to obtain perf.
I'll grant you that platform considerations likely played a big role in Apple's decision, but also remember that Flash was literally the single largest performance-limiting factor when it came to desktop freezes and battery life at the time, and that probably played a role too.
There is a pretty good argument that it was 0%/100%. It isn't like there is anything threatening to Apple that Flash could do that isn't theoretically mimic-able on iOS using Safari.
It was literally the official solution for DRM video on the platform.
It didn't have amazing performance, but it did just about play DRM video and Google didn't really get native Widevine support working for several years.
It's certainly a valid reading that Apple knew video providers couldn't stop using DRM (they were contractually required to), and therefore would have to distribute using the App Store rather than the browser to get a DRM solution that worked in the absence of Flash, and therefore Apple could attempt to extract 30% of their revenue.
No. Flash was too resource intensive to work on any mobile devices. Flash on Android was an utter disaster. It ate through your battery life, was unusably slow and couldn't even properly format Flash content for mobile, touch-based devices. As the world moved to a primarily mobile-based computing environment, Flash's death was all but inevitable unless Adobe could do something to rectify these issues.
No, flash in itself was quite efficient. But many flash games were just badly programmed.
(as the IDE made game making easy, even for very beginner programmers)
No, Flash Lite ran on significantly-less-powerful feature phones. (Remember, in the early days of the iPhone, Flash was desktop-only.)
> Jobs' hit job was a calculated sucker punch, leveraging an exciting new platform to lock out competition.
You speak as if Jobs instigated this when in reality, this was a response to Adobe holding Jobs' platforms hostage for a long time, and in many ways. Flash's ongoing instability and inefficiency on MacOS was just the straw that broke the camel's back.
 https://www.wired.com/2010/04/adobe-flash-jobs/: "Flash was designed for the desktop world, for web and large screens, not the user experiences you want to create in these new devices with touch, accelerometers and GPS," Luh said. "It wasn't designed with that in mind at all."
I've seen Flash-based feature phones do all kinds of things that desktop Flash struggled to do on (then-contemporary) desktop PCs. I can only conclude that Flash Lite had a significantly different codebase than desktop Flash, with very different performance characteristics.
Just because "Flash could do it on a feature phone" doesn't mean that a smartphone could keep up with the full Flash plugin. Look at the performance disaster that Flash on Android was.
I recall it a bit differently. By December 2006, Adobe claimed that Flash Lite had shipped on 220 million devices.
That was probably the apex, though — by 2010, it was all over.
> Web content was almost exclusively full-on Flash.
Yes, always IIRC. Flash Lite content wasn't delivered via the web.
"With the launch of the first iPhone in 2007, Apple declared war against mobile Flash. Apple is supporting HTML5 and its efforts have influenced the online video landscape significantly. Many major websites are starting to use HTML5, and video players such as Brightcove are serving up HTML5 videos for devices not compliant with Flash. Separately, Apple has worked with companies like YouTube to produce iPhone-compatible versions of their sites."
"Instigate" would mean that Jobs started this fight, but this action was one of Jobs' last salvos in a rivalry that started long before iPhone.
To over-simplify, Jobs never forgot Adobe's threats to abandon the Mac when times were tough and Apple needed them most. IMO, it was that relationship which taught Apple that it must control as much of their technology stack as possible. In that context, finally being able to kick Flash off of their platforms must've been both a great joy, and a great relief.
Edit: I guess the project to run Flash Lite on Sony-Ericsson was called Project Capuchin? https://www.youtube.com/watch?v=kn5He1Wxl-Q
In that case, it makes sense to move either farther up the stack to design (or even out of the "stack", to more pure design) or down the stack to where it's more stable, at the systems level.
How is that I could play videos smoothly in Windows 95 but ten years later the same video at a lower resolution made a newer computer crawl? The answer is Flash.
I don't care if other people wanted Flash games. I hated Flash video and celebrated every little bit of its demise.
I'm not saying you are entirely wrong about consumer lock down, but for various reasons, consumer lock down can be objectively better for the developer and user experience, and it is easier to move fast when you have fewer dependencies at play.
This broadly went away when graphics cards started integrating PlayReady in the chipset, though we did eventually power through it for software encrypted video like EME protected videos in Chrome for Windows.
I am really glad HTML 5 has matured to the point that it has. Not having to have an entirely separate runtime environment running in the browser window makes things so much more stable than before. Now, if only we could figure out a way to make having lots of tabs not be painful, and maybe get a bit of a handle on memory usage, I think I might very well be out of things to complain about in terms of basic browser usability. ;)
The problem is that both web applications and native applications are "applications." The rest are either implementation details or politics of the platform owners (Apple) and 3rd party app developers. I say this as someone who enjoys writing Swift.
I distinctly remember a general dislike by people who didn't know the name of the technology, because parts of my highschool's homepage were implemented in Flash, and it didn't load right. In 2005-2006. They recognized it primarily because it was slow and messed with the right-click context menu.
"Everyone"? I loved it. Kids loved it. The people who hated and killed it were programmers, and to this day they haven't created any alternative that kids would love as much.
It's similar to the murder of Dreamweaver. Actual designers who draw pixels on the screen loved it. Programmers hated it, pushed CSS instead, and visual editing of the web died.
Nowadays the technology has gone to other places and more than ever artists are locked out of the workflow and reliant on programmers to implement even the most trivial of things.
Who said anything about "good" programmers?
> The bugfilled world of IT is complicated enough as it is and always was like this.
That doesn't mean we can't make it more complicated.
Look, we got record numbers of people graduating with CS degrees, coming out of bootcamps, or just learning the trade straight off of Youtube.
We have to find extra work for these people, otherwise our salaries are going to tank because of increased competition.
> And yes, it is a spoof, obviously. That is obvious from its content alone, and it follows a long tradition of similar spoofs. However, enough people must have fallen for it, because Bjarne Stroustrup has felt the need to publish a rather irritated disclaimer in his FAQ!
As an aside, Flash is also extraordinarily inefficient and a plague security-wise, and always has been. Steve Jobs pointed this out a decade ago, of course.
Meanwhile, HTML continues to have none of those problems.
It was quite a pleasant and consistent experience compared to writing browser JS at the time(10+ years ago).
Adobe Animate can now export animations and scripts to HTML5: https://en.wikipedia.org/wiki/Adobe_Animate
Their templates are quite flexible, and there's a lot of them, but it's not quite creating something original.
To this day iPhone still doesn't fully support HTML5: you cannot put a game canvas into fullscreen mode on iPhone (all other devices, including iPad, do support this).
And when PWA's became available, they were very slow in supporting Add To HomeScreen. And when they did, nobody knew about it.
So yeah, don't think apple did it to support standards. They did it to keep control within their own appstore.
I remember reading that and concluding it was the app store, so I'm pretty sure it already existed.
A quick search on wikipedia: "The App Store was opened on July 10, 2008, with an initial 500 applications available."
The article is dated 2010! If you can count that is 2 years!
Flash was not present from the start, and the intention at release in 2007 was that web applications would be how 3rd party developers developed for the iPhone. The decision not to have Flash on the iPhone in 2007 cannot possibly have been to drive downloads from an App Store that did not exist.
If this was a coordinated attack on Flash in support of the App ecosystem, why wait so long to write that letter? Why launch your phone without an app store in the first place?
So no, they did not drop Flash because they like to support HTML5.
So if there is no Flash, an no full support of HTML5, it's pretty obvious the only way to get apps on iPhone is through the app store.
The iPhone had the ability to add a page to the home screen on day 1. Web apps were Jobs “Sweet solution” for apps on the original iPhone.
From iOS 1.0 designers figure out how to design a “Add go home screen” banner in html that would point to the right place.
Remember that the entire reason Adobe bought Macromedia/Flash in the first place (besides sheer market dominance) was to provide themselves a technical path forward from most of their products' classic Mac OS roots into the 64-bit/mobile era we're currently in. It's very obvious when you go back and see that the first version of Photoshop with a Flash-based UI and the first (Windows) 64-bit version of Photoshop were both CS4. Compare that to Photoshop CS3 where you don't have to dig very deeply into the Windows version's files before you start hitting the layers of what are obviously classic-Mac-style Resources.
Flash didn't make it on any other mobile platform. Serious attempts were being made way earlier than the iPhone, including for Symbian , making it available for high end feature phones. But all of them were horribly limited, and none could solve the rift between desktop Flash and low power devices flash.
Jobs saying that Flash won't make it on the iPhone was the equivalent of announcing that the iPhone wouldn't use Intel chips, it was just putting a stake on a dead body so everyone could stop trying to revive it.
1) it offered full web browser experience. No one had done this in a phone yet. They also banned flash from day 1 and favoured development using standard web technologies. The side benefit from all of this is that the data demands crippled our cellular networks and forced major infrastructure upgrades :)
2) Apple took control out of the carriers hands. By standardizing on the web, no more special+favoured applications! Just load a web page :)
Apple didn’t standardize anything on the web, nor followed standards.
What Apple wanted (and achieved) was to push their App Store to control everything and get that 30% of sales on top.
Even to this day Safari does not support standards that other browsers do. And, of course, they don’t allow other browsers to run on iOS.
That changed later, and clearly Apple enjoys the 30% now, but the grandparent comment is 100% accurate, and your first three sentences are 100% false.
The fourth statement is accurate, though!
"Apple introduced the App Store on July 10, 2008 with 500 apps"
Apple's Flash restrictions were published in draft form in April 2010.
And justified by Steve Jobs that same month:
They were not. Apple was selling a browser in a phone which was a new concept for normal customers.
Blackberries were a thing back then and the iPhone killed them because of this.
Mobile Safari was certainly a lot better than browsers on the other phones though. And a lack of carrier garbage and interference on updates was also nice.
If apple had rolled out support for flash, the native app boom probably would have looked a lot different as company’s wouldn’t have felt as much pressure to modernize their whole customer facing digital strategy.
How was this not anticompetitive?
All of the major consoles since the NES (except for early revisions of the Genesis) have used technical means to restrict publication of games, and there has been no antitrust action on that. Nintendo was in a price fixing lawsuit and settled that with coupons for games with the Nintendo seal of quality.
If that's not subject to antitrust enforcement, why would the Apple app store criteria be?
Also, the US FTC threatened to investigate Apple over the "no third-party tools" thing they imposed on developers alongside "Thoughts on Flash". That's why they never followed through and removed it from their App Store guidelines.
So there is a limit - somewhere between "technical lockouts" and "we won't approve things made with third-party tools".
I did not like flash on Android, but I was happy to have it available when things were still transitioning away from it.
I was a Blackberry user at the time and the best hope for a standard website was that it had some watered down "mobile website" with the same important info because nearly every local business that had a website with hours/location/contact info had it done in flash.
Apple's decision was a major factor, along with HTML5 finally being supported by browsers with native functionality for animations and video support that had vastly superior performance. In the next 4 years, mobile took off like crazy beyond anyone's expectations and by the time the legendary iPhone 4 was released, Flash was at the beginning of the end.
It did work sometimes though, and it was great when it did. The Wii—while not portable—also supported an (outdated) version of Flash that I recall working quite well. There were even some Flash games explicitly designed to be used with the Wii Remote (although they couldn't really do anything special, they only had access to the IR pointer).
Which point do you mean? 2007 or 2010? Flash was more popular than it had ever been when the iPhone was released, and the iPhone had been without Flash for three years when Jobs wrote his letter.
Apple might not have aimed the gun, but they pulled the trigger.
The rest, as happened many times, followed Apple.
The reasons for banning flash were totally on point.
Not sure what came of that. I will probably need to google more
People don't realise how liberating and easy the multimedia of the flash years were. You could literally make a animated film and show it globally in an hour.
Nothing comes close, still.
Maybe we'll get a Web Assembly flash tool, when we all have 8Ghz PCs.
I feel like the modern creativity has been channeled into YouTube, IG, and TikTok. Not as much interactive content, unfortunately.
Children online during that era were not just staring into YouTube videos served up by the algorithm they were clicking around Flash compilation sites with animations, games etc and many would eventually pirate a copy of Flash.
The beauty of the tool, especially in the AS2 era was you could open it up and start animating straight away but then to add sounds or loops you had to add little bits of code into the timeline. This was a perfect way for many to start dabbling with and understanding coding.
Lots and lots and lots.
If you’d spent time back then looking at new submissions to the Newgrounds Flash Portal, you’d have seen how true that was.
I knew a guy who became a professional 3D animator, and Flash was what got him into animation in the first place.
It was bigger than you think. YouTube is not the same.
Video production is a marketable skill, sure, but in my opinion a more boring, less expressive, less creative one.
Flash opened up digital experience creation for a multitude of people of all ages - th emost interactively interesting web rode off the back of Flash for a good decade and more.
Personally I never much liked Flash, and only resorted to it for things that were out of reach of my meagre capabilities, adding to HTML etc.
HTML+SVG+CSS+JS+Canvas+WegGL+... can do all the things, but there's no good and simple to use editor.
For pure animations I recently found Synfig, which to me has a steeper learning curve and misses the interactivity Flash provided.
In a way similar to the missing replacement of Delphi in the Web - simple tools for creating quite acceptable results quickly.
All the tools I found till today either produces only crap, which falls apart quickly or one has to make it a real project with proper coding and everything.
Thus folks in their adolescence got used to the tool and then got stuck and some later paid ...
I don't want to know how many Flash games were made on copies of questionable legality ;)
It was a flop, but they did try.
The closest thing I know is Oracle Apex, which has its flaws, lock-in and costs $$$$ but some results I saw are quite nice and as a user hard to identify as being created by such a tool.
Additionally, it was amazing that whatever you created in Flash could be exported and published to the web relatively easily. And it would look the same on all browsers. This was during the time where browser CSS support was abysmal and most web developers would spend their time exporting 9-slice images from Photoshop to be used as background images in tables to get rounded corners.
Furthermore, all of these are privately controlled platforms. The notion of a web presence on today's web is dominated by behemoth social sites and their EULAs. Even if we create interesting interactive things, they're excluded from the primary modes of engagement.
Flash needed to move aside so that the web standards could advance to the point where Flash was no longer necessary.
Not only did Flash need to die, but all browser plug ins: Flash, Java Applets, ActiveX and Silverlight.
Now we have powerful browsers, web standards, and you can do amazing things in them, confident that it works on any client without 3rd party extensions.
Flash (and Applets, ActiveX) served a short term purpose. Silverlight was an attempt, too late, to capture Flash's success.
Also note that Flash was usable standalone, and in addition to having much better development tools, giving someone a .swf file was much lighter weight than the Electron stuff. Moreover, Flash had an onramp for non-programmers which is pretty sorely lacking in the web world.
I'll agree that modern web standards can do everything that Flash did, but only in that "Turing Complete" kind of way where you can do everything with Brainfuck but you'd be happier in a different languge.
Back then, even though Flash was popular, I could foresee that it wasn't going to be around forever. Even before Steve Jobs announcement.
I understand all the sugar coated addictiveness for developers that you point out. It is indeed very sweet. But if you find yourself (or your end user) in an environment where Flash is not supported, or treated as a 2nd class citizen, then this can be a deal killer. Even a business killer. This is a major DANGER sign that many Flash developers ignore or were unaware of.
LOL, I think you mean: on Chrome (and if we're lucky, Firefox).
It’s also not like Flash was perfect at this: I ran into compatibility issues where something worked on Windows but not macOS or vice versa, and the frictional cost of having an unstable, primitive IDE was significant — especially since Adobe typically ignored bug reports until the next major release, at which point they’d tell you that you should drop $500 for the privilege of seeing whether they’d fixed it.
This comment section is about Flash. We're only talking about "cutting edge browser features." Otherwise, I agree.
Now modern browsers that are self updating is a huge help.
In practice, I rarely have any trouble in recent years with browser compatibility.
Get the point you are making, but it was more that Linux was a 2nd class citizen for Adobe than flash was a 2nd class citizen on linux (though people would have still wanted a free/libre alternative even if Adobe fully supported linux)
You can only see Flash as a good thing if you're using one of the platforms that are more equal than others. (And I include Java Applets, ActiveX, and Silverlight along with Flash.)
So you have this combination where Flash Player was costing Adobe lots of money to maintain, while not contributing too much to the topline; and on top of it, we made a prototype of CSS regions (basically reflowing text inside/outside arbitrary shapes) that was met with a lot of initial enthusiasm by all browser vendors/ they all seemed eager to adopt it. So the executive that was in charge of the digital media division just saw the opportunity to cut huge costs, and put Flash on life support basically overnight - by basically outsourcing the runtime work to the browser community, and contributing as Adobe in the points where we felt it was essential. There's stuff that I'm not sure I can tell even now even though it's old news... but let's just say that there were very big industry players that were taken by surprise and would've otherwise supported Flash; the death of Flash on mobile and on the web at that point was far from being a foregone conclusion (in fact, Flash support was being touted at the time by Samsung as one of the reasons why Android is better than iOS).
Now - don't get me wrong, I was not in any way among the decision makers. But I was in the development team - both for Flash player and for the prototype that I believe sealed Flash's fate. I may be wrong; but OTOH there's a good chance my recollection of the events is far closer to the truth than the random internet narrative.
Apple made a similar decision in the late 90s when they didn't ship a floppy drive in the iMac. Perhaps they hastened its demise, but not by much.
To be fair, Apple's influence was far greater in the smart phone space than the PC space.
If you're interested here's a blogpost from Adobe's developer relations person at the time of Flash on Mobile's demise http://www.mikechambers.com/blog/2011/11/11/clarifications-o...
Apple never really loved the web. Web animation and gaming are still behind what you could very easily do with flash, webrtc+video are horrible battery drains etc. Ironic, considering that one of the reasons that Jobs bashed flash was that it drained the battery. And that he replaced "not open" flash games with his own Closed Platform and App Store garden. The whole reasoning in that letter reeks of hypocrisy , it should be obvious in retrospect.
On top of that , modern "HTML sites" are much worse performance-wise than the equivalent flash. Abandon flash : sure, it's old and unsafe and nobody wants browser plugins. But make sure you have a decent alternative first. We don't.
Let's say you control a major internet browser (or have good knowledge to believe that your iPhone's Safari will become a major internet browser) and specifically exclude support for a competitor's platform (forcing people to the App Store/Apple ecosystem to create similar experiences). On its face, and outside the technical considerations of Flash as a platform, it seems like a move to directly subsume a huge market share.
I'm surprised this angle hasn't gotten more discussion. Personally, I think the bar for anti-trust in tech is very, very high and this doesn't meet it (and neither would current shenanigans du jour) but interested to hear what others think, or how they think it's different. It's kind of nuanced since it's more like one vendor not developing support for a competitor, rather than impeding them after-the-fact.
I think it would have been different if they were allowing other plug-ins to work on mobile Safari. They weren't anti Adobe, they were anti plugins. Flash just happened to be the most visible one in addition to being the most egregious example of what can go wrong with plugins.
Disallowing a technology that is controlled by one company in favor of a technology that is standardized and can be and is implemented by many companies? I can't see how you even begin to think this is anti-competitive.
(I do think that there's a lot problematic about apple's lockdown approach to devices. I think you can make an argument that the whole approach of device lockdown is problematic and should face some regulation. But picking out the flash deprecation seems like an odd way to highlight that.)
whether it's an abuse of monopoly power or an anti-trust violation is open for debate (particularly, how you define markets for analytical purposes).
For example cars nowadays have computerised entertainment systems. If your a car manufacturer and I bring out a service for use in cars with a free client app, should I be able to sue you if you don't put my client app in your car and integrate it into your infotainment systems at no cost to me? If I bring out a new proprietary internet technology, should I be able to sue all the phone manufacturers that don't build in support for it into their phones at their own expense?
I'm having difficulty seeing how this ability for companies to unilaterally impose obligations on other companies, enforceable on anti-trust grounds is practical.
No. Apple STILL has insane restrictions on creating your own HTML rendering engine. That is, neither Mozilla, nor Google, nor Microsoft can ship their browsers on iOS. Apple is still getting away with it, and that's probably because they aren't seen as a monopoly by regulators.
I would propose that any serious web app development team grouped Flash on the client in the same "basket of deplorables" as the JRE, ActiveX and Silverlight long before 2010. Just a headache waiting to cause you compatibility support calls. Client plugins were to be avoided at all costs if possible.
I agree with other comments that Apple was killing flash only in the sense of putting it out of its misery - like a bullet for lame horse - and only waited as long as it did for compatibility reasons.
However, when Adobe did finally get Flash working on Android (barely) it required 1GB of RAM and a 1Ghz processor. The original iPhone had 128Mb RAM and a 400Mhz processor. It wasn’t until five years later that the first iPhone had those specks.
Not to mention that Adobe said they would have Flash working in the Motorola Xoom on day 1. It wasn’t. Leaving the Xoom in the embarrassing position where you couldn’t view the Xoom home page on the Xoom.
OTOH, the Wii's web browser supported Flash and it had only 88 MB of RAM, so I'm not sure what was going on with Android.
It was a big deal when Steve made the call, but I'm not sure the call was a random act of Steve as much as, Flash was hardly in great shape.
It was home to a lot of content you couldn't find elsewhere, but Apple not supporting flash didn't happen in a vacuum.
The idea of one man, one machine. A computer that is personal -- like a toothbrush is personal.
It is irony that IBM used the term on its microcomputer.
That said, the iPhone was in a particularly unique position to push through a change like this and force websites to adapt. iPhones were becoming popular with upper management so a website that didn't work for them was actually considered an issue worth addressing.
Nowadays Chrome would also have a good chance of forcing similar changes.
Just think about what might have happened though. Suppose the iPhone would have supported Flash, and supported it without performance or battery issues (a big if!). This would have allowed rich application development with a very mature toolchain for the pre-app store iPhone. How different things might have played out. That whole first wave of iPhone apps and games (air hockey, light saber, flash light, angry birds)? Flash!
Who knows what the impact might have been on the App Store and the demise of Flash.
I think Mozilla's incentives for minimizing Flash were relatively aligned with their principles: Flash is a proprietary technology from a single company, not an open standard. I also think that's a valid criticism, and why a lot of other tech enthusiasts didn't mind seeing Flash die, either.
I largely agree with you though—Flash was a good technology, and the clear line in the sand it created between "web pages as documents" and "interactive content" had a lot of advantages. I also don't think it was any more bloated than modern HTML web apps, although it felt heavier at the time due to our more limited hardware capabilities.
I feel like a lot of people have a very rosy "nothing was wrong" view of Flash that I don't share. Jobs' letter was pretty welcome to anyone using a Mac, for one.
The big win was avoiding all of the crashes: every browser raced to move Flash out of the browser process because it was so common for Flash to crash and take the browser with it, and many of those were exploitable.
The problem is that having made things like JS, the DOM, CSS, etc. so efficient just increased the threshold before performance forces developers to notice inefficiencies but that's a pretty portable problem, too — we had to force Flash developers to test on older systems with slower connections the same way.
2006-2009: Gnash, hardly anything works, 2010: Youtube introduced html5 video
So technical availability was issue just in 2006-2007. Yes, I remembered flash was ads so without plugin it was ads free experience before AdBlock. I liked it a lot. The only issue was "copy to clipboard" buttons, but could work around.
I can't seem to figure out when Linux support started, but the archived version of Flash Player 7 on Adobe's site appear to include builds for Linux (as well as Solaris!). The earliest Linux installer in the download has a file timestamp of May 20, 2004.
There was a flash player for linux, I want to say it corresponded with about version 5 but don't trust me on that. It never really got any updates except perhaps the occasional critical security patch. Meanwhile, the Linux desktop moved on and the plugin got harder and harder to keep going. Things like sound required jumping through a few (extra) hoops to make work, I think it expected OSS but that faded out to be replaced with ALSA, so you had to add some thing to get backward compatibility for that, and it would tend to monopolise the whole sound device.
Meanwhile, Linux became more and more 64 bit, but the flash plugin didn't. So you either had to run a 32-bit browser (because plugins were a library the browser loaded), or use some crazy proxy plugin thing (nspluginwrapper) that someone made that was 64 bit at one end and 32 bit at the other.
Also meanwhile, other platforms got Flash player 6, and 7, and beyond, and still Linux was stuck on 5 or whatever. Then Mike Melanson came along and spent some serious time and energy re-porting Flash player to Linux and made a lot of people very happy because now we had AV sync and no 32-64 bit bodges and fewer and fewer crashes and so on.
After a few years(?) he stopped, not sure why, and things slowed down. But by then it felt like flash was starting its decline, and what we had worked well enough, and Adobe seemed to be keeping basic updates happening anyway.
Now more and more I forget about installing `flashplugin-installer` or whatever Ubuntu calls it these days and don't notice that it's not there.
Note, aside from Mike's name, this is totally from memory so significant details may be wrong. Go read Mike's archived blog, it'll probably give you a much more detailed insight. Might do that myself.
 https://web.archive.org/web/20120903074409/http://blogs.adob... - note that this is an arbitrary time snapshot that I picked at random.
 https://www.linux.com/news/nspluginwrapper-cross-architectur... - total madness. But it (mostly sorta) worked.
It absolutely did not. It was a huge battery drain and super unintuitive to navigate with touch.
Arguably Flash never worked perfectly fine anywhere it ran. It was notorious for high CPU loads and security vulnerabilities. Putting it on a power-constrained mobile phone platform just emphasized these shortcomings.
Developers wanting full scripting support; this is what lead to all the security problems.
Advertisers that turned an amazing animation system into a thing everyone hated.
Macromedia and then (to a much larger degree) Adobe that took every possible wrong turn imaginable. What started as a system that allowed interactive vector animation to play from a floppy (native player AND media) turned into a bloated mess with features no one wanted or people wanted for only selfish reasons.
Flash ended up with a closed-source economic model of "Maintain a bunch of forks of our engine for every platform, hope people keep paying us for the dev tools" and it became a losing gamble.
Flash didn't work "perfectly fine" on Android - basically every product shipped with Flash was vulnerable at almost any point in time.
This is absolutely false. It was not fine, much less "perfectly fine".
It was slow to touch respond, super laggy. You couldn't hover. Scrolling and tapping wasn't supported right. It broke browser navigation when you weren't expecting it.
Flash never worked on Android fully.
I think it might have gotten better in time, particularly as mobile hardware itself got more powerful, and creators designed flash apps with mobile interfaces in mind.
TBF, not much did. Android was pretty rough until v4.
When Flash was deprecated for Android the official advice from Google was to send an HLS stream instead, but those caused some variants of the Galaxy S3 (the biggest selling handset at the time) to hard lock and the user would have to pull the battery.
Let's not pretend that early instability was all Flash's fault.