Hacker News new | past | comments | ask | show | jobs | submit login
Adobe to remove Flash Player from web site after December 2020 (adobe.com)
906 points by michaelhoffman 4 months ago | hide | past | favorite | 501 comments

All: Note that this thread has lots more comments than appear on this page. Click 'More' at the bottom to see the rest.

Newgrounds has done a lot of work on preserving old Flash content. Some standouts are their own Flash player and an SWF to MP4 converter, but what I find most interesting is Ruffle.

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.




Roadmap: https://github.com/ruffle-rs/ruffle/wiki/Roadmap

Demo: http://ruffle-rs.s3-website-us-west-1.amazonaws.com/builds/w...

This guy is trying to emulate x86 in the browser and run the actual Flash player within that:


Here is 'this guy' :-). Feel free to drop any question on Twitter. https://twitter.com/alexpignotti

Hello! Big props for doing that!

Is any of this open source?

Not at this stage, this may chance as the business evolves

Just posted a new article about our tech, first demo of x86 python running in the browser is included (scroll to the bottom): https://news.ycombinator.com/item?id=23538856

From the post:

    > 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.
And of course, the WebAssembly is then JIT compiled right back to x86, so it's actually three levels of JIT compilation. It's a wonder this runs with any acceptable performance at all.

I'm looking forward to seeing this as a dependency of any future Electron app too; Moore's law must be brought to use.

Some x86s further JIT compile x86 instructions to micro-operations.

(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)

> actually three levels of JIT compilation.

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?

To be clear, I think this is an amazing project and I very much appreciate this effort to preserve legacy software. When I say it is a wonder that this runs with acceptable performance, that's also to be taken as a compliment to the developers. :)

Replace Flash player with little USB-powered opium dispensers?

The moment app developers manage to do that we are going to see some crazy marketing wars

Here's a talk by the team as well: https://www.youtube.com/watch?v=7JUs4c99-mo

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.

It really sounds awesome, but I can't just download it and play with it.

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

Today I've seen win95 emulated on browser on x86 - is it the same library? I don't have link handy but if win95 runs fine then flash should as well.

I don't really understand why this isn't the migration path for any legacy tech... Just containerize and emulate it. If there is a security problem, it's only inside your container. No big deal.

It's not always possible to get that to work, depending on the tech. In the case of Flash one of the most annoying and difficult parts is that it requires access to the rest of the world on the internet to function properly a lot of the time. It's because of that lack of security that it was so useful and made a lot of good things possible back then (and also a lot of bad things too).

Is that a function of flash, or how the creator using Flash implements with it?

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.

There are a few features of Flash that require either filesystem access or TCP/UDP sockets, which we are never going to be able to support while interoperating with native Flash Player. We can at least hypothetically emulate RTMP and some peer-to-peer functionality by wrapping it in WebSockets or WebRTC, but that only allows communication with Ruffle-aware servers and Ruffle peers (or a patched version of Lightspark). Local Shared Objects can be emulated with cookies but we cannot share LSOs with Flash Player, which stored everything in a separate Flash-specific cookie jar. Flash also had it's own cross-domain policy mechanism, which we could technically support with the extension, but for security reasons we're probably going to just use standard CORS fetches and hope any websites that need it are updated or proxied to support it.

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.

"The vast majority of Flash content that people actually want to use is either standalone movies or static websites"

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.

Exactly. The vast, vast, majority of Flash content that people actually want to use is not standalone movies or static websites, but flash games.

In flash lingo aren't games just interactive movies? I remember being quite confused when I discovered I could play pirated flash games on my video player software.

I mean, to the extent that Tetris, Pacman, or Super Mario is an interactive movie, sure? I guess technically they're a series of animations which change (very quickly) when you press a button. But most people would call those games.

I mean that they are movies in terms of what Flash call movies. Flash covers a huge number of features (networking, interactivity, animation, etc.) I believe that Flash games are implemented with the functionalities intended for interactive movies.

That's included in the phrase "standalone movies". I'm so used to working with SWFs that I call all of them "movies" even if they're entirely a single frame with everything handled in ActionScript.

If we are talking about preservation, we would most likely want to be able to preserve everything made using Flash, rather than pick people who used Flash "correctly" and preserve only their work.

I have a hard time understanding why network access would be so annoying and difficult. It should be easy for an emulator to implement user-adjustable restrictions on that.

Flash used some unusual methods of authorizing network access (like crossdomain.xml [1]) which are significantly different from standardized HTTP cross-domain policies, and which can authorize some forms of network activity which are never otherwise permitted to web content (like connecting to arbitrary ports and transmitting arbitrary data, or sending HTTP requests with forged headers).

[1]: https://www.adobe.com/devnet/articles/crossdomain_policy_fil...

Worst case, you can use a helper server... The flash content tries to do an HTTP request, the container intercepts that, sends it to a proxy somewhere on the web, which does the request and pipes the response back.

Sure, someone has to run that proxy, but I'm sure flash games sites wouldn't have trouble doing so.

Flash sockets don't transport HTTP requests. You might be able to tunnel them through WebSockets, but that'd turn the "helper server" into what would amount to an open network proxy -- it'd be trivial to abuse.

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.

No need to make it an open server. For applications that require a limited number of resources, you can implement a whitelist--only allow connections to certain IPs or addresses. Inspect the connections if you have to. For everything else? Make the user run it locally, have your runtime try to connect to a local instance before connecting to a remote instance.

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.

The worst part of that preservation problem is, that as a DRM measure, some games will "phone home" to download a swf component that implements some critical path of the game. If the server goes down, those games are dead in the water unless you can reimplement the missing pieces.

Why was this ever allowed to be a browser plugin

Because people wanted it and nobody thought too hard about it at the time.

because the web sucked in terms of functionality then, especially as an application delivery medium.

There is a parallel universe somewhere where Javascript was designed as a Turing incomplete basic interactivity template and now node runs ECMAFlash2019

Ain't this because crosdsomain.xml came before CORS?

Partially yes. Partially because the developers at Adobe didn't fully think through the implications of their "XML sockets".

I'm sure there's a more scientific explanation involving cognitive bias and rationality and so on, but all I know is that few phrases send more chills down more spines of experienced developers than "it should be easy, why don't you just..." It's up there with "ship it now, we'll fix it later" and "if we can't agree which way to go, let's just make it an option in the prefs" on the Mount Rushmore of famous last words in software development. I've been burned by it so many times, I literally have to catch myself when I hear those words coming out of my mouth (or anyone's mouth, but I can only be responsible for myself), which they still do sometimes, because I'm just as subject to human nature and cognitive bias as anyone.

Hey now, the preferences panels of yore were glorious outposts of customization and power-user-centric software. Computing was way more fun back then. Don't lump anti-option sentiment in with those other, far more worrisome things.

That approach to preferences tends to cause combinatorial explosions in your QA department. You can do it if you're careful, but being careful is the opposite of the "then just make it a preference" approach.

I'm not against preferences and lots of options in general when appropriate, I just don't think they're zero-cost. It's like the surprisingly huge difference between a service being "free" vs. "almost free". But anecdotally (I know...) when fundamental differences between developers are resolved as, "let's just do both and make it an option", it's either people assuming that allowing both behaviors either has no cost, or it's a failure to resolve differences that inflicts one of the thousand tiny cuts that will someday overwhelm the code base.

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.

My /favorite/ is "ship it now, we'll fix it later" or "do it this way now and we will come back and do the better way later" and then never going back.

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.

"why don't you just" is called out in Evan's "The hard parts of open source" [0] talk.

He goes into some of the reasons it's a bad phrase and some of the problems behind it. I'd recommend the talk.

[0]: https://www.youtube.com/watch?v=o_4EX4dPppA

Well, "why not just..." is only bad if it's rhetorical; sometimes it's a genuine question: "why not just?"; there usually is a reason, and it's important to find out what that reason is, rather than repeat someone else's mistakes.

But this is right question. It should be easy to replace part of the binary, it should be easy to run several programs at the same time, it should be easy to type on keyboard so computer executes commands.

These are insanely hard problems yet they are solved because someone asked and someone tried.

And what adjustment should you do when it makes a request to, for example, ` https://mms.cnn.com/aaldXQhJ0VycCFqfnQhcGp1fkojSDwxbG5ueiJ5I... `?

Why should you need to do any adjustment? Web browsers allow such requests by default.

User-adjustable restrictions work for only a small fraction of the population. That fraction gets smaller the more fine-grained you make them.

I don’t see the problem here, just have reasonable defaults. (e.g. port 80,443, perhaps deny private networks by default)

Oh, it is easy - just bundle server together with application. The same way we bundle static dependencies (resource files).

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.

So technically it is easy, but as society we select other priorities. Personal gain, time to deploy versus stable platform and culture preservation. It is not impossible - early internet was non profit only.

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.

Because re-implementing Flash is an enormous amount of work. Back when Flash was popular there were numerous attempts to reimplement it for use on Linux. None of them really got beyond the proof of concept stage.

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.

As far as I remember it was difficult to re-implement because the Flash player was backwards compatible with all Flash versions. And this was also why there were so many security issues.

I believe it was mainly legal issues that the community, with their obsession with the purity of open-source, didn't want to accept contributions from those who had done any RE'ing of the official implementation.

The SWF format itself is tiny in comparison to the web standards like HTML, JS, or CSS.

I spent a bit of time trying to figure out why previous reimplementation efforts didn't get anywhere. Here's where they get stuck

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.

Your reply to this comment is dead for some reason. As a response: I really, really wish Mozilla hadn't abandoned Shumway. I also wish they'd written it as a standalone translator instead of making it depends on Firefox. The worst part is that I've got several flash sites I used to visit that are still around, but now can't be used because even though they worked with Shumway, Shumway itself no longer works with Firefox.

I was shadowbanned by dang for expressing disappointment in some HN commenter's defense of coronavirus conspiracy videos. I really wish there were a way to delete my account and all my posts, but this is apparently the best they can do.

also, you may be interested in the openflash project


and the shuobject api


Open-Flash author here. Open-Flash was originally intended to be a fork of Shumway, but it ultimately became a fully separate project intended to provided modular libraries to handle SWF files. I had less time to push the project forward in the last few months.

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.

This is a very interesting overview, thanks for sharing

I forgot to mention the myriad ways that flash would interact with the browser and the operating system, with swfs often designed to interact with browser javascript in particular, in platform and browser specific ways. the various network protocols, RTMP streaming, prioprietary video codecs, ALPHA MASKED video, the CSS parser and styling engine! the API has everything but the kitchen sink. You can have a look at the sorts of challenges you're in for by looking at Shumway's issues register here:


> nobody is creating new ones.

I sure wish that were true, but it's almost certainly not.

Container escape vulnerabilities are always a concern. A nonzero amount of those have occurred.

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.

Because everyone wanted flash gone. If it was possible to just run it as a wasm blob at the time we would end up with a bunch of websites still using flash for menus and video. Now that it has been dead for years we can bring it back for the stuff that can't be ported like games.

Flash has been kept alive via AOT compilation to native code.

> Just containerize and emulate it.

Not trivial. You can put every assembly instruction inside its own container, yet still cause a huge security fail.

Ruffle is great! I just used it the other day to convert a flash website with a service manual for my outboard engine into a nice pdf. Each page was a swf file, so I only had to wget them all, convert them with ruffle, and at last convert the images into a complete pdf.

There's another flash preservation project called Flashpoint. It has it's own flash emulator, and a database of popular flash games/animations


I hope this gets to whoever was in the room when Charlie Rose's show [1] switched thousands of hours of content over to Flash back when it probably seemed like a good idea - a window of perhaps a year or two as Real player faded out and video streaming over the top was finally a little stable if your link was over 2-300kbps.

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] https://charlierose.com/

Poki is also doing something similar together with Nitrome. They use technology from the guys of Away (the ones that initially brought 3D to flash). The product is called AwayFL.


I think this is a useful cautionary tale.

Well that just ruffles my Jimmies... D: I'm sorry.

Flash became popular because of 2 things:

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.

1. If Macromedia was still the author of Flash/Dreamweaver/Fireworks through the html5 transition days, I imagine all of those products would still be providing big benefits to web content creators. I genuinely believe that Adobe never understood the value of these products and the communities that formed around them. Adobe as a company didn't know how to foster and grow this half developer / half designer user base.

Adobe failed exactly same way as tons of other proprietary software developers. Instead of embracing open source and leading the industry standard they wanted to keep tight control over everything: standard, runtime and toolset.

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.

In Adobe's defense, they kinda did try that: AS3 was supposed to become JS2/ES4 and they also released a bunch of somewhat-useful documentation on the SWF file format. They even released AVM2 as free software (called "Tamarin") with the idea that Firefox would replace SpiderMonkey with it. The web community stuck it's nose up at ES4 and the SWF documentation was kind of half-assed.

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".

That's really good points on their open source activity. How they failed with Alchemy and Unity / Unreal integration is another good story.

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.

Who really killed flash, was Steve Jobs with his decision that flash gets kicked out of the IPad.

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.

They could have overshadowed the documents web. No need to extend text/html, let user agent run application/flash.

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.

> and the communities that formed around them

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 now that we'll soon be moving back to opaque binary blobs with WASM, what exactly have we gained?

I know browsers have appeared to make enormous technical progress with all the new features - until you read stuff like this and realize most of it was already possible 20 years ago via Flash (Type-safe javascript as well, btw) - and partially in better quality and with less programming knowledge required than now.

So did we eventually come full circle?

Everything old is new again, and the more things change, the more they stay the same.

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.

> 1/ Its IDE which made creating creative and interactive content mixing video/vector graphics sounds and code easier

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.

I'd say the difference in HyperCard and Visual Basic is that they also define their runtime environment. The IDE can grow with the runtime. Writing tooling against a vast runtime like the web is much more difficult and daunting.

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.

Your common people back then were far more computer-literate than most of career programmers today. Requirements for the entry into profession is so much lower from any point of view: time, difficulty and cost.

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.

> Your common people back then were far more computer-literate than most of career programmers today.

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.

I second this. Flash, HyperCard, Dreamweaver, VisualBasic 6 are all the tools I (along with my classmates) played with during high school before any official cs/engineering training.

Plus life is so much easier when you don’t have to worry about i18n, encryption of any kind, HiDPI displays, Unicode of any sort, really any of dozens of things that modern users expect to just work.

Sometimes you had. Timezones, encryption for sensitive places, zillions of European standards (one PER language), and so on.

VB6 had Unicode throughout, and even some HiDPI stuff (e.g. all widgets were measured in "twips", a DPI-independent unit).

Because that kind of tooling doesn't go along with UNIX FOSS CLI culture, so only the ones comfortable in the graphical eco-systems of the like of Apple, Google, Microsoft, Adobe, Qt masters and friends, get to enjoy them.

Likewise I rather spend my time in Unreal and Unity, than trying to feel superior while doing everything from scratch with SDL.

Developers decided that catering to text editor users was the only way forward, which killed most prospects of good authoring tools.

On point 2: socket programming hasn't caught up to the same level of performance as Flash had. Try sending or receiving gigabits per second with WebSockets. In my own tests last year on reasonably modern hardware with a 10Gbps Intel NIC, Chrome was the worst performer (around 3Gbps before the CPU was completely saturated), and Edge was the best at around 5.5Gbps. I didn't compare with Flash last year to be fair, but historically it was much better. A native app on the same hardware was generating 10Gbps over the network at <20% CPU usage.

This is the kind of stuff I find baffling. We killed off Flash, celebrated, and said that xyz will do the same thing as Flash did. Several years later xyz does not do what Flash did. We don't even have all the pieces to put the puzzle together, let alone have them come in one package.

I really hate that I can't do UDP properly in the browser. I've seen so many examples of people effectively sending protobufs over webrtc data channels. It's kinda hilarious.

That should be some implentation issue as websocket is just a very thin layer above TCP and it should add only a small overhead.

I find it more likely to be a security or battery performance related tweak. Most things just aren't going to generate peek bandwidth from within a web browser. Network testing tools (including bandwidth/latency testing) belong as native apps, probably precisely for the low level, high bandwidth access.

Let's not forget that Flash was the backbone of the ad industry back in the day as it was leveraged to produce rich media in the form of banners and interactive ads.

And pop-ups, flashing distractions, ads with sound, and zero user control of tracking.

And now seemingly every site out there has dozens of popovers, subscribe to a mailing list (amazed those still exist and are somehow pushed more than ever), cookie permission requests, "Like and retweet us!" banners that slowly scroll from the side, "It looks like you could use some help" clippy style bullshit that choppily moves on screen, autoplaying videos that seem to autoplay no matter how many times you try to disable it and no matter how many times browser developers say "Okay, we finally blocked autoplaying videos for real this time!", 15 megabyte gifs littered throughout random articles just to catch your eye or to be hip and radical and show the writer is the bee's knees and knows what the kids like, scroll hijacking that only serves to make it choppy and physically painful to scroll, back button hijacking that involves filling your past 100 pages with the current page and sometimes getting caught in a refresh loop so it's impossible to move, endlessly loading bullshit content whenever you think you've scrolled to the bottom... I can go on.

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.

Everything you said is correct. I also find it remarkable that the web has always performed like total dogshit, no matter how fast my computer has gotten. 20+ years ago it was in large part due to bandwidth constraints. Then 10-15 years ago that was essentially solved, but they continued piling more and more crap into the browser, and now it's a fucking app platform, and instead of clean efficient native software, we're now shoehorning every goddamn thing into the browser through layers and layers of frameworks, abstrations and "transpiling" or whatever.

I detest the modern web, and I find myself using it less and less.

> Point 1: well there isn't really an equivalent

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[1] so that the artists could work on their own. And then I could render those animations with Pixi[3].

I agree an all-in-one solution would be much nicer but not sure there is a market for it.

[1] http://dragonbones.com/en/index.html

[2] https://pixijs.io/examples/#/plugin-dragonbones/eyetracking....

Wouldn't something like this work in a game engine that can export to Webassembly, like Godot?

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'm unsure whether this applies to Godot, but usually game engines come with a lot of unnecessary baggage. I think UE4 at its smallest was still something like 20 MB despite you not needing almost any of it. A 2D engine or renderer like PIXI.js makes more sense in these cases.

Good point, thanks for reminding me of these :)

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/

Yes, exactly.

For simple games or single animations Pixi is plenty. In fact Phaser.js is built on top of Pixi.

Phaser is not using Pixi since Phaser 3

Woops thanks for pointing that out.

Have you heard of Lottie?


Oh wow this looks great

Yeah, there are a few really good things that will soon be lost forever, for instance the classic National Lampoon "Rigging of a Ship" Flash movie. Also, I'm not sure, but I think the absolute Scott Adams classic story of how he passed as a-hole mission statement consultant "Ray Mebert" was posted in Flash at the San Jose Mercury News' site years ago. (This is literally live-action Dilbert trolling of teh Logitech exec tean that all think this guy is an idiot, but are afraid to say so because he was brought in by the CEO...) If exists on the net at all anymore, it's probably only at Archive.org.

What was the hotel sim called?

Went down the rabbit hole because of point 2 and ended up at some Chrome experiments. There is some amazing stuff like that out there. I can't believe there aren't more browser-based 3D games.

3. Compression. Since it's largely vector math it compressed pretty well, but that's also why it was CPU intensive.

Regarding point 1, I’m not super familiar with the flash IDE, but I would guess that the closest thing we have today are fantasy consoles like PICO-8 or TIC-80. Thinking about it, Scratch (scratch.mit.edu) also kind of fulfills the niche. Flash was obviously way more powerful, though.

If anyone knows anything current similar to the flash IDE, I’d be curious to hear about it.

I don't know if everyone here is familiar with this, but the decline of Flash began or was greatly influenced by Apple's decision to not let flash run on iPhones/iPads. Steve Jobs even wrote an open letter about it[1].


I think that's rewriting history a bit. The decline certainly didn't begin with Apple's decision. Apple saw where things were headed, and jumped on (an early) bandwagon. Everyone already hated and was avoiding flash at that point. I hope in a few years people don't start saying that Apple killed Flash, as I remember specifically that was not what happened at that time.

Sorry, that is precisely what happened.

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.

> Security complaints are a weak argument

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.

It is worth recalling that in the early fumblings of the phone market someone tried to get Flash running on Android. It didn't work out particularly well, and all the high value customers kept buying iPhones and browsing webpages.

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.

Adobe got Flash running on Android.

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.

> The iPhone wasn't powerful enough to play Flash and made Apple look weak

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 was too resource intensive to work on any mobile devices"

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)

AS2 was quite bad, things improved a lot in AS3 though

I heard so, too, thats why I directly started with AS3 back then ..

> The iPhone wasn't powerful enough to play Flash…

No, Flash Lite ran on significantly-less-powerful feature phones. (Remember, in the early days of the iPhone, Flash was desktop-only.[1])

> 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.

[1] 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 spent a year of my life trying to get Flash Lite working well as a browser plugin on an unreleased Palm phone around 2007-2008. Flash Lite wasn't anywhere ready for handling the Internet Flash content of the day; it performed terribly on the chips that mobile phones had then and wasn't a well behaved plugin. This was when the Intel XScale and early TI OMAP SOCs were the primary choice for mobile phones.

I'd love to have someone with firsthand knowledge fill me in here, but:

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.

Roughly nothing used Flash Lite, outside of a few weird embedded use cases like the Chumby. Web content was almost exclusively full-on Flash.

> Roughly nothing used Flash Lite, outside of a few weird embedded use cases like the Chumby.

I recall it a bit differently. By December 2006, Adobe claimed that Flash Lite had shipped on 220 million devices[1].

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.

[1] https://en.wikipedia.org/wiki/Adobe_Flash_Lite

I remember installing Opera and Flash Lite in my Windows Mobile smartphone and it being able to run Flash content. Was it a sluggish hand warmer? Sure, but then it was a 300 MHz TI OMAP (overclocked, of course!) and at most 128 MB of RAM, probably even less.

Interesting! I stand corrected about it not working in mobile browsers, thank you.

Flash Lite was commonly used in Japenese domestic web for feature phone until around ~2012. Most phones had supported Flash Lite.

Hrm... According to Wired, Jobs did instigate:

"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."

- https://www.wired.com/2010/06/adobe-releases-flash-player-10...

> According to Wired, Jobs did instigate:

"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.

That's merely editorial flavor, nothing in the article presents facts different from those already brought into this thread.

It was a calculated sucker punch at a piece of software which was not designed with mobile or touch experiences in mind and was so tremendously buggy and unstable that it caused all sorts of issues on normal desktop browsers. A lot of people used Flash at the time, but a lot of people were also extremely frustrated with Adobe's apparent disinterest in making it a truly great piece of software. Steve Jobs wanted that mess kept as far away from Apple's shiny new platform as possible -- a completely justifiable stance.

Yep. I remember jailbreaking the original iPhone (or maybe the 3G) and installing some version of Flash on it for games. My friends all had Sony-Ericssons with some type of mobile Flash player. On the iPhone, Flash content sucked the battery to 0% in about 30 minutes, the phone would get super hot.

Edit: I guess the project to run Flash Lite on Sony-Ericsson was called Project Capuchin? https://www.youtube.com/watch?v=kn5He1Wxl-Q

I was a Flash developer at the time and this is exactly what happened. Flash development went from being highly in demand and the highest paying to basically dead with this announcement. I felt that if the rug could be pulled out that quickly, I'd just focus on design and that's where I've been ever since.

Sounds just like all the current front-end stack stuff, just faster that time. If you focus on the new shiny (even if you don't recognize it as the new shiny) you're susceptible to a newer shinier obsoleting some of your skill set.

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.

Flash was a resource hog in any platform. And worse: It made resource intensive something that should have been very efficient from the start.

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.

Primarily because it was DRMed video and because hardware level DRM hadn't been developed yet.

Its a lot easier for Apple to fix security issues within the Apple ecosystem than it is for Apple to pressure Adobe to fix the problem, port it over to the suite iOS/iPadOS/macOS, and distribute the fix to whoever needs it, as well as communicating the gravity of the issue, post mortem, adjacent attack vectors and surface area, etc.

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.

I hadn't used flash on linux, my primary environment at work and home, for years at that point. Flash was already hated and widely criticized in developer circles. It was already on the way out. Apple jumped on the trend early, but they didn't start it.

I didn't think the developers' community had the power to get rid of flash at the time. Too many people wanted it. When Apple made that announcement I wasn't even sure it would work out for them.

Performance was the big issue. Not just on Apple devices but on all devices. Same laptop running Windows, same video from Youtube if you play and pause on both (SWF and HTML). The Flash video will keep the fans running at high speed. Remember the first few phones with Flash could play through a 2 hour movie without a charger. To optimize Flash, Adobe needed to cut off compatibility and they knew if they do that then why would anyone continue with Flash when HTML/JS was getting feature parity.

Did Flash video ever get to hardware accelerated video? Because what eventually made these videos power efficient is that we now have dedicated hardware for it. It's not perfect though. Even today one of the most common browser issues you can run into is hardware acceleration.

No, because the primary use case was where the video was encrypted and you would have to unencrypt it to pass to the hardware acceleration.

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.

“Almost all websites used flash video” que? Most websites don’t use video at all, neither then or now.

Flash wasn't just for video, it was for animated ads, or whole sites because it made cool transitions easy. I remember dumping flash sites others had made in the bin because they were not seo friendly (completely rendered as images, no actual text). And it was everywhere.

Think this is pretty pedantic. A valid reading of the sentence implies that of the sites that used video, almost all used Flash video.

As an AS3-focused developer in the years around 2010, this is too heavy-handed. The Apple announcement followed a youtube announcement in Jan 2010 of an experimental HTML5 video player. It took years for that player to become the standard. Apple may well have seen the writing on the wall, but to say "everyone hated or was avoiding flash" is objectively false.

This comports well with my memory of the time. I remember there being a lot of "Flash sucks" sentiment online, but no decent alternatives. The days of entire UIs done in Flash was largely over by 2010, IIRC, but there were still things like video playback that couldn't be handled easily without Flash. I remember explicitly installing Flash on Linux, simply so I could watch Youtube with relatively little friction. In my mind, by that time, that was the main purpose of having Flash around at all.

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. ;)

You had the video plugin, x-mplayerplug-in, with either mplayer, vlc or mozplugger.

I don't think anyone hated it, but it definitely wasn't in the "loved" category either - more of a "tolerated it as a necessary evil"

I think the way to settle this -- and I'm not taking sides here -- is to look at the original Hacker News reception to this letter:


Interesting that we now find ourselves in a battle over Native vs Electron/ReactNative, when that was essentially SJ's answer to Flash: https://news.ycombinator.com/item?id=1304329

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.

Going back to the original comment, "Everyone already hated and was avoiding flash at that point", I think you have to look at as being a broader concern than HN, a subculture that doesn't reflect "everyone".

I don't think by "everyone" they meant people who weren't aware of what flash was and users. Just the people who could conceivably be trying to avoid it -- creative types and developers.

Even people who weren't aware.

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.

Hey, this thread is great, thanks for the link!

If you were a laptop used then you hated flash. Except for a few times where the heat in the building was down and playing a flash video will transform your laptop to a desk space heater.

Yup, in 2012 I was writing web video players and ad-serving platforms for a video streaming company. It was all Flash, because there were no real alternatives. HTML5 was just kind of starting but HTML5+Video+JS did not allow to develop logic as complex as what AS3 provided.

> Everyone already hated and was avoiding flash at that point.

"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.

It's regrettable that there's no good replacement for it, but Flash had deep by-design security issues that there was no way to fix (in addition to the garden-variety security bugs that Adobe seemed too incompetent or unwilling to fix). Flash had to go.

At the time Flash was used extensively for UI development, and artists were able to pretty easily create animations and author their own screens.

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.

Programmers have to make simple things more complicated, otherwise they will program themselves out of a living.


I read the link. Can't tell, if it is meant for real or satire. Anyway, no. No good programmer needs to make things more complicated on purpose, to earn a living. The bugfilled world of IT is complicated enough as it is and always was like this.

> No good programmer needs to make things more complicated on purpose, to earn a living.

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.

The second paragraph is:

> 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!

"Visual editing of the web"? Flash was hostile to the open web, not a useful part of it.

But it enabled non-programmers to create beautiful things and release them on the web. So while it technically is hostile to open web - it did open up the web for many people, who would run away, when you tell them to learn html code first.

"Technically"? This isn't merely a technical point. HTML is an open standard, and Flash isn't and never was. Flash also never "opened up the web"; it opened up a proprietary way to do programming and avoid actually using the Web.

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.

I think Godot is a very strong candidate for something that people can love as much.

I found it totally inaccessible. I knew how to programm in C, C++98 with QT, Python, but I couldnt figure out just how to get started with flash. Somehow i must have missed the easy part of it.

You could just write Actionscript .

It was quite a pleasant and consistent experience compared to writing browser JS at the time(10+ years ago).

Matches my experience as well. It was a great language for experimenting with UI design (itemrenderers anyone?). It’s a bitter pill for me swallow to have to watch it fade away.

How to call it? Call it by using script tag in HTML? Call it from javascript? Fileextension '.as'?

You use Adobe's Flash IDE (now called "Adobe Animate") to compile ActionScript to a .swf binary file, which you then embed in a web page with an <object> or <embed> tag.

Adobe Animate can now export animations and scripts to HTML5: https://en.wikipedia.org/wiki/Adobe_Animate

Thanks. Does one always have to pay (Adobe Animate is trialware) to do Actionscript programming? Probably thats where I got stuck last time (wasnt looking too hard into paid solutions)

Flex [0] is the open source CLI compiler.

[0] https://en.wikipedia.org/wiki/Apache_Flex

If visual editing of the web died, why do I see squarespace ads everywhere?

Squarespace is template-based. The developer created the overall site structure/layout, and the user is just changing out the content.

Their templates are quite flexible, and there's a lot of them, but it's not quite creating something original.

Let's face reality here: Apple didn't care about the HTML5 standard, they just wanted games to go through their own app store instead of being freely available on the web.

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.

This is completely false. You're forgetting the original iPhone did not have a native SDK - the original plan was for 'apps' to just be web apps. It was only a year later that the SDK was released after the huge demand for one, so claiming that they didn't initially support flash to drive people to an App Store that didn't exist is incorrect.

I just re-read the letter of Apple, and it explicitly states itself: "Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world."

Check your facts buddy!

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!

Completely false...tsssss...

The article is dated 2010. The App Store was opened in 2008. The iPhone was released in 2007.

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.

So walk me through the narrative you're trying to sell here. Apple launches the iPhone without App Store or Flash in 2007. A year later, they launch an App Store. TWO years later, Steve Jobs writes a piece about why they don't include Flash.

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?

I'm not claiming they wanted to kill Flash, I'm claiming that dropping Flash because "we have open standard HTML5" was complete bullshit. And years later this is still pretty obvious. iPhone doesn't fully support HTML5 features, which results in crippled PWA installation on iPhone.

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.

I worked at Apple. I don’t remember but I’m pretty sure perf just sucked, and I’m guessing there weren’t enough people to deal with it. Like, you are giving way too much credit to strategic thinking. It wasn’t like that. Nobody had a crystal ball.

They certainly saw how profitable iTunes was and saw an opportunity to replicate that success with applications. They may not have predicted web browsers becoming as capable as they are, but I suspect that senior management saw a threat of mobile websites as app replacements. Even free apps generate revenue for Apple.

The first iPhone doesn't have AppStore but has Safari. It seems that they don't expect its advantage initially.

So in that case you should see a plethora of successful profitable games on Android right?

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.

Even to this day it is not fully supported, so please cut the bullshit


It’s not fully supported because you have to click the “share button” and scroll down and click on “add to home screen”?

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.

I'm pretty sure GP is referring to all the PWA-friendly features that are missing on iOS, of which there are many.

He said specifically add to home screen. If the “plethora” of PWA features are available for Android, where is the thriving market of web based games on Android?

It was terrible on mobile and I also avoided it, but it seems naive to not consider that Apple were being protective of their new platform and didn't want any alternative application runtimes to take hold.

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.

It’s terrible on desktop too.

What you say _!!!_

I think that's rewriting history a bit. Sure, many of us nerds knew that Flash was problematic abandonware and sort of wished it would go away long before Apple launched a nuke at it, but we were the exception. Most people then, as now, didn't really understand or care how damaging flash was to the tech ecosystem. Sure, they saw a few annoying ads and security warnings, but they broadly considered them "worth it" for the content. Apple not only spoke up about Flash being the industry limiting factor regarding device responsiveness, battery performance, and security, but they did something about it in the face of widespread condemnation and resentment that hasn't dissipated to this very day.

I'd argue the point is not how the public felt about about Flash, but how device makers saw it.

Flash didn't make it on any other mobile platform. Serious attempts were being made way earlier than the iPhone, including for Symbian [0], 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.

[0] https://en.wikipedia.org/wiki/Adobe_Flash#Mobile_devices

The iPhone did two amazing things:

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 :)

That is completely false.

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.

Your claim is false. When Apple made the decision to not allow Adobe Flash on iOS, there was no App Store. Apple did not allow third-party apps, and writing HTML5 was the only way for any third party to run anything 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!

The iOS App Store preceded the Flash ban.

"Apple introduced the App Store on July 10, 2008 with 500 apps" https://www.apple.com/newsroom/2018/07/app-store-turns-10/

Apple's Flash restrictions were published in draft form in April 2010. http://www.mikechambers.com/blog/2010/04/20/on-adobe-flash-c...

And justified by Steve Jobs that same month: https://www.apple.com/hotnews/thoughts-on-flash/

This is cherry-picking articles to create a false timeline. The iPhone never supported Flash. There was never a "Flash ban" so much as there was never Flash.

I think that by "Flash ban" Dotnaught means "Apple's ban on third party development tools" which was specifically intended to ban the iOS packager tool Adobe had started shipping.

You talk as if "web apps" and "Apps" in general (in a phone) were a thing back then.

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.

All of the earlier smartphones had applications. I had a real player app and a better video recorder for my Symbian phone; blackberry, windows (CE), and palm phones all had apps too.

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.

You can get Firefox and Chrome for iOS...

No, you cannot. They are wrappers of Safari's engine.

Yes, but they're just thin wrappers around iOS' WebView; they don't use the Gecko or Blink engines. Apple doesn't allow other browser engines on the App Store.

Wasn't the iPhone in USA exclusive to one carrier for, like, a decade? Meanwhile in the rest of the world carriers never really had any power over how we used our devices or what was on them.

It was exclusive for AT&T from 2007 until 2011 I believe.

1) What about WindowsMobile, Blackberry?

Definitely rewriting history to say they started it, but it was the nail in the coffin for Flash. Many developers hated Flash by then and were advocating against it. Although it was starting to decline, the marketing people and some wannabe UX types were still pushing it. The Steve Jobs essay is when the anti-Flash movement went mainstream and it was awesome. Prior to that, there was a question of whether Apple would support it. Once it was definitive that they wouldn't, the writing was on the wall that Flash would not survive. It validated what many of us had been saying for at least a couple years and made it easy for us to dismiss Flash.

And yet the lack of flash was generally in the top 3 reasons iPhone would never be a success(along with lack of copy/paste).

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.

Flash became a mobile web non-citizen when the first iPhone released, back in 2008 when Flash was still popular enough for people to complain about it not being on the iPhone rather than to be happy that it was gone. "Thoughts on Flash" was published a few years later, in 2011, when Adobe wanted to add iOS app export to Flash - Apple responded by banning literally all third-party development tools. It was definitely a kick in the teeth to Adobe's attempts to pivot the product.

>Apple responded by banning literally all third-party development tools.

How was this not anticompetitive?

It is anticompetive, but it is apparently not prohibited anticompetitive conduct.

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?

Interestingly enough the EU is looking at that.

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".

Android continued to tout their ability to utilize Flash as a competitive edge long after Jobs’ letter.

And it was, at the time I had a full browser in my pocket and on my tablet that was able to do just about everything I could on my PC, whereas iPhone/iPads of the time were simply unable to do some of the tasks I was able to.

I did not like flash on Android, but I was happy to have it available when things were still transitioning away from it.

If my memory serves me correct, not all Android phone support Flash.

There was already a strong decline underway, but there were plenty of people who were convinced it would stick around. Apple's decision was the nail in the coffin.

It absolutely did. I was a Adobe Flex developer when Adobe handed over Flex to Apache and watched the whole thing crumble. Jobs definitely led the way on that.

I agree. Google wasn't really sure how to go about it in Android, we really have to thank Apple for this step. It was historical and the best that could happen to all of us, specially when the Flash cookies are taken into consideration.

There was no decline. I very distinctly remember laughing that iPhone couldn't support flash because so many websites were based on flash.

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.

People said at the time and for years aferwards that it would cause the iphone to fail. Multiple companies made 'supports Flash' a major part of the marketing.

> https://techpinions.com/apple-claim-chowder-product/34156

Flash was not hated. It was at its peak during 2008 when Flash games were making millions on Facebook and every media-related site used Flash interfaces. I remember being on Flashkit.com back then, and watching design houses like 2advanced.com release their next project.

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.

Is it? I remember that even a similar pocket device such as PSP was able to play flash at the time, despite it being a huge memory hog. Until iPhone, any similar device that couldn't run flash was perceived as, simply, buggy.

The PSP had a very outdated version of Flash (for the time) that wasn't compatible with a lot of content.

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).

> Everyone already hated and was avoiding flash at that point.

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.

Jobs did this so that Apple could get the 30% cut on apps downloaded from the App Store. Otherwise everyone would just play Flash games that Apple got no cut of. Follow the money!

Apple doesn’t get a cut of free games.

They 100% killed flash, and thankfully so.

The rest, as happened many times, followed Apple.

The reasons for banning flash were totally on point.

They actually tried to get Flash running on Android for a while

Not sure what came of that. I will probably need to google more

There was a Flash Player for Android, but the app existed only as a standalone player for playing .swf files. A couple mobile browsers did include it as a plugin so Flash content over the web mostly worked, but performance and user experience were not great.

Also it was power hungry app that drain too fast battery.

I remember GPS while driving would drain your battery faster than it could charge; you'd have to make sure your phone was fully charged, then keep it plugged in while driving--and it would still die in under an hour. There's still things you can do on your phone today to drain your battery quite fast; taking video is one such thing--I had my 2yo phone die in me last week because it was recording in my pocket--as is trying to run actual software through termux, playing games for too long, etc.

No, it was literally Steve Jobs in 2010 saying he didn't want flash on mobile. Then it collapsed quite quickly after that as the barriers went up. 10 years later and mobile games still need to be made in Unity or Unreal. The new Meatboy won't come from HTML5, even if development was as easy. All the 3d engines you have in HTML5 owe a debt to actionscript and flash and still don't perform as well.

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.

It also signaled the end of the golden era of amateur 2D games and drawn movies (i.e. what Newgrounds was famous for).

I feel like the modern creativity has been channeled into YouTube, IG, and TikTok. Not as much interactive content, unfortunately.

Flash sucked for a lot of things but what it was an unsung hero for was actually being an outlet and onramp for adolescent creativity.

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.

I think this is a little dismissive of kids today. How many kids actually bothered pirating a copy of Flash vs. just mindless playing bloons tower defense? You could argue that this low stakes gaming has been replaced by phone apps. But kids today are learning from what they watch on youtube: far more kids are making their own videos for their youtube channel or tiktok account and learning about av production in the process, than kids learning flash programming 15 years ago. Sure it starts small with your phone camera, but look at the production quality of some of these influencers: they are investing in good cameras, microphones, lighting, sound proofing, editing software, and that is something you need to learn a little bit about video production to effectively set up, and these are still marketable skills.

> How many kids actually bothered pirating a copy of Flash?


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.

Yeah, lots. Back in my primary school days, 3 of us had a pirated copy of Adobe Flash, met up, and tried to learn actionscript and animation after school.

'Adolescent' seems a bit dismissive, although I'm sure you didn't mean it that way.

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.

Yeah, back in the days Flash was fun for creating simple interactive animations. I yet haven't found a good alternative.

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.

I mean, Adobe Animate (the new name for Adobe Flash) still exists, and can target HTML/JS/Canvas/WebGL. It still supports ActionScript 3.0, so the same platform that could be used to create animations and interactive games should still be usable.

"should be" or "is"? Serious question. It's a while since I tried last and results were less than encouraging. But maybe it improved. (And then 20$/month is cheap for professional usage, but notable for fun or student projects)

It used to cost $500 or something, but that isn't stopping people from framing Flash as a champion of adolescent creativity.

Back then it was easy to find a license key somewhere. These days it takes more effort to bypass registration requirements etc.

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 ;)

Do you remember IntraBuilder?


It was a flop, but they did try.

The nice thing about Delphi was that one could start easily with a toy project and then turn it into a quite high quality product. With solutions like IntraBuilder one is tied into a tight framework, which integrates only in limited ways to the Web.

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.

I got into programming via Macromedia Flash, which was then purchased by Adobe and integrated into Creative Suite. It was pretty empowering to be able to quickly draw graphics on the stage, animate them with tweening, and then have the ability to add an identifier to an object to reference it with code. I could easily switch from visually animating something, to then trigger animations with code and callbacks, to getting more advanced and making full blown interfaces, games, and interactive content.

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.

> I feel like the modern creativity has been channeled into YouTube, IG, and TikTok. Not as much interactive content, unfortunately.

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.

In some ways, I think the interactive component has migrated to Unity. It’s in no way a direct successor, to be sure; even with the Unity web player there’s nothing approaching the immediacy of Flash's authoring and playing experience. Browsing Itch.io does channel some of those early-2000s Newgrounds vibes, though.

Yup, the advent of Flash animations was the one time that almost all of my friends and I were able to produce _some_ kind of animation. We all had silly little things we put on Newgrounds, when none of us (well, except me) had any prior animation experience. It was a pretty empowering experience and I remember the relative ease with which we could produce some pretty nice-looking stuff. Of course, that's about all I miss about Flash, but it was a really great time while it lasted. :)

Flash did not run on every possible platform that web browsers ran on. Flash was a 2nd class citizen on Linux.

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.

> Now we have powerful browsers, web standards, and you can do amazing things in them

Flash had it's flaws, but it was a much more coherent interface for users and developers than what has become of the web. The mish-mash of HTML, CSS, and JavaScript (with all of the different styles of API) is really unappealing to me. It's rare, but when I do make an application out of a web page, I gravitate towards making a large canvas in the middle of a static page. This is exactly like having a Flash applet except the programming experience is worse, and animation is more complicated.

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.

I hear what you are saying. Long ago when I considered whether to use Flash or web standards, I had to consider all this.

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.

> confident that it works on any client

LOL, I think you mean: on Chrome (and if we're lucky, Firefox).

I develop in Firefox and it’s pretty rare that I have to spend time on other browsers, which was not the case a decade ago.

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.

Firefox => Chrome works pretty well. The other direction? Not so much…

It really depends on what you are developing. If you are using cutting edge browser features. Things like WASM or new JS APIs, sure you'll likely run into incompatibilities. However, if you are building a pretty standard content website, not a single page app, from my experience, pretty much everything just works between browsers. This was definitely not the case 10 years ago. Especially when including IE in the mix.

These days, it really comes down to “Do you need to support IE?” — even for fairly new features, if they're standard you should still check https://caniuse.com/ first but it's likely that the answer will be “Yes” for everything except IE11 and, far less frequently, Mobile Safari.

> If you are using cutting edge browser features.

This comment section is about Flash. We're only talking about "cutting edge browser features." Otherwise, I agree.

I always love new whizbang browser features. But I avoid them until they are common enough in the end user base that I can actually expect to be able to use those new features.

Now modern browsers that are self updating is a huge help.

The only troublesome browser is basically Internet Explorer. And even Microsoft threw in the towel on that. Edge wasn't bad, but now even it is simply Chrome in Edge clothing. There are other WebKit based browsers (eg, Safari) which are not based on Chrome or rather Chromium.

In practice, I rarely have any trouble in recent years with browser compatibility.

> Flash was a 2nd class citizen on Linux.

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)

Linux wasn't a 2nd class citizen to the people who used Linux. Thus some people see Flash as an anomaly that needs to be replaced by web standards that are so good that Flash becomes unnecessary. That way all platforms get rich client capabilities including ones that weren't even invented yet (Raspberry Pi, Fuchsia, others).

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.)

IMO it's almost certainly not the "open letter"; Flash was Adobe's effort of having a runtime that they controlled, to enable authoring rich content - you need to understand that Adobe didn't directly make money from the player, and the publicity it got from it was increasingly negative due to the usage in ads (which were often not very carefully programmed, if I may add so).

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.

Did you happen to be there for Adobe's "premium licensing" debacle? I'd like to know exactly what the execs were thinking trying to charge Unity developers for something the web could already do (WebGL + emscripten).

That was a big deal at the time, but Flash was on the decline well before then and it was obvious where things were headed. You could technically run Flash on early Android phones, but it was horribly slow and barely functional. Too processor intensive, too hard to make responsive content, and that's on top of all the security and other concerns. Flash was never going to survive the shift to mobile.

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.

> 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.

You're right, but I really do think it was inevitable. Flash Lite just didn't run well on any of its supported platforms at the time, and the then-new technology "HTML5" had the advantage of being simpler and more open. The main thing Flash had going for it was the inertia from developers who already knew it.

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...

Another sign of the tech regression is that we don't have a robust alternative that does the things Flash did. No easy-to-use and publish editor, no robust video/audio streaming server/client combo. Today's HTML alternatives are so convoluted and bad to integrate that we need to use proprietary/closed platforms (e.g. Unity, youtube)

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.

That is one of the more well-reasoned and thoroughly explained pieces of corporate communication I’ve read. I wonder if the “Jobs style” has been widely adopted in the corporate world; I feel like I see it more and more often these days.

Would this be considered anti-competitive today?

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.

> Would this be considered anti-competitive today?

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.

> Would this be considered anti-competitive today?

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.)

it's clearly anti-competitive, then and now.

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).

Do you think companies should always be expected adopt and implement the proprietary products and technology of other companies in their products? That seems like an extremely broad expectation.

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.

They had legitimate cause to keep a bloated, buggy, resource hog off of iPhone 1. Adobe had plenty of time to clean up their act and never has.

Given the high percentage of Android phones, there was no monopoly to abuse.

>Would this be considered anti-competitive today?

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.

On the other hand, are you going to say that creating a new platform gave them the obligation to design its browser in a way that allowed plug-ins?

That open letter is dated 2010. Flash was dead-man-walking for years before that insofar as new development was concerned. I was there.

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.

There is a lot more to the story. Adobe claimed that it could get Flash working on the first iPhone if Apple had allowed it.

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.

> 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.

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.

That was Flash Lite.

Oh, maybe Flash Lite wasn't so bad then! It worked well on the Wii; I would have loved to have it on my iPod Touch in 2009.

IMO Flash was already languishing and Steve's criticisms were valid.

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.

On the contrary, people thought the iPhone not supporting Flash would make it a non-starter and give Android a huge leg up. Flash was viewed not as languishing but as a fundamental requirement.

Pundits being wrong doesn't really change the reality of the state of flash.

The other thing that was always notable about this letter is Jobs's own use of the term "PCs" to refer generically to a form factor (that would include Macs), and not the long-dead trademark for IBM's product line of home computers from the 1980s.

Prior to the IBM PC, ironically, Steve Jobs had coined the term "personal" computer. Prior to this term, they were called "micro" computers "home brew", "toy", "small", etc.

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.

Yep. At the time, it was kind of a controversial decision. Now it seems obvious.

That Flash should be deprecated wasn't controversial (at least amongst tech savvy people). What was controversial was not supporting it at all, because doing so locked out a lot of the web of the time. Especially certain enterprise sites but also a lot of video sites or even ordering a taxi in some cases.

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.

The writing was on the wall already, but Apple definitely put the final nail in its coffin.

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.

Use of Flash was antithetical to the Open Web.

So instead we get propriety apps. Good job.

The decline of Flash did not begin with Steve Jobs. Maybe accelerated, but definitely not started. Flash was already long on its way out due to many of the reasons Jobs listed.

Essentially, the web migrated to the mobile format and Flash was extremely ill-prepared to make that jump, inside and out.

Flash didn't die a natural death, it was murdered by companies that resent any loss of control over their users. Complaints by Jobs weren't in good faith overall - Flash worked perfectly fine on Android back in the day. Jobs was just a control freak along with wanting to keep games/interactive content in the walled-off app store (plain web capability wasn't there yet at the time), Google can't collect data from Flash content as easily and wants its developers more focused on advertising than supporting the ever-dwindling feature list of Chrome (who cares about features like extension capability or viewing flash content when we already captured a ton of users bundling the browser with random installers and we can advertise on the google home page), and Mozilla sadly adopted a strategy of blindly following everything Chrome does. We could still be in that brief utopia of new HTML5 capability coexisting with first-class Flash support if the politics played out differently.

> Mozilla sadly adopted a strategy of blindly following everything Chrome does.

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.

Would that the line were as clear as you make it out to be. There were a metric craptonne of essentially all-document sites - the only "interactivity" being links - that were encased in inaccessible SWFs for (a) "pixel-perfect" rendering or (b) someone's idea of copy protection.

Was NSAPI not an open standard?

You mean NPAPI, right?

I think so, yes.

My experience with Flash was that it was a nightmare of crashes and cpu usage on anything but Windows (i.e. Linux desktop, MacOS).

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.

Indeed, and it was always a security disaster delivered as a closed blob. More so than today because there was no sandbox.

I can't say I ever had an issue with Flash on Mac or Linux. It was certainly heavier than normal web content, but so is modern html5 stuff.

The modern web bloat has just been due to huge amounts of JavaScript becoming common - if you compared basic video playback it was normally at least a factor of two worse playing the same video in Flash, which often meant the difference between dropping frames or playing smoothly.

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 modern web bloat has just been due to huge amounts of JavaScript becoming common - if you compared basic video playback it was normally at least a factor of two worse playing the same video in Flash

Well, sure, for simple video playback html5 is clearly superior. What I find more interesting though were flash's "interactive" capabilities—if you wanted to make an app that ran in the browser, it used to be you'd almost always use Flash. Now you just use tons of Javascript instead, and I think if anything that was a performance regression.

If you don't use a huge toolkit, a modern browser is massively faster – I last did benchmarks like 8 years ago and even then it was usually an integer multiple more memory or CPU for something done in Flash versus the browser and that was before accounting for the browser having better quality text rendering, color management, alpha effects, antialiasing, etc. Had Adobe not just stopped investing after they hit 90% marketshare that might have been different but they were sitting still for too long.

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.

Do we have same time period in mind?

2006-2009: Gnash, hardly anything works, 2010: Youtube introduced html5 video

My years may be off by one, but iirc I was a Linux user in 2007–2008, switched back to Windows between 2009–2010, and then have used Macs ever since 2011. I recall Flash still being common in 2011.

I tried to get some facts. In 2006 I remember Gnash, it supports most SWF v7 features [1]. One could install firefox and flash in wine [2] (didn't know, didn't bother). And in 2008 there was native Linux Flash Player 9 [3] (too late). In 2010 still no hardware acceleration and no 64 bit support on Linux - in comments [4].

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.

[1] https://en.wikipedia.org/wiki/Gnash_(software)

[2] http://web.archive.org/web/20061030024511/https://www.howtof...

[3] http://web.archive.org/web/20080430162104/https://www.howtof...

[4] https://web.archive.org/web/20110511095927/http://blogs.adob...

Odd, I explicitly remember using an official version of Adobe Flash in Linux.

I can't seem to figure out when Linux support started, but the archived version of Flash Player 7 on Adobe's site[1] 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.


1: https://helpx.adobe.com/flash-player/kb/archived-flash-playe...

So, from my memory (I started with Linux in 2000 or so, haven't really stopped.)

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[1]) 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[0] 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.

[0] https://web.archive.org/web/20120903074409/http://blogs.adob... - note that this is an arbitrary time snapshot that I picked at random. [1] https://www.linux.com/news/nspluginwrapper-cross-architectur... - total madness. But it (mostly sorta) worked.

I don't know, checked more - 1999 Macromedia introduces Flash Player for Linux [1], I see traces of v5, v6, v7 [2], [3]. Never heard about them, in my circle there was consensus "flash does not work on Linux". Strange

[1] https://web.archive.org/web/20070520080719/http://www.allbus...

[2] http://dsc.soic.indiana.edu/publications/flashjan01.html

[3] http://www.penguintutor.com/blog/viewpost.php?id=wp140

I think most tech oriented people can appreciate the downsides of Flash. But in retrospect it no doubt enabled a level of creativity that any replacement technology hasn't achieved to nearly the same degree. Some creators seemed to have moved away with Flash's decline.

> Flash worked perfectly fine on Android back in the day.

It absolutely did not. It was a huge battery drain and super unintuitive to navigate with touch.

A web page designed with only desktops in mind will work poorly on a phone too - not Flash's fault.

Doesn’t really matter whose fault it was: the experience was abysmal, which further led to its downfall.

Flash did not "work perfectly fine" on Android.

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.

You can add these to the list of selfish parties:

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.

You make valid points. But for years malicious Flash applets were one of the primary ways malware was delivered over the web. For IT departments, unless a user absolutely needed it, it was removed from their system. There was a time where it seemed like there were new critical vulnerabilities in Flash every week, and it was a nightmare to keep up with. Security, or lack thereof, contributed greatly to its demise.

i don't remember flash ever being very good at its job. the best there was at the time, but slow/buggy/crashing. i remember being very excited for html5 being able to replace it.

Flash also didn't live a natural life. In an ecosystem of incresingly open web standards and interoperation, it was a closed-source single-owner multimedia time-synchronized event-driven content engine embedded in what increasingly became an ecosystem of open-source multiemdia time-synchronized event-driven content engines owned by multiple companies.

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.

If Adobe would have invested reasonably in security (timely fixes, code quality reviews, silent auto-update by default, general attitude towards code quality in hiring/development) Flash might have had a chance. They didn't.

Flash didn't work "perfectly fine" on Android - basically every product shipped with Flash was vulnerable at almost any point in time.

> Flash worked perfectly fine on Android back in the day

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.

It also never made it out of beta though, right?

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.

> This is absolutely false. It was not fine, much less "perfectly fine".

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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact