Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
I Can No Longer Compile My First Flash Game (devtails.xyz) similar stories update story
1 points by devtailz | karma 478 | avg karma 4.83 2022-03-06 16:03:21 | hide | past | favorite | 279 comments



view as:

I don't know what it can do exactly but I had a very good experience modifying an SWF with FFDEC: https://github.com/jindrapetrik/jpexs-decompiler

FFDEC is pretty good - better in some cases than commercial solutions. I've been using it to fix some of the Flash based Rockstar Games websites that are no longer available before throwing them up on my 'museum' site that uses Ruffle to display them.

Could you link the museum? Tried Ruffle a long time ago, would love to see how well it works now. Also curious what kind of fixes you had to apply. Once you patched the source, did you use the same tool FFDec to compile them again?

https://museum.rockstarnexus.com/

The majority of the sites in the museum I captured using Charles proxy back in 2011. I have also included a few sites that Internet Archive had captured, but weren't functioning properly in the Wayback Machine due to either scripting or Flash requirements.

The changes vary. There are a number of instances of direct linking to content instead of using relative paths, which can usually be fixed pretty easily using FFDEC's in-place Action Script editor. Toward the last 8 or so years these sites were accessible, Rockstar started to remove certain trailers - likely due to music licensing. For these I've had to dig into Internet Archive and see if I can find the original SWF files before changes were made. If I cannot, I then decompile sites back into Flash projects and use an old copy of Creative Suite 6 I have access to in order to restore certain buttons and elements.

Ruffle still needs work but definitely has been improving. The project has been mainly focused on AS1&2 and has little/not-yet-working AS3 support. Sites like Vice City mostly work, but the background colors are off and sounds like the radio won't stop playing once started. Sites that Rockstar developed onward from 2006 like Liberty City Stories are a lot more broken at the moment unfortunately.


Your game looks beautiful. Love the artwork

I'd be impressed if someone could still run it.

Actually not that much, ruffle compatibility is quite good these days.


I followed the instructions in the post (git clone repo, open Main.swf in Flash Player Projector. You really do need the repo, the swf file won't work by itself) and the game worked fine. (I did get stuck on level one, but I reckon that's a "user problem" ;)

I tried downloading Flash Player standalone and run it but all I get is a grey screen. There's a lot of great flash games out there, not sure if there's a good solution (opensource or otherwise) to run them

I recently had a reason to play a couple of old flash games. One of them I found a player that would run it. The other, I could not find any player that would run it. I can understand Adobe discontinuing Flash - that's normal. I really hate that Flash has been, like, forensically erased from history though. I'm surprised there's not more open-source effort than there is to preserve it.

There is https://ruffle.rs/ , which I think has pretty good compatibility these days.


I had the same issue, turns out you have to clone the whole repo first, swf won't work by itself.

I know this doesn’t satisfy compilation issues but for playing Flash content using a modern engine try out: https://ruffle.rs/

It’s written in Rust (don’t shoot the messenger) and was able to play some flash content I had produced around 1999…

Ok I’m going to go crawl back under my rock.


I tried my old startup from here:

http://dudefactory.com/

And it boots to the title screen, but I guess there is some sort of check inside the SWF to make sure it is running inside the right domain, because then it tries to redirect the browser back to the main URL and won't load the main avatar creation screen. Bummer. (I downloaded Adobe's Flash Projector and the behavior is the same)

EDIT: I installed the Chrome browser extension instead and it booted up fine. Some rendering issues to do with stroke widths that make it reasonably unusable, but it worked and when you click to download you get the actual proper file since it is rendered using .NET on the back end.


I had a similar problem. My flash content was several modules where the main module swapped in and loaded in sub-modules.

The main screen would loaded but when clicked wouldn’t resolve the sub-modules correctly but I was able to just play the sub-modules and individually and see the old content in all its cheesy glory.


Ruffle is an awesome project, but there's a huge amount of work that has to be done to support the entire catalog of Flash content.

> AVM2 is ActionScript 3, which was introduced with Flash Player 9 (June 2006). After the release of Flash Professional CC (2013), authors are required to use ActionScript 3 - making any movie made after that date very likely to fall under this category.

> Ruffle is still working on the foundational support for AVM 2, and does not yet support any content that requires it. A warning will be placed in the log when you attempt to play AVM 2 content, for this reason. We do plan on supporting this soon!


It’s written in Rust (don’t shoot the messenger)

LOL, I think the anti-rust stuff is more a backlash to those overzealous rustaceans who demand mature C or C++ projects be re-written in rust so they can be 'safe'.

I think new software in rust that does useful stuff is cool as :)


Try something like this?

  fcsh-wrap -static-link-runtime-shared-libraries -benchmark=false -debug=false -o tmp.swf -source-path=src -library-path+=lib/as3-signals-v0.8.swc -- src/core/Main.as
It almost builds for me, but I think since my Flash projects were older than yours my copy of the Flex SDK might be too old.

I dearly hope something along these lines works, especially given the author has a repository and thinks the last set of optimisations may have been what introduced a bunch of the current bugs - if that's so, backing out those patches and relying on modern machine's performance to make the optimisations not matter might work out really nicely.

Yeah, I'm being hopeful from a complete lack of expertise here. But it'd still be -really- cool if it worked out.


It turns out it does build with a newer Flex SDK, but all I get when I run the resulting .swf is a grey screen.

The grey screen thing, it turns out, is just because I didn't run the .swf from the bin/ directory. It runs just fine once I put the output file there!

For what it's worth, I built it with 4.6.0 of the Flex SDK, which Adobe is still hosting: https://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/fle...

So yeah, problem solved, I guess?


Thanks for this. Just to confirm https://github.com/Draknek/fcsh-wrap is what you are referring to? When I tried the Flex SDK I had troubles getting it configured and pointing to the correct files.

I'll see if I can give this a try this evening


You owe me nothing, of course, but I really want to know how this turns out now.

For anyone with some extra time on their hands, Flash games still work on Pale Moon.

They also work outside of any browser in Flash Projector, provided you download the actual .swf file.

Kind of confused why people would try to run/compile/etc. Flash games on modern platforms.

If this game were a native app from that era, you'd think nothing of whipping out a Windows XP VM and installing an era-appropriate toolchain in it.

And really, the same applies not only for native executables, but to any proprietary / non-standards-based format from a previous era that's since been left to the wayside. Want to use a website that embeds a Java applet? You'd better (effectively) time-travel to 2005.

IMHO, at this point, a Flash game (for which the source code is not available) should really be "modernized" similarly to the way the Internet Archive makes old Windows and Mac software available — by wrapping them up into their own little standalone VM images. Like this: https://archive.org/details/chips_challenge_windows_3.x


Most native windows applications from 2005 still work on modern systems, though they might not work well with higher resolutions etc.

Yes, because Windows still exists and has a team that cares about backward compatibility. Adobe Flash does not still exist. (Adobe Animate does, yes, but the SWF export format, no.)

Also, even living software calls its compatibility somewhere. Windows programs from 1995 do not work on modern systems. Mostly because many of them still had 16-bit components at that point (e.g. a 16-bit installer), and 64-bit Windows doesn't run 16-bit executables.


It does not have to be 16 bit. A lot of 32 bit programs I wrote in Virtual Basic 5 or 6 does not work properly in Windows 7 or later. This is not for a lack of runtime files, but the program will either exit early with cryptic error messages or have extremely glitchy UI that makes them unusable.

Also flash was not “native” for most people. It was a browser thing. Websites from the last decades still render.

Beyond ... everything, sometimes people just want a thing to work. A thing that previously worked, and ... supposedly, was kind of a solved problem with stuff like Pepper.

I understand that big surface areas are a thing, but there's just loads of content that exists as Flash and is fine.

An extra layer here, Flash CS3 Professional is better as a quick iterating game tool than basically everything out there for people nowadays (Game Maker Studio is up there but still...). I think that making _new_ content in Flash is justifiable except for the whole "can't get it to run anywhere" issue.


> I understand that big surface areas are a thing, but there's just loads of content that exists as Flash and is fine.

Well, yeah; and there's loads of Win95 games that run fine under WINE. But if you want to guarantee that an arbitrary Win95 game will work, without knowing anything about it (as is the case with a content-blind bulk archivist like the Internet Archive), then you'd better wrap it in a real Win95 VM, rather than assuming it's one of the easy cases.

In the case of SWF files, though, it's not that the files themselves have heavy/weird requirements; it's that their abstract machine / runtime itself makes some extremely dated assumptions about a wide-ranging set of platform APIs.

It's a bit like how RPG Maker 95 games are hard to run on Windows 10. To run arbitrary games, you could in theory "just" make a 100%-coverage reimplementation of the RPG Maker 95 runtime, build it for Windows 10, and it would run just fine. But as it stands, the only 100%-coverage implementation of said runtime is RPG Maker 95 itself; and so the only good way to run RM95 games, is in a Windows 9x VM, where all the particular APIs RM95 is looking for exist.

> An extra layer here, Flash CS3 Professional is better as a quick iterating game tool than basically everything out there for people nowadays

You know that Adobe Animate (nee Flash Professional) still exists, right? And that you can still make games in it, not just animations? It just exports to HTML5 now, rather than to SWF.


None

> If this game were a native app from that era, you'd think nothing of whipping out a Windows XP VM and installing an era-appropriate toolchain in it.

I mean sure, or I could just run whatever it is on my current computer? I know Visual Basic 6 was still, for example, able to be run on at least Windows 7. (I haven't tried it on Windows 10.)


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

A flash VM running in safe WebAssembly sounds like an awesome idea for preserving a lot of older web content.


I recently had a similar experience updating an old iphone app that was written in Swift 2.

I had to use an old 2009 iMac with a copy of Xcode 8 to migrate to Swift 3, then a 2016 MacBook Pro with Xcode 10 to migrate to Swift 4. Then I could finally perform the final migration and compile/deploy on my M1 Macbook Pro. It was ridiculous!


You kinda did this to yourself by using Swift when it was not stable yet. Meanwhile old Objective-C code continues to work just fine on iOS 15.

I agree wrt Obj-C but as a non-Mac developer it would not have been obvious to me a priori that something that was declared version 2 already wasn't stable.

(I would absolutely assume that if it was officially still unstable that would have been documented somewhere ... I would absolutely not assume that I would have noticed)


Agree - 99.9% of Java 1 apps will still compile and run just fine on Java 17

Unless you used XML.

Are you talking about jaxp? Don't old jaxp jars still work?

The parent comment is probably talking about the J2EE packages which used to come with the JRE before Java 11; a lot of code which used to run on Java 8 and earlier no longer runs on Java 11 and later unless you manually add a couple of extra JARs to the classpath (and good luck knowing which ones are needed when reflection is involved).

However, the grandparent comment is talking about _Java 1_, which is before J2EE; the thing which would break code from that time is probably not going to be XML, but instead things like Applet support. There's a good chance that a Java 1 app is in fact an applet designed to run within a browser, and no longer runs fine on Java 17 since the Java plugin is no longer supported.


I know very little about Mac/iOS application development, but my impression from developer friends and acquaintances is that Swift uses an unusual variant of semantic versioning, in which all real numbers are assumed to be unstable releases.

(it's a joke, I love you, Swift developers)


I’m sure I’m going to be running the HN gauntlet here, but AS3+Flex was a beautiful time to be coding for me. I was paid to basically knock corporate front-end software out (what would now be certainly termed SPAs, oh, how we reinvented the wheel…) day in and day out when Flash wasn’t a very naughty, bad swear word. We knew how it would run in every browser, it was responsive and it seamlessly integrated with all our backend web services. Easily. I honestly feel that it’s only in the last year or two HTML/JS is now at parity with where we were with this stuff nearly 10 years ago. Yes, it is clearly much better now for all sorts of reasons, I won’t sugar coat it… Flash also sucked badly. Very badly. but… AS3 with Flex “bindings/proper ties” was a beautiful set up. It just worked. Always. Everywhere.

The only other language I’ve felt a serious affinity with was Objective-C. It’s the only language where I knew when I hit compile/run any errors were on me. Maybe it’s just having spent years in those ecosystems/languages and developing what some might call “mastery”, I never got surprised. I never felt like a master. People above me always knew so much more. I do remember writing a couple of thousand lines of Obj-c over two heavily caffeine fuelled days, hitting run for the first time and it just worked. Years on I still find “gotchas” in JS and CSS that I just never found in those languages. Maybe I thought about code more back then? Constant integration and hot reloads all the time, just make it all feel a bit different. Maybe I’m just set in my ways from spending a day typing out Spectrum machine code from the back of a magazine? Anyway… my favourite language of all time is Objective-c, that’s all I actually wanted to say. Rant over.


I done AS3 and Flex4 Adobe AIR apps, AS3 was similar to TypeScript . And Flex4 had very good layout components and widgets , IMO web is still behind Flex4 for SPAs advanced applications.

> it would not have been obvious to me a priori that something that was declared version 2 already wasn't stable

Swift came out in Sept. 2014 and v2 in 2015. Just knowing that the language was 1.5 years old would bring long-term compatibility doubts to mind.


That’s not really fair. For example Go programs written in v1.0 are still mostly compilable (the few tweaks you do need to make aren’t substantial).

Rightly or wrongly Apple very much decided Swift should take a different approach to backward compatibility.


You're always rolling the dice with new languages; Go just happened to be mostly compatible. If you want something that will compile in 20 years, pick something with a track record.

My perl5 version 8 code still runs perfectly on version 34, and for all people's (often valid) dislike of perl still helps a lot of companies make a lot of money.

That wasn't the point I was trying to make in that particular comment though.


Most languages offer some guarantee by the time they hit version 1, let alone 2. Take Python for example, v2 took a decade to deprecate.

Swift is the edge case on this one. Not the norm.


Is Swift 4 not yet stable? The point is, I couldn't even migrate from Swift 4 to the latest with my current M1 MacBook. (You need old XCode to migrate from 4.0 to 4.2) What's surprising is the very quick dropping of the migration tools from Xcode.

Out of curiosity (I mostly use old languages so I'm definitely missing something), why does migrating require support from Xcode? It's just text, right? I mean fundamentally you could just copy the files over and then fix them to be compatible with the changes in the language, right? (Does Xcode have some automagic tool to convert between different version of the language?)

Technically, yes. In the easiest cases it's just changes in library function names so effectively the migration tool is just handling all that search and replace for you. Of course there's more complex stuff than that. There's also all the ancillary build files and project setting files that get updated. All pretty tedious to investigate and do by hand, especially for someone like me who just wants to get their old app running again on the latest iOS.

Pretty annoying that they'd pull the rug like that. Actually, kinda worse than the bad-old way of doing things. I'm sure if they hadn't set the expectation that such a tool would exist, you'd have set your code up to be more easily search/replaced (or sprinkle macros around, etc).

> Out of curiosity (I mostly use old languages so I'm definitely missing something), why does migrating require support from Xcode?

That's just Apple being Apple unfortunately.


Wait, did people know at the time that Swift 2 was "not stable"? What version of Swift became "stable"?

I guess for some definition of stable[1] you could say that we knew Swift 2 was not that, and by the time Swift 5 was released we knew it'd reached that milestone.

[1] https://www.swift.org/blog/abi-stability-and-more/


>You kinda did this to yourself by using Swift when it was not stable yet. Meanwhile old Objective-C code continues to work just fine on iOS 15.

In pretty much any other programming language, upgrading to a new build enviroment / ide / compiler does not require a staged upgrade. I can take my android studio project from version 2.x and open them in the latest ide without having to step through intermediate versions. Of course I expect a sea of red, but the ability to migrate directly is present, and it's not in xcode.

edit: And to make things worse, you cannot just download an older version of xcode because it might not run on our newest os/mac. SMH. Planned obsolescence FTW!


Flash died because Jobs wanted it to die. He was worried about AS3s extremely fast development rate (the vector art in fla was years ahead). If iphones supported flash they could develop their own stores and push out games -- all going around apples gating. Security! Glitches! those are all lies - that could have been fixed.

> Security! Glitches! those are all lies - that could have been fixed.

How many years did Adobe have to make those security fixes, though? And yet Flash was probably the #1 security threat for people using a web browser.

I agree that Jobs' reasons for wanting to kill Flash were not particularly altruistic, but it either needed to die, or Adobe should have completely open-sourced it and/or documented everything so people could write compatible (and open) compilers and runtimes.

Depending on proprietary software for things you want to keep runnable for years and years is just a bad idea. If Jobs hadn't been the catalyst, Flash would have died for some other reason, eventually. I can understand that OP perhaps didn't see that at the time (I'm sure I've made the same mistake myself long ago), but that would seem to be inevitable.


It took almost a decade for flash to even work in a 64bit userland for Linux.

I recall the sole dev at the time, complaining that he codebase was a spaghetti mess of undocumented garbage.

So I think Jobs was right here. Anyhow, Adobe is famous for dead end, junky stuff. Their early days were golden, but they rested on old IP, milking it.

EG, flash, cold fusion, their licensing garbage.

These days they do all sorts of weird stuff, and due to their name even banks are silly enough to trust their fraud detection business.

First time I've ever pitied banks.


Unfortunately Adobe is deeply anchored in the design industry with tools like InDesign, Photoshop, Illustrator, After Effect(no competition on PC),... so they have a solid foothold they are going to milk for a very long time. However, most of their newer UX products do not seem to beat the competition, which is a good thing at least.

>Security! Glitches! those are all lies - that could have been fixed.

I can't find it, but back when flash was being killed I recall seeing an analysis of Flash, the distilled conclusion of which was that the sandbox model was so fundamentally flawed that it would not be possible to fix it without breaking compatibility with basically all existing flash content.

And also given the decline of Flash in favor of HTML5+CSS+JS it was unjustifiable to spend the effort doing so.


Most of the single-SWF movies people think about when they think of Flash entirely fit within the current Web sandbox.

Flash does have it's own bizzaro-world idea of CORS, though, which can cause issues with web services not aware of it. Adobe also went through a lot of work in AS3 to support "opaque" SWF content, i.e. being able to hotlink other domains' movies in the same way browsers can hotlink images. It is a concept that makes absolutely no sense in a post-Spectre world. But a lot of movies just outright don't need those features - it's definitely not a "rewrite all Flash Player content" situation.


I wrote an explanation of this earlier today on another forum, so I'm going to be lazy and link to it: https://www.reddit.com/r/apple/comments/t843ss/steve_jobs_to...

Jobs was mostly justified in not shipping Flash as a Safari plug-in on iOS. Adobe had terminal "not getting it" syndrome, and their attempts at shipping the plugin on Android were... actually pretty bad.

The thing Jobs overstepped on was trying to ban all third party development tools; something he backed off on after a few months when it was clear the FTC was going to sue. Believe it or not you probably have played Flash games on your iPhone and not even known it. That's why I say Jobs didn't kill Flash; because the platform actually remained relevant in game development for a few years, up until Adobe pulled the whole "premium features" bullshit which really pushed people away from Flash and to Unity.


>Adobe pulled the whole "premium features" bullshit

I had stopped being active in Flash development by then, what is this about?


Do you remember back when Unity was preparing an "export to Flash" feature around 2012 or 2013? Yeah, well, that relied on two technologies in Flash Player that together let you port native apps to run inside Flash:

- Domain Memory: WASM, but from the alternate branch of history where ECMAScript 4th Edition became a web standard.

- Stage3D: WebGL, but inside Flash Player

Adobe pooped their pants and decided that people cross-compiling to Flash Player should have to pay for it. So they decided that you couldn't use both features unless you agreed to pay a 10% revshare to Adobe; they would be "premium features" now. This would be enforced with DRM in the Player that checked for a digital signature in your SWF authorizing the use of premium features.

This pissed off a lot of people who were still developing Flash games and, ironically, pushed them to Unity or HTML5 (or both). Adobe saw the writing on the wall and killed premium feature enforcement, but the damage was already done. Bonus points: apparently they planned to pay for ActionScript 4.0 with the revshare money they now weren't getting, and just decided to entirely shitcan AS4 out of spite.


Wow, no kidding! That's fascinating (tangentially I was wondering why they never targeted web, my guess was it would weaken vendor lock-in and this seems to confirm that mindset. Though it could also be that web wasn't a very good target in the era when they still cared about Flash.)

I never heard of AS4 before! That's so cool. I found a specification and whitepaper here https://github.com/adobe-research/ActionScript4

>HTML5/JavaScript is here to stay. One cannot not serve the Web! Here it is our task to provide a superior alternative where HTML5/JavaScript is bound to lack.

It was supposed to be a compiled language, in order to solve performance and battery issues on mobile devices.

Being able to say "we fixed one of your biggest complaints / reasons for trying to kill us" sounds like it would have been pretty good marketing, and Adobe with their budget seems like they could have afforded that easily. (I don't know how much it costs to develop a new programming language, but I know it has often been done by a single person in their spare time!)

It sounds like they also had plans to eventually bring AS to the server-side (made largely practical by the same advancements benefiting the client). (Perhaps they could have learned a thing or two from Haxe, with its "compile everywhere" and CPP transpilation.)

Alas! Now to see if any curious bystanders have bothered to implement it... seems not. (I guess that's not too surprising, we're only halfway* done with AS2/3 implementations as it is!)

* https://github.com/ruffle-rs/ruffle/wiki/Roadmap#milestones


Adobe actually was targeting web, or at least trying to: in 2012 they shipped Adobe Wallaby which allowed export of timeline animations to HTML5. Then they replaced it with CreateJS export. Both of these had absolutely zero support for ActionScript and relied on the user to rewrite their app for browser JS. The reason for this is because actually getting ActionScript to work, and work well, is very hard - especially with 2013's mobile web browsers.

The most obvious solution - recompiling ActionScript bytecode or source for the web - would be very difficult, for a number of reasons. While AS2 and AS3 are both ECMAScript derivatives, they differ substantially from the JavaScript we actually ship in browsers. Even basic property look-up deviates significantly from regular JavaScript, either because AS2 has too many compatibility hacks, or because AS3 has too many ES4 features that never actually made into browsers.

If you wanted ActionScript to work, you would need to ship your own AVM implementations, which in 2013 would not be performant on Mobile Safari[0]. Google and Mozilla both did that anyway, shipping interpreters for AVM1 and AVM2 code. For Google's intended use case of porting ads to HTML5, this was fine. Mozilla would eventually abandon Shumway, however, citing performance problems. It was very much ahead-of-its-time. And Google's intended use case stopped making sense as advertisers just used HTML5 tools anyway, so that was shuttered too.

I'm not entirely sure what they meant by AS4 being a compiled language, though. All ActionScript is compiled into bytecodes and can be further recompiled into optimized native code (though AS2 never got this treatment). The language spec PDF seems to hint at ahead-of-time compilation, which absolutely would help iOS, but only to say that such compiled code needs to work the same as the interpreter. Whether that was actually enabled by new language semantics or just intended to be handled with profiling an instrumented AVM4 is something I would like to know.

Implementing AS4 in Ruffle would not be practical without a compiler and player implementation, and as far as I can tell those weren't ever publicly released. The standard library of a language and how events are pumped into it's UI framework are just as important, if not moreso, than how the language describes it's code.

[0] asm.js was a thing in 2013, but it was a Mozilla-specific technology Safari never implemented. WASM would not be standardized until 2017, with Safari support launching that year. At that point Flash Player was already on life support.


I teach high school students from time to time and over the years I have accumulated a large library of STEM training material. Of which there are a lot of PowerPoint slides with interactive Flash content embedded.

When MS and Adobe turned off Flash for Windows, the MS Office flash plugins also stopped working. I had to set up a VM running windows 7 to be able to use them again. It is not as smooth as running powerpoint natively but it's good enough for classroom demonstrations.

However when students ask me to share the slides I have to tell them that while they are welcome to have it, about half of the stuff won't work properly because of a rich media plugin they are too young to have heard about. Besides, I don't want to teach them how to set up their own VM, and I doubt they are willing to go that far.

I have spent some time looking into this problem and have not found any third party tools that will allow embedded flash to work again. So much for the digital dark age.


15 year old students are too young to know flash? Damn, I'm actually getting old

Homestar Runner is old enough to buy you cold ones.

Steve Job's letter on flash is 12 years old now.

https://www.statista.com/chart/3796/websites-using-flash/

Flash lost half of its marketshare down to 15% by 2014. I'd wager that most of the remaining sites were more niche or legacy and probably not seen by a 7 year old kid under general circumstances.


You could package it up and give it to them to run on VMware Player.

Licensing would be tricky. Windows and PowerPoint are not friendly to being distributed like that.

> I have spent some time looking into this problem and have not found any third party tools that will allow embedded flash to work again.

I'm curious if you've tried ruffle: https://github.com/ruffle-rs/ruffle

It will not work for exactly your problem (powerpoint plugin vs html5 webpage), but I've found most relatively simple flash programs run under it. If the embedded flash content you've got is relatively simple, you might be able to run it in a browser with ruffle.

At which point you could swap out the powerpoint presentation from embedding flash alone, to embedding flash + having a link to a webpage for modern powerpoint users, which wouldn't make for good presentations, but would be better than nothing for students reviewing it.


AS3 movies won't work yet. We have a runtime implementation, but adapting our existing display tree for it has been... not a fun time. I have an active PR that fixes a lot of long-standing order-of-operations bugs in Ruffle but it's stalled on... uh... review, mostly. Also, it has a few minor bugs still, especially involving gotos in event handlers, because gotos are evil.

I've considered actually porting Ruffle to COM/OLE, which is how you're able to embed Flash in Powerpoint[0]. However, the current state of Rust COM bridging is... not great. I'm actually working on the opposite of that right now: embedding Flash Player itself in a host binary so I can stream automated input into it. I need this to track down those remaining event handler bugs I mentioned.

[0] Fun fact: Pretty much all ActiveX components are embeddable in Office, because ActiveX is just "WebOLE". Turns out Microsoft had solved the problem of "sticking apps in other apps and having scripting code access them" years prior to the Web being a thing.


Lots of great info here.

It's heartening to hear that AS3 is being worked on, I'm sure you'll get the issues sorted.

I wonder when something like OLE will happen again, but with webassembly based apps ?


I mean, Web Components already gives you a pretty similar experience: you can stick arbitrary properties on your custom elements and use shadow DOM to build internal documents that outside code can't inadvertently access. That and WASM is basically feature-equivalent to what ActiveX was trying to do, but actually engineered to be a standard rather than just proxying everything to COM/OLE.

Is there any way to re-embed them with OLE?

Flash in Internet Explorer used ActiveX[1], which basically was OLE at its core, so that'll almost certainty be the way Flash content was embedded into PowerPoint originally.

[1] Other browsers used NPAPI as the plugin system.


I think the quick solution is to record the screen while you play the flash. If not mistaken virtual box has a built in video recorder.

Edit: Oh you said it is an interactive flash. Screen recording won’t do it.


That content must be teen years old now. It seems ok for training materials to be refreshed once a decade.

Some flash content is incredibly creative and complex. Chances are that it just gets replaced with less interesting content.

Flash is terrible in retrospect, but I used to love making Flash games in high school by myself. Amazing experience.

> Flash is terrible in retrospect, but I used to love making Flash games in high school by myself. Amazing experience.

Flash isn't terrible. Flash as a browser plugin was terrible and insecure indeed. Flash was no more terrible than Java or .net on the desktop as a multimedia app platform. In fact it made it easy not only to create interactive "experiences", games, but also artist authoring tools. Alchemy allowed to incorporate C/++ code into Flash, and Flash also had its own shader editor for effects. Adobe threw the baby with the bath water.


> Flash is terrible in retrospect

Actually it has a good use case for videos and animation. Flash animation uses vector graphics, saving huge amounts of space for basic animations and allowing the animation to scale to any screen size without degrading resolution. Part of the reason Flash took off on the web was due to small size (useful when network throughput was more limited).


The tooling was excelent. In a way tooling is more important than the underlying tech. Especially for amatour projects.

> This is made more frustrating by the fact that something about newer standalone flash players causes one of the levels to be near unplayable.

It might be something else. I replayed Nitrome's Mutiny a while back, and though BlueMaxima's Flashpoint could get me around the site lock, whenever an enemy used the anchor weapon, the game would lock up for about half a minute, with the anchor at the top of the screen but still waiting to fall. This never happened back in the day.

I bring this up because Flashpoint comes with a few dozen different versions of Flash, and none of them fixed the bug. So it's probably not the Flash player version. Maybe it's something in the OS, I dunno.


Didn't Flash games sometimes employ DRM-type stuff to prevent swf jacking? Check the domain, and if it isn't an approved on, fail to run / do something devilish like make the game unwinnable with a note about it being stolen.

EDIT: Oh, you were saying Flashpoint got around some initial domain check. Perhaps the developer added multiple, one obvious, loud one upfront and a few more later in the game.


It wasn't DRM. The game was still playable, this one attack would just take much longer than normal. It was unfortunate, since I was planning to try speedrunning the game, and the bug just ruined the flow and the pace.

would Adobe Animator not work?

fairly sure it is the old Flash with a new name and new ways to publish your stuff.


Lots of AS3 developers never actually touched Flash Professional, in fact CS3 was outright broken in AS3 because they expected you to use Flash Builder / Flex. This was the point where Flash stopped being the way you wrote Flash games.

The only reason I still subscribe to Adobe, who I hate, is to be keep a working version of Flash Builder around in case I ever want to recompile old AIR games I wrote that no one will ever see now. Sad times.

You may be interested in

https://airsdk.harman.com/

https://airsdk.dev/

https://github.com/airsdk

It's still actively being supported (and developed?) after Adobe transferred it to HARMAN.

"The SDK is free for personal use and for low-income companies."

Update: upon further digging I found a link to a different company developing "CheerpX for Flash", a WASM runtime that runs SWFs in the browser. Also nonfree, no pricing info, but they seem to be generous to nonprofits and education.

https://leaningtech.com/cheerpx-for-flash/


Meh. The implementation is not the game

A reminder to invest in libre/free/open infrastructure folks. It's not just widening the tent and lowering the barrier to entry for people today, it's also making it accessible to all of our future selves.

Well, free software also do die sometimes. But sure, it's by far the best option. All the things I do with a computer is based on free or open source software or open standard. Curiously, everything still works 20 years after... Watching movies, listening music, text/calc, coding, mail, internet,... (not playing game though, the kids have their console but they don't create anything with it, so I don't care if it gets obsoleted)

Free software dies but usually because of lack of interest.

Case in point: Ruffle. Flash died, free software picked up the torch.


Free software won't mean that operating systems won't disable software by retiring APIs. For example on Linux, at some point somebody deprecated some systray icon Api. And some linuxes, like elementary OS just full on disabled systray icons, with some arguments about this having been deprecated years ago, and u shouldn't use software that depends on systray icons.

This doesn't just disable old software, but also current software - for example the Dropbox client doesn't work out of the box, and caffeine/caffeinate doesn't work either.


You bring up valid points about engineering practices and backwards comparability in general. I do think you're nitpicking a bit when it comes to the issue at hand.

For example, in you grievance, is there a way to provide a Docker solution to run the working code under 'emulation'? Is there a way to compile an older version of the kernel to run these programs in the way you want? I don't know but my bet is that the answer is 'yes' to both of those.

My point is that this wouldn't even really be possible without a FOSS ecosystem. It requires labor from someone who cares enough to fix it but at least the avenue is open enough in the form of accessible standards and code. Under a proprietary standard or source these would need to be reverse engineered or, in maybe an extreme case, be illegal.


For a professional programmer, OSS from 20 years ago is not a hopeless task. Read compiler errors, fix headers, patch things, eventually get a working build.

For a non-technical person who just wants to get their animations working again? Essentially impossible.


Qt4 is already too tough for me!

This is a valid point but there are a few counterpoints that come to mind:

* FOSS now, while complex and intimidating, at least has the possibility of allowing for bug fixing and alteration (and having those alterations fold back into the main project) whereas proprietary software almost surely does not.

* The situation is not as dire as you suggest for many projects, especially ones that are self contained or smaller in scope. Arduino libraries can be understood and updated. There's a lot of scientific software that can have parts isolated, updated and fixed for someone knowledgeable enough.

Technical tasks like fixing headers, patching code or even using Git, are intimidating and difficult. Many projects are so complex now that on-ramps, even for highly technical users, are difficult. I don't see that changing anytime soon. FOSS at least offers people who can understand these technical tasks the possibility to take actionable response.

Convenience is absolutely something that should be prioritized but proprietary software and closed standards favor ease of use at the cost of freedom and, ultimately, longevity. My view is that FOSS is a necessary but insufficient element to a healthy ecosystem. FOSS, especially compared with proprietary software, is at least a step in the right direction.


I'm honestly really sad that there's no simple way to get Flash games working anymore. Flash games were a huge part of my childhood and now all of them are basically unplayable without spinning up a VM.

Check out both Ruffle[0] and Flashpoint[1]. Ruffle is an open source flash player emulator that compiles to WASM and has a browser plugin you can add that will allow you to run embedded flash content on a web page (although its not needed if the server serves up a copy of Ruffle). Flashpoint is a collection of thousands of flash games with an easy interface to play them through flash player.

[0] https://github.com/ruffle-rs/ruffle

[1] https://bluemaxima.org/flashpoint/downloads/


I have used the standalone flash player by adobe on linux. I don't know what you are talking about.

This situation sucks, but this is one of the big reasons why so many devs will warn you against having closed-source proprietary dependencies. The day the company behind it kills support, all your projects are dead. And it's always a matter of time.

If your wifi card has proprietary firmware, you can replace the card eventually. If the language compiles is proprietary, it's only a matter of time.

If flash had been open source, I'm sure there's be some small group of passionate devs keeping it alive. But as it is, this is simply not possible.

Let this be a warning if future choices.


I have the same problem with a bunch of flash animations I made a long time ago. This makes me really sad :(

> I remember using FDT for development, but this program crashes upon opening. I’ve tried installing the Flex SDK, but running the compiler throws errors about finding the location of certain required files (why these aren’t a part of the SDK is beyond me).

There's likely some breaking changes in the past decade of Flex SDK. Try to use a VM or Container with something like Ubuntu 12.04 or Debian old-stable and use old versions of the Flex SDK, this will give you a higher chance to compile successfully.


Unpopular opinion. Flash ( its runtime and the Dev Environment ), HyperCard, and arguably Visual Basic 6.0

These three in my opinion bring a lot of people into coding. I guess the word programming would be too prestige to be used to describe them and may anger those in Silicon Valley. But for the 99% of people out there, all they wanted was their computer somehow do what they tell them to do without being shown all these functional / object oriented programming and which programming language to fight for etc. People were even happy just coding a plug-in for World of Warcraft using Lua.

I still think the whole industry for computing has moved in the wrong direction.


I owe my entire career to Flash.

Me too, I was a vulnerability researcher =)

(Not really, but the joke wrote itself)


There are still a ton of people learning how to make basic games using Processing or Python. Excel is also used a lot to automate things which can be a gateway to learning a more advanced programming language. Just people kids are learning in new ways doesn't mean they aren't learning.

I do concur that it's sad that a lot of modern games and applications have gotten less hackable which has removed a door that a lot of old school programmers used to learn how to code.


I started programming in Flash (after doing some basic html/css), and have later done some stuff in Processing as well. Flash was an infinitely better tool to get started with programming because it lets you actually draw and animate vector graphics, and then sprinkle in a tiny bit of code to make things interactive.

Compare that to Processing, where even just using some images drawn in some other tool is more difficult than it should be. I don't think you can really even compare the two in terms of beginner productivity.


In that case, I think Unity fits the hole that Flash used to fill. You can copy a bunch of free assets from the store (or build your own using blender) and then sprinkle in some code to make a game.

Unity fills the same kinda niche as flash and shockwave

Except Unity is much more complicated to learn and build in than Flash.

Have you tried before and is it really? I think most people just get get scared away without even trying because it sounds harder then it really is.

Making simple 2d games with unity is pretty easy. UE4/5 on the other hand is much harder to get started in, though it's also more customizable


Yes. I am actively learning Unity as a hobby.

I was a Flash developer back in the day.

Huge difference in learning curve.


Have you tried flash back in the day? It was almost as easy as drawing to make some games.

Those and Excel to a lesser extent. There are people who otherwise know nothing about coding who know enough about formulas and functions in Excel that they can make some pretty sophisticated calculators because the software gives them just enough of what they need without overloading them with the completedness of a full fledged programming language.

VB6 contributed heavily to my early coding education because, in the early days, I was more interested in merely being able to make a Windows program with buttons, checkboxes, and all the fancy widgets that were available. Visual Basic hands that to you on a silver platter and did so quite well.


Flash let visually oriented people dabble in programming.

Excel let numerically oriented people create mini dashboards and interactive calculators.

I recently discovered Glide Apps [0], which takes an spreadsheet-first approach to no-code app development, and it's totally changed how I understand programming concepts. I know HTML/CSS and just enough PHP for WP sites, and not much else. But seeing how data in Google Sheets visually populated specific field containers in my app UI got me looking into the Fetch API for JS, which allows me to do the same thing using JSON.

[0] glideapps.com/


None

I am one of them. Started with ActionScript 2 and ended up with TypeScript.

Also, Flash IDE is one of the best vector graphics editors.

Speaking of which, do you use Scratch or similar to teach your kids programming?


Right on the money.

These were popular and mixed visual metaphors (a drawing program in Flashs case) with programming.

Of course many things exist today, but they are all niche.

Flash was "art first" and it showed in how creative many of the things created were.

Today websites are primarily created by programmers and everything is all the more boring for it.


Always preserve your tool chain.

If you can’t, anything you develop will never really belong to you.


I want to remind everyone what happened, here.

By the beginning of 2010, it was clear that the App Store was likely to become a massive cash cow for Apple. Flash was direct competition, however. If one could play a game in a browser rather than buying it, Apple would lose out on that income. Everyone was clamoring for Apple to add Flash capability to its mobile iPhone browser. Adobe offered all help, yet Apple continued to drag its feet. It became obvious something was going on.

In April, Steve Jobs wrote an open letter, "Thoughts on Flash", stating, among other things, that HTML5 could deliver a superior experience to Flash and that Flash had such inherent security and performance problems that they could never be rectified.

These were lies, but Apple's henchmen in tech media, especially Wired and Gawker, repeated this lie endlessly, destroying a creative ecosystem and industry so that Apple could have its App Store.

The web is unable to deliver an experience like Flash could, and likely will never be able to.


>The web is unable to deliver an experience like Flash could

I think the browser has been on par with Flash Player for a while, but Flash-the-authoring-tool (to my knowledge) does not yet have an equal. (I'm told Adobe Animate, the rebranded Flash authoring tool, is somehow unsuitable for creating games, despite HTML5 export features.)

To put it another way, I think we've more or less replaced the Flash Player, but we haven't replaced Flash Professional. (As others have mentioned, Unity kind of covers the same ground, but not really.)


You cannot find Flash experiences on the web, nor even Flash-like experiences on the web. There has been no replacement.

This post seems to confuse capability with actuality. Sure, we have the technical capability for a Flash-like player and authoring tool, but it does not exist.


Maybe I misunderstand what experiences you are looking for, but if you go to itch.io and choose HTML5 do you not see the things that used to be made in Flash?

I don't know if it's just a case of nostalgia but itch.io looks like a wasteland compared to newgrounds.

The market is smaller and there are fewer experiences (mostly due to native mobile gaming) but those experiences do rival (and exceed) what was done with flash back in the day.

On that note, Flash games were basically web games (back in the day Java filled the same role to some degree, eg with SodaPlay (RIP)), and web games as a whole seem to have gone away to some degree, I'm wondering why that is. I guess they don't work very well on mobile (relative to mobile games that run fullscreen), and most (~50%) web traffic is mobile now?

There has been a bit of a resurgence of browser games with Friday Night Funken. I feel as the app stores continue to stagnate, the open and creative nature of the web platform will foster a new market for easily distributable games.

There are more specialised tools that can export games for HTML5, but Flash was extremely general purpose. In my time as a Flash developer, I worked on web animations, games, websites (not a great use-case), digital signage, touch screen kiosks, eLearning products, tutorial animations, and I didn’t even touch any of the more enterprisey flex stuff.

You can do all that now with various tools but the ecosystem is so fragmented that you often need specialists for each of them. The Flash tools had so much reach that you could bounce between such wildly different projects with very little friction. As a consultant it was amazing, you just did it in Flash. Nowadays there are so many competing and fragmented solutions that you need to evaluate then glue together.


You are the one confusing "player" and "authoring tool" as there absolutely are players with all the functionality of the flash player and more, they are just called browsers.

What's more there absolutely are "html5" experiences that rival the old flash experiences. In most ways these experiences are much better. Perhaps as an old commerical flash developer youbhave a rosy memory of flash in the naughts. Back in the day, the only time I wasn't pissed to see flash loading was when I played flash games, every other use of flash was generally awful and I would usually immediately close a page if it started loading flash. As much as I hate the bloat and SPAification of the web, it is still far better than what most sites did with flash.

The demise of flash is complicated and has a lot to do with the rise of mobile. Android did support flash but even on that platform, native games simply outperformed flash games and the market demand shifted. If Apple had supported flash on iOS, this shift would probably have been slower but flash would still have lost out.


Adobe Air could target mobile platforms with negligible degradation and generated swfs for web, too. I and most other serious flash devs in this era had a toolchain where you built once in AS3 and published to web and mobile using frameworks like Starling.

Flash died not because it couldn't do mobile. Thinking this is part of the hit job orchestrated by Apple. Flash died because browser games can't be taxed by Apple.

The same thing is happening today with progressive web apps. Ask yourself what Apple could have against those, and now look backwards at their stance on Flash.


> Flash died not because it couldn't do mobile.

I never said it couldn't do mobile. I said it couldn't do mobile as well as native.

Flash died faster because of apple, but was always going to die due to the combination of the rise of app stores, mobile battery issues, and the advancement of web standards.

Apple did the work to integrate flash into the iPhone before they rejected it.

I think it is interesting that Apple gets all the blame here since the decline of flash also coincides pretty directly with it's acquisition by Adobe. Youtube's early moves to offer non-flash video also had significant effects.

While I am a big critic to Apple's approach to called gardens, the decision against flash was as much prescient as it was causative of the decline of flash.


In my experience, having worked closely with these technologies in my day job during this era, the average person talking about it has an oversimplified view of the technologies and comes to the wrong conclusions.

Adobe did not want Flash to die, and their product manager was very involved in the community to figure out what needed to happen to prevent that. I don't think Adobe invested enough into those demands, but still there was steady investment made. If they had more time, and Apple wasn't such a bully, the tech could have evolved and survived.

Adobe built Stage3D so that one API could target GPUs across desktop and mobile. Think WebGL, which was released around the same time. But production-ready due to the distribution advantage the flash player had over browsers at the time.

Adobe funded open source projects such as Starling to create scenegraph-like APIs on top of Stage3D, providing an on-ramp for all existing AS3 devs to the new paradigm with their existing API knowledge and tool chain.

At this point in the timeline, any AS3 dev could write cross platform games and apps if they picked up a handful of mobile GPU concepts like draw calls, texture maps, and bitmap fonts. (You could take all these things for granted in the traditional Flash scenegraph.) Unity existed at this point but did not yet have dedicated 2D libraries. You'd be rendering your 2D game onto a face in a 3D world, with a fixed camera. Total overkill. They wouldn't be as performant as Stage3D for a couple years.

I disagree with the assessment that Adobe was a bad steward because I saw them trying with my own eyes.

I also disagree that Flash couldn't do native apps with native performance because I built them with my own fingers.

Lastly I disagree that web standards obsoleted Flash because where are the web games? Why aren't they playable on mobile safari? Why don't the web standards come with a dev environment and where are the dominant Flash monetization models?

Apple played hardball so that the only way to be on their platform was to use their tech in their way signed off on by their reviewers and monetized by their app store. They also wrote FUD pieces like the famous Jobs letter.

Who was the villain here? Is Apple justified robbing us of a Maker's renaissance era because it wasn't mobile ready at the literal dawn of mobile computing?


> because where are the web games?

All over the place. I see them regularly posted to HN. Did you miss the entire '.io' trend of web games? The market is smaller because it was partially eaten by native mobile games, but it is alive an well.

> Why aren't they playable on mobile safari?

Aren't they?

> Why don't the web standards come with a dev environment.

That's not what standards are. There are a plethora of web development tools and frameworks that target the web. All of these target different needs and visions.

> Is Apple justified robbing us of a Maker's renaissance era because it wasn't mobile ready at the literal dawn of mobile computing?

> I disagree with the assessment that Adobe was a bad steward because I saw them trying with my own eyes.

Adobe abandoned mobile flash development in 2011, when mobile was a fast growing, but still small part of the market. This is also when android more or less caught up with iOS in terms of adoption.

If adobe had continued investing in mobile development, would flash have survived? In retrospect, this is the decision that put the final nail in flash's coffin as mobile won the eyeballs.

If Apple had included flash in iOS, would that actually have saved flash?

Was a closed source, proprietary ecosystem that was late to mobile ever really going to stay the dominant media delivery platform or even survive?

We don't know the answer to these questions but placing all the blame on Steve Jobs is simply too simplistic to be true.


The market is smaller because the devs can't make money. Since portals were an advertising and profit share model, reach mattered. As more and more users switched to mobile browsers, the games can't run there, and browser gaming can't pay developers and it dies. Now who made it so that the mobile browsers can't play these games? I thought the letter said that open web standards had made Flash obsolete? Apple's ecosystem didn't naturally cannibalize flash gaming. It conquered it with violence.

Next: They weren't playable on mobile Safari, no. Safari finally supports WebGL 2 as of Sept 2021. A full 4 years after the other browser vendors supported it. Why drag their heels on this open web standard? Does their platform have something to lose from a little competition? You condemned Adobe for being 'late' to mobile (citation needed) but don't condemn Apple for being late to a web standard meant to replace Flash like they said in their original FUD letter?

Your retelling of Adobe's history is wrong. They were still very much invested in mobile development up until the end of Flash. In fact to this day you can still use AIR to target iOS and Android with native apps. They release updates regularly.

It's very clear that you don't have any idea what you're talking about, have not interacted with these companies professionally, and have not used the technologies in question or even followed along.

The only way to make sense of the facts is to accept that Apple lied in their letter because it was good for Apple's business and that goodness came at the expense of end-user choice.


> As more and more users switched to mobile browsers, the games can't run there, and browser gaming can't pay developers and it dies.

As an android user with an embarsingly high level on Kongregate back in the day, I can tell you that almost no flash games worked well on mobile, even in browsers that did support flash. The mobile flash gaming experience was just bad, which is a big part of why it died.

> Your retelling of Adobe's history is wrong. They were still very much invested in mobile development up until the end of Flash. In fact to this day you can still use AIR to target iOS and Android with native apps. They release updates regularly.

Yes, Adobe abandoned mobile flash in favor of AIR targeting html5 and native apps in 2011. That is exactly my point, Adobe abandoned mobile flash which was another big part of why flash died. See: https://www.pcworld.com/article/478103/adobe_ends_mobile_fla...

> It's very clear that you don't have any idea what you're talking about, have not interacted with these companies professionally, and have not used the technologies in question or even followed along.

It's clear you don't have a real argument or facts to back it up if you resort to this kind of crap.


I used Flash on my android devices back in the day (Firefox and others had support).

Flash sucked on mobile. The VM wasn't as fast as JS JITs in the browser by a long shot. By the time the processors could keep up, Flash had already been dead for years.

Adobe Air existed on mobile and it wasn't a good experience either.


Most of it comes down to an integrated and cohesive development/creative experience for the content author. The current tooling provides such a level of friction that people aren’t experimenting and pushing boundaries of web content like they did when Flash was popular.

I typically work for creative digital agencies, and every single project requires so much tool/framework/library exploration now. Back in the day, you would always just use Flash, and you got the project done really fast. Everything takes so much longer now, and it’s because of tool fragmentation, or just plain lack of tools.

If I ask the question, “what animation tool should I use for animated web content”, there just isn’t a good answer. Back in the day, you would just use Flash.


> Back in the day, you would just use Flash.

And back in the day, I would close your site as soon as it opened if it started loading a flash animation. Using flash for a website animation was never a good choice, at least not for the end user.

I am perfectly happy to have a higher bar for rich web content if it means a less user hostile web than we had when flash was everywhere.

If we really need a more integrated and cohesive experience for content authors, then go out and make it. The fact that one doesn't exist may indicate that there isn't a cohesive demand for such a tool.


Flash was used for a massive variety of use-cases: Digital signage, touch screen kiosks, eLearning experiences, games, web animation, etc. No one is just gonna go out and build a new Flash along with its ecosystem. I used web animation as one obvious example, but the reality is that there is an extreme lacking of cohesion when you look at just about any part of developing for the web. The ecosystem is currently such a slippery foundation that creation of an authoring tool with the scope of Flash is basically impossible to achieve.

> The ecosystem is currently such a slippery foundation that creation of an authoring tool with the scope of Flash is basically impossible to achieve.

I would say that the scale, scope and complexity of that ecosystem outgrew the ability of one or even a few tools to satisfy it.

The idea that flash was ever going to survive as the one tool for interactive content, videos, games, animation and more is simply silly.


It’s not silly at all. I’m not talking about Flash competing with Unity, Unreal, and every other web app. I’m saying there is a desperate need for something that just does what Flash did circa 2007. HTML5 was meant to do that (that was the promise) and still it doesn’t. The old Flash guys aren’t harping on about it just because of nostalgia, but because it has become much more difficult and expensive to produce the kinds of content that Flash excelled at in 2007.

If there's a market for tooling to go make that content, then go make that tooling.

I think that market is actually pretty small since most of the use cases that flash was filling are better served by the varieties of tech that exist today.


> Using flash for a website animation was never a good choice, at least not for the end user.

And yet Flash persisted across the web, until a giant like Apple decided to de-platform them in favor of its own lock-in solution.

Consumers for the most part have no idea what tech lies under the hood for the websites they visit.


> And yet Flash persisted across the web, until a giant like Apple decided to de-platform them in favor of its own lock-in solution.

Flash was a proprietary technology that bootstrapped the early web but was doomed due to a combination of ongoing security issues (which pushed browsers to move it to a plugin and disable autoplay) and poor support for emerging platforms.

> Consumers for the most part have no idea what tech lies under the hood for the websites they visit.

The vast majority of of the tools and languages that lie under the hood for websites, especially on the frontend, is built on open source tech.

There are plenty of shady things that Apple has done, but it is ridiculous to blame Apple for single handedly taking down a doomed technology. This is an example of Apple's prescient side, not it's nefarious side.


I recently came across https://rive.app/ which seems to make some steps in the right direction as a replacement for Flash-the-authoring-tool.

Interesting, thanks for sharing! I spent a few minutes playing around with it and it, it seems to target a different niche from Flash. You can't make games with it, only animations for games you'd make in something else.

There's no brush or pencil tool, only a very bezier-oriented Pen tool. You're supposed to take the results and integrate them into your game/app using one of their various cross-platform integration libraries. So you'd still have to use something else to make the game, this would just help you make animations (and maybe art, if you like bezier curves).

Still, in an era of "render your vector art to bitmaps and dump them in Unity" it's nice to see a tool that does realtime rendering of vector-art animation :)

It doesn't seem like it would be too hard to use this to make a HTML5 game (they provide a wasm module for playback of assets) but it's definitely a ways off from a fully integrated solution (and they don't currently seem interested in that aspect).


I still use Animate CC as an animation tool for web. I don’t like the HTML5 export feature. The “export texture atlas” feature is much more useful. I have built a runtime for this feature, designed to integrate into whatever renderer you use (Canvas2d, WebGl, DOM, Three.js). It’s kinda like Lottie I suppose, but allows for more dynamic behaviour.

https://github.com/jackwlee01/animate_cc_runtime


Re: the player exists, but the creator is lacking: in that sense the Web, even today, is a "Turing tarpit, where everything is possible, but nothing of interest is easy."

If this is true, why didn’t flash takeoff on android devices?

Because developing for less than half the mobile market (back in the day) was a bad idea.

I don't understand the question. What does takeoff mean in this context? What didn't happen that you would have expected?

Flash existed for Android. Ignoring the fact that it was slow, buggy, and power-hungry—the same arguments against it everywhere else—why didn't it thrive? Why couldn't it compete with the Google Play store, if it would have been such a keen competitor to the Apple App Store?

You're way too hung up on this idea that everyone loved Flash until Steve Jobs commanded them not to. My understanding was that it was pretty easy to create animations and rudimentary games in it, so, sure, maybe creators were pretty fond of it? Maybe even too easy, which is why we saw "look what I can do!" Flash websites in places where it was entirely unnecessary and unhelpful (restaurants were notorious for this). But end users never liked it. Or Java applets, for the record.


Another reminder: The Flash Player sucked pretty hard on macOS. It was slow, buggy, the fans would go nuts and Adobe didn't care. If they didn't care about Apple users, why would they care about a new thing?

> The Flash Player sucked pretty hard on macOS. It was slow, buggy, the fans would go nuts and Adobe didn't care.

This is a thing that literally never happened. No one said anything like this until after "Thoughts on Flash"


I'm pretty sure that it happened. I had a white macbook in 2007, and I used to run a pretty popular flash game website back in the day. It sucked.

You used to run a Flash game website from your macbook? You loved Flash games so much, you built/ran a website where people could play Flash games, but it just sucked so bad that you remember it as sucking all these years later?

Not sure what you're saying, here.


I meant that I was, back in the day, a mac user, I tested a lot of Flash content and that it was very, very shitty.

The point about security doesn't strike me as a lie. Flash had an atrocious security track-record, and it was a proprietary black-box, so no one else was able to build a stronger implementation.

> The web is unable to deliver an experience like Flash could, and likely will never be able to.

Plenty of Flash content can be converted over to HTML5. As an example, this old website: https://www.homestarrunner.com/


> The point about security doesn't strike me as a lie

Which part?

The lie was that these were inherent. "Thoughts on Flash" could have said "We have specific, actionable requirements, and if Adobe can meet them, Apple would be delighted to welcome Flash onto the iPhone". But, welcoming Flash was not the goal. Destroying a competitor was the goal.


I always understood the "inherit" part as "Who can find and patch the security vulnerabilities that affect his clients?". And since Flash was a closed source 3rd party plugin, it meant that the Safari team is dependent on them. Both for discovery and fixing bugs. Meanwhile, HTML5 and each Browser's Core (Webkit, Chromium etc.) is open source. This kind of closed-source vs open-source+open-spec is indeed inherit to the product.

I liked Flash too.. but the reason we don't have "HTML5 Flash" is only due to business decisions from Adobe headquarters. Since Steve Jobs prediction was correct (even if by chance) that power-wise, HTML5+JS=FLASH.


FYI, "inherit" is not the right word, you want "inherent"

> "I always understood the "inherent" part as ..."

This comes off as a just-so story to explain Apple's actions. That Apple would criticize Flash for being closed-source is absurd, but that people would repeat that as a valid criticism is baffling.

By the way, only the run-time was closed source. Build tools, language, was all open-source. You didn't even need Flash to compile a swf.

> power-wise, HTML5+JS=FLASH

I'm not sure what you're saying here. "power-wise"? What does that mean?

HTML5 has in over 12 years never been able to deliver the experience that Flash does. They are completely different things. Jobs' successfully conflating them in everyone's mind is a testament to his power as an influencer. Awesome, really.


>That Apple would criticize Flash for being closed-source is absurd, but that people would repeat that as a valid criticism is baffling.

That's how propaganda works. You need a lie and some newspapers to amplify it. Jobs was a "good" propagandist.


Can you both help us understand your stance, instead of throwing political words?

In his open letter [1], Steve Jobs specifies his open source contribution for HTML5 and the Webkit browsers. Meanwhile Adobe itself did not contribute any. All the available tools noted above were not officials. He was very correct at the time.

Also noted in the letter, the incentives in play are actually the opposite of what you have said, as how Apple and Adobe work together bringing Adobe software to Mac. Why would Steve Jobs hurt any Adobe product, isn't it hurting the MAC demographic at the time (artists)? As there was never any Apple software competing with Adobe.

IMHO, it's more likely that flash on mobile were to be a real problem holding the iPad\iPhone back if supported. So much so, Steve had to publish it and gain support from the outside world. Because I doubt any C-Level executive would be behind him destroying the mutual relationship with adobe.

[1] https://web.archive.org/web/20200430094807/https://www.apple...


Nothing was converted. Homestar Runner now runs an Flash emulator (ruffle) to play SWF files.

I strongly disagree that the only reason Flash died was Steve Jobs/Apple's personal vendetta against it. Sure, it might've played a part, but as other commenters already pointed out Flash was riddled with problems - it was a resource hog, the macOS implementation was buggy and slow and Adobe seemed to not care about fixing these problems, and it had a very bad record of security holes. Plus it was closed source and the format itself was undocumented.

I can see how all the aforementioned problems made it so Apple didn't want to include it on its mobile devices. And even if politics played some part in it, these problems made it easy for Apple to convince everyone else that retiring Flash is the right thing to do.


> Flash was riddled with problems - it was a resource hog, the macOS implementation was buggy and slow and Adobe seemed to not care about fixing these problems, and it had a very bad record of security holes

Yeah, see this? This "riddled" word? That's how I know you're just repeating what you read. It's a tell.

Jobs + Wired + Gawker + Apple made an incredibly strong conceptual gravity well that makes conversation about this difficult. They all use this "riddled with security holes" phrasing. It's like you just repeated "No, you don't understand. Brawndo is what plants crave."

What security holes? Specifically? Were they more serious than any browser?




During this conversation, someone inevitably posts this without comment, as if it is a rhetorical slam-dunk.

Could you expand on this? Your point is the Flash had vulnerabilities?

What software doesn't? https://www.cvedetails.com/product-list/vendor_id-1224/Googl...

Remember, Jobs' contention was that Flash's problems were inherent. Can you support that?


Compare Flash to Safari then: Flash is a comparatively small VM runtime and vector graphics engine while Safari is a whole browser, which has a much larger attack surface. And Safari, despite its increased complexity, had about the same amount of reported vulnerabilities around 2010:

https://www.cvedetails.com/product/2935/Apple-Safari.html?ve...

So, objectively, Flash did have very persistent security issues.


"Comparatively small" is doing a lot of lifting, there. What about Flash was "comparatively small" compared with Safari, and why does that let Safari of the hook for its vulnerabilities compared with Flash?

I spelunked through the Firefox source code about 10 years ago.

A modern browser is an amazingly complex piece of software. A gazillion parsers with the ability to handle malformed content that should give anyone nightmares. Multiple JITs and interpreters. Layout handling with incremental grid calculation algorithms that gave me vertigo - before I understood that it was done asynchronously.

There is no way in hell flash is anywhere near as complex.


Your "no way in hell" is not really an answer, and any response will just devolve into "Uh huh!" "Nuh uh!"

Browsers now are very complex. At the time, we were still dealing with IE6 and JavaScript 3.

Flash could do literally everything that browsers at the time did, and more. Load and display multimedia files, animate them, interpret ActionScript, and do it cross platform, cross browser, in a performant, relatively secure manner.


You compiled to flash. Content served that were run by the flash runtime were valid or didn't work at all. The amount of code dealing with malformed content in browsers is staggering. A browser deals with everything that flash did, but in more complex ways, while also doing a LOT more.

"No well in hell" is a very good answer. Just the HTML DOM and layouting code in KHTML before it was forked into WebKit was an enormously complex piece of code. Then there is the JS implementation (including compiler - JS gets transferred as source code), the SVG DOM and renderer and other goodies that were integral parts of browsers already back then that I'm probably not thinking about.

Just adding to this: the attack surface of a web browser is humongous compared to that of a relatively small runtime, even in 2008. In 2011 when I had a look through the FF codebase, there were already 2 JITs for JavaScript, one which had been in for years (but I don't remember if it was in use).

On the other hand, flash was being used by everyone, windows, mac, linux, mobile... Safari was just being used by mac users. Les users, less bugs found.

Compare apples with oranges. Flash is a program, safari is an operating system.

So, you will ask for citations and then rip them apart because “every piece of software is vulnerable”?? If you don’t like what you get, why did you ask for it?

At first, you were merely overly aggressive. But this is turning into bullying.


Security issues? Yes, there were 0days after 0days. Adobe kept pushing updates, but users were often lagging behind. Researchers continually found new vulnerabilities.

Browsers weren't as sandboxed and hardened as they are today, and flash plugged directly into them.

Flash was one of the most used vectors for adware, all you had to do was visit some shady website.


> 0days after 0days

[Citation needed]



Good citation. :)

100% of all zero-day vulnerabilities from 2008-2022 are due to Adobe?

Let's look at the entire context.

https://www.zero-day.cz/database/?set_filter=Y&arrFilter_pf%...


No, I was filtering on Adobe so you could easily see all Flash zero days.

One in twelve of all security issues—in a period that begins when Flash was already on the decline and extends far beyond when Flash was at all relevant—were caused by a single web browser plugin and you're trying to handwave that off as not a big deal? Adobe has the highest percentage of exploits listed there for any company that is not an OS vendor, and Flash has the most of any single product that is not Windows (in an era when XP was still supported!) or IE (which it ties with).

And, yeah, Flash did suck as an end-user experience. For a few years it seemed like every restaurant in existence had an all-Flash web presence, and, no, waiting for endless animations while wading through some entirely non-standard "rich media" experience, while listening to my laptop fans kick into overdrive, did not "surprise and delight" when I was just trying to find their hours and a menu. It was absolutely infuriating.

This is ignoring that one of the major malware vectors that wasn't a zero-day at the time was to just put up a webpage claiming that Flash was out of date, and then linking a fake updater. Sure, that wasn't entirely Adobe's fault, but if they'd done a better job of keeping it up to date on their own it would have been an awful lot less believable to end users.


Riddled is a common word that native English speakers tend to use. It’s not a tell.

Your aggression, on the other hand, is uncommon. It is a tell.


Sorry. Not intending to be aggressive. That's me being weirded out, not intentionally aggressive.

As a native English speaker, I can assure you it's not a common technical term at all. It's a poetic phrase, designed to elicit thoughts of illness and damage. A house can be riddled with termites, a body can be riddled with cancer, a bridge can be riddled with rust. But Flash, uniquely, is "riddled" with security holes. No one says that about Windows.


As an engineer, I hear it used all the time in contexts outside of Flash. It's extremely common.

Getting “riddled” specifically means to get holes put in you, as in with bullets. It’s a very fitting term for having lots of security holes.

Strange, I googled “windows riddled” (without quotes - try it). This was the first result:

https://answers.microsoft.com/en-us/windows/forum/all/why-is...

“Why is Windows 10 riddled with so many bugs and the updates make matters worse?”

It’s likely time to admit that you’re wrong. Riddled is a word, the meaning fits and people use it to describe software.


> Jobs + Wired + Gawker + Apple made an incredibly strong conceptual gravity well that makes conversation about this difficult.

I never, ever, read the Jobs manifesto against flash. Never cared to read any article about flash back in the day and I absolutely dreaded opening a website that used flash.

It was a guaranteed loading times on my bad internet, followed and/or preceded by a notice saying that I needed to install this crapware or update it. Not to mention my numerous crashes directly related to an unresponsive flash application.

But as you clearly wrote somewhere on this thread, this was probably due to me using windows and most flash devs using macOS.

As someone who just learned about jobs hate to flash and never touched on a MacBook in his life. I’m extremely happy this technology belongs to the past.


> the macOS implementation was buggy and slow

This is actually another lie that has somehow been retconned into the collective narrative. Baffling.

I was a professional Flash developer at the time, working for brands like Nike and Johnson & Johnson. We as an industry used Apple almost exclusively. This was not a common observation until after "Thoughts on Flash"


(Most?) Flash apps didn't adjust for responsive web. It was also full of security issues. Most flash applications were running at a certain FPS, instead of reacting to UI changes/redrawing. Flash was nice for games, but for the rest is was a pain in the butt.

Also, look at how slow Adobe is in keeping things updated for newer platforms. I'm happy flash is dead, and I hope creative suite will follow.. Probably not though.


> Flash apps didn't adjust for responsive web

This was 2009. "Responsive layout" was barely a concept. Most HTML/CSS websites didn't have responsive layout. We were still figuring out all out.


Maybe it was not called "Responsive layout", but it was a thing since 2004: https://www.themaninblue.com/writing/perspective/2004/09/21/

Flash was as bad as Java Applets. They both tried to solve problems that couldn't be done with standard web technologies at the time. They both needed extra plugins so they could work... while everything else is just works in the browsers. They have no place in web development.


Maybe not responsive, but definitely fluid design.

If by "responsive layout" one means adapting to the size of the browser window, and not specifically adapting to mobile screens, then it was fairly common in 2009. And even earlier - we just did it with tables in late 90s and early 00s.

It is also true that the vast majority of web pages done in Flash did not do it.


At the time, (most?) websites didn't adjust for responsive web either. There's nothing inherent about Flash that made it impossible to support responsive layouts with it. In fact, if anything, developing with Flash gave you more control over positioning than html/css did at the time.

Sure, there were downsides to Flash. It's true that many Flash-based apps/websites used more battery power than html/css stuff. But I'd argue that this is an indicator that there is a demand for rich content on the web. Since Flash was killed, we've seen a resurgence of all kinds of heavy JavaScript libraries, and forums like hackernews are full of people complaining about websites being sluggish and slow to load because of the amount of js that's being injected. Well guess what - now we've just replaced Flash with a fragmented open landscape.

Is it better? Maybe - to a degree the openness of html/css/js is good for obvious reasons. But to be honest, I think the web still hasn't recovered from the blow Apple gave to the creative ecosystem that had been built up around Flash, because there still isn't a similar tool that allows you to easily build web-based rich, interactive experiences, full of animation and rich graphics, the way Flash did about 15-20 (!) years ago


Maybe you have a bias since you worked with flash.

As a flash consumer from 2001-2011 I must tell you that honestly; flash was fucking painful.

Run a very weird binary blob riddled with security holes and questionable browser integrations or suffer.

Yes, some things became possible (habbo hotel, flash games, video/audio before browsers supported it) but it wasn’t worth it. I very much wanted flash to die by 2006 and ran a lot of extensions to bypass flash on Linux such as the “HTML5 everywhere” browser add on that tried to force YouTube to use HTML5 video (with mixed results).

I think anyone looking at flash now is romanticising the past. It was the least enjoyable thing about web browsing in the 00-s


> "riddled with security holes"

There it is again! That specific phrasing. Curious. [1]

> "flash on Linux"

Yes, Flash on Linux sucked. We're talking about macOS, and it did not suck on macOS.

> Maybe you have a bias since you worked with flash.

Oh, absolutely. I chose to work with Flash because it was great! But that's not really germane. I would not have wanted to work with Flash if it sucked on Apple, since that was the platform I used at the time.

[1] https://news.ycombinator.com/item?id=30585649


Riddled is pretty common verbiage for native English speakers when something is heavily afflicted with something which is probably why you’re seeing it everywhere.

“Riddled with holes” is the original phrase, usually when referring to worn out clothing or something which has been damaged with many punctures.

It’s not a conspiracy or a retcon. I think I have tweets from this period where I was extolling my frustration with YouTube specifically for requiring flash.

To be fair I didn’t use Apple computers in that era so you could be right; but I did use Windows and Linux and Linux was by far the least favoured by adobe, but it still wasn’t pleasant on Windows.

I bought my first MacBook in 2011 and flash was already dead by then.


I disagree that it's a common phrase. It's used primarily when talking about cancer or infestations. It is almost never used in any engineering context. Except when people speak about Flash. You don't find that odd at all?

That you don't use the word doesn't mean no one does. There's no grand conspiracy here.

It's not about my using that phrase. It's about how often it's used and in what context.

It's inevitable when talking about Flash, but not, say, Windows, or other contexts with security vulnerabilities. Always "Flash" specifically "riddled".



It's incredibly common.

I find your interpretation odd. I use the term "riddled with bugs" in software engineering regularly.

It might not be common vernacular in your neck of the woods, but it is where I'm from.


I’ve refused the phrase “riddled with security bugs” to describe XML parsers.

>I think anyone looking at flash now is romanticising the past. It was the least enjoyable thing about web browsing in the 00-s

The least enjoyable thing about web browsing in the 00-s was javascript. Pop-up windows, window resizing, stealing focus. Now javascript is still the reason web sucks. And security has not improved much.


> And security has not improved much.

What?!

Modern browser security has gotten orders of magnitude better since Shockwave Flash was removed from web browsers. The sheer unending volume of security vulnerabilities flash introduced into browsers was staggering. Flash (until very near the end of its life) had no sandboxing, and had its own update mechanism. It was the norm for people to be running old versions of flash with unpatched security holes. And flash had so many vulnerabilities - if memory serves, flash generally fielded more CVEs in any given year than the entire rest of the browser!

Remember how revolutionary pwn2own was? "Wow, find a vulnerability and win $1000!". These days vulnerabilities of that magnitude are worth way more money, because of how secure the browser environment has become. ($100k-$1M on the black market as I understand it.)

The only reason it feels like security hasn't improved much is because crypto ransomware has made hacking so much more profitable. But even then, most randomware doesn't usually take advantage of security vulnerabilities in web browsers. Its really quite remarkable how secure the modern web has become; and that wouldn't have been possible if flash were still around.


> Remember how revolutionary pwn2own was? "Wow, find a vulnerability and win $1000!". These days vulnerabilities of that magnitude are worth way more money, because of how secure the browser environment has become.

Theses amounts were low because there was no interest in rewarding white hat hackers sadly. Bug bounties at the time were extremely rare. It wasn't lower because it was easier (though it may have been easier, not arguing it wasn't, just that the amounts are not evidence of it).

> ($100k-$1M on the black market as I understand it.)

On the "white" market you means. Zerodium is paying theses amounts. I don't feel like it would be higher in the black market than what they are offering, but could be.

Speaking of which, in 2020 Zerodium stopped accepting "Apple iOS LPE, Safari RCE, or sandbox escapes" for a few months because there was too many of them... still no "Thought on iOS" yet... It's not like it's even a new thing, I remember a long time ago when you could jailbreak your iPhone using a website directly.

Didn't even need to go far either... check CVE-2022-22620, only a month ago.


Who are you to decide if it was worth it or not ? Tons of humans had a really good time and memories on e.g. Habbo. That alone makes it entirely worth it.

Sorry. I should have clarified maybe.

When I say “was not worth it” I am implying that it was not worth it for me.

That I often didn’t enable flash even if I did enjoy some of the things flash provided.

I still firmly believe that we have much less energy consumptive software since flash died, I recently brought back some old /f/ content from 4chan and ran a flash emulator written in rust and it crippled my laptop, so it hasn’t improved a whole lot.

I hated it so much and it was so forced upon me that I am finding it extremely hard to have sympathy for you.


>it was a resource hog

Well, it had the ability to be one if a shade tree programmer didn't garbage collect their assets. Something that could easily be tested in an app platform. You could make amazing games that used only a few megs of RAM, or you could make a crappy app that hogs hundreds.


> Adobe offered all help

Perhaps too little too late and with a terrible track record.


Adobe. The successful software company behind Photoshop and After Effects among many others, did not have a terrible track record for fixing Flash bugs. This is another lie.

Hate to differ in opinion but looking at Adobe products and they way they are memory hogs & spawn thousands of files on Mac/Windows, this does constitute poor quality SWE. They have a successful product and became market leaders - but the engineering quality isn't on par with several other cash cow products

Yeah and Adobe weren't behind the creation of either Photoshop or After Effects - both were acquired.

At the time Flash player was deprecated, it was full of vulnerabilities. Adobe had every chance to improve its proprietary plugin, but never did in a timely fashion.

I'm not sure this is precisely the case. Any platform, except Windows, was pretty much alien for Adobe and Flash - I recall all the pains of running Flash on Linux, even when support on Firefox/Mozilla side was decent.

IMHO, Flash distribution and compatibility versioning was a mess. When you got a new version, you could not access the previous releases on the Adobe site, at least for Linux builds. Overall, I think Flash's demise was more up to how Adobe managed it.


> was pretty much alien for Adobe and Flash

This is another weird collective retconn that is not true.

Apple was not alien to Adobe the creator of Photoshop and Premiere and After Effects. If anything, Adobe is less comfortable with Windows, which usually lagged a bit behind with versioning.


It was a PITA on linux in every way possible take of your rose tinted glasses.

For me as a 64bit linux user the experience was horrible. The worst where flash only websites that did not have a HTML fallback.

I'm glad that both browser based flash and java applet died.


I do think a valid criticism of web development at the time is that it was waaay too dependent on Flash, and I think the state of HTML/CSS/Javascript is a lot better for not having the Flash crutch.

Still, the reason that websites had Flash at all is that it was easy to create a beautiful experience - admittedly, only for those on macOS and Windows.


> These were lies

It would be helpful if you could point out specifically which of these two elements were lies. Because they look like truths.


My understanding is that Apple were actually working with Adobe to develop Flash for the iPhone during the iPhone's development, but that Adobe were unable to meet Apple's quality (bugginess, crashing, etc) and power budget (A major restriction on the first iPhone - competitors didn't even think it was possible with current technology) targets. It was only at that point that Apple cut ties and went a different route.

No. This is a misunderstanding. Adobe was trying to work with Apple, and Apple rebuffed them.

Your tale doesn't realistically explain why Apple would permanently close the door on Flash, and do it in such a public, reputation-damaging way. They didn't just want Flash to improve, but they wanted to destroy Flash. And did!

That Flash was a competitor to the App Store does explain their actions.


> Adobe was trying to work with Apple, and Apple rebuffed them.

The opposite was stated in a legal deposition by Scott Forstall (ex-SVP of iOS) just last year[0].

We did not ship Flash. We tried to make Flash work. We helped Adobe. We definitely were interested. Again, this is one where I thought if we could help make it work, this could be great. Flash has been such a problem because the way that it hooks into systems, it’s been a virus nightmare on Windows, even on the Mac. And when we got it running on iOS, the performance was just abysmal and embarrassing and it could never get to something which would be consumer value add.

[0] https://9to5mac.com/2021/04/27/apple-tried-to-help-adobe-bri... and many other places which reported it


Apropos of anything else, there's pretty much zero substance to this. "We tried". "We helped". "We were interested".

It's entirely possible to say each of those things, under oath, be accurate, and still absolutely undercut things.

I wouldn't expect an SVP of Apple, in a lawsuit to say, "Yeah, we really didn't give a shit, and weren't sad that it failed."


If Apple had given nominal help to Adobe, that would have been brought up along with the observation that Apple didn't really help.

Flash was available on several Android phones of the time. These phones had faster processors than their iphone competitors and the experience still sucked. I liked having the option at the time, but it was a terrible experience every time I was forced to exercise that option.

The biggest contentions of the time would have been videos and games. Video caused issues because flash player only sites were everywhere. On the other hand, they released canvas support (necessary for performant games) in 2010 the month before Jobs released his letter.


>I want to remind everyone what happened, here. [...] These were lies, but Apple's henchmen in tech media, especially Wired and Gawker, repeated this lie endlessly, [...]

>I was a professional Flash developer at the time,

I think your personal financial investment into the Flash development platform biases your history.

In contrast, I wasn't a Flash programmer and only a user and I disagree with your claim that it was an Apple-orchestrated conspiracy.

Even before 2009, I (and many others) dreaded the Flash plugin. Yes, the early Youtube used Flash but when a website like a restaurant displayed their menu using Flash, it was a terrible experience. Each time a website displayed the "Flash plugin required" , it was a hassle. And even after downloading the plugin and then visiting the same website a week later, you'd inevitably get "We're Sorry -- You need to update your Flash Player".

Adobe Flash was also one of the top reasons in early 2000s for desktop browsers to crash. Misbehaving plugins like FLash was one of the motivating reasons for Chrome to make a bold architectural decision to isolate each tab into its own process so Flash would not crash the entire browser. The Chrome release was 2008 which was before the 2010 Steve Jobs "Thoughts on Flash"

Based on countless developer testimonies (such as yours), I'm convinced that Flash was wonderful for the programmers & content creators -- but as a consumer of computers since the 1980s, it was one of the most user-hostile technologies. A lot of us didn't need Steve Jobs to tell us that Flash was suboptimal; we experienced it firsthand.

>The web is unable to deliver an experience like Flash could, and likely will never be able to.

Again, as a user, I see no website today and think to myself, "I wish this was using Flash because it would be so much better." Can you give a compelling example?


My personal pet peeve with Flash websites was that all the text was usually non-selectable (and thus non-copyable) except for widgets such as text boxes. So e.g. in case of the menu, you couldn't copy the name of the dish to look it up. In other contexts, it could be a much bigger annoyance.

I remember that. I also remember agreeing 100%.

I upvoted, I agree that Jobs was lying, but I disagree with your conclusions.

The browser's language is a natural monopoly.

Flash did one thing - animation - really well, and everything else badly.

Simply the inability to bookmark a location inside a Flash presentation meant that you could never use Flash to write your whole site - it was always going to be blobs of Flash on top of a fundamentally HTML structure.

Once we, the programming world at large, saw with Gmail what could be done with HTML/JS/CSS, the writing was on the wall for Flash.

(And also Flash was insecure; and there was no way to throttle poorly-written Flash applications running in the background on some random page, so very quickly the smart kids would only enable Flash on-click.)

Logically, there was no need for Flash to exist. Everyone saw pretty soon that all the facilities Flash had should be put into JS, which has the additional huge advantage of being able to manipulate the DOM.

Adobe didn't help it particularly with some fumbling, but they weren't ever going to win that battle, and they got out of it quite gracefully when it comes down to it.


While I'm pretty sure business decisions was involved.

But, I had a Nexus One with all its glory of running flash. Mobile experience with flash was horrible. Maybe, if Apple did add Flash it was adjusted similar to adjusting website for "mobile". but still, it's much closed standard than HTML.

Part of the reason it's so important to have WebKit, Gecko and Chromium is to avoid a lock-in similar to IE where in the past, many websites performed horribly on macOS (and Linux of course).

So I wouldn't say it all lies.


Others have commented similarly, but as a user - Flash sucked. It meant you had to use a confusing “novel” UI, that the page would be slow or possibly not work. You might not be able to copy/paste text. Almost certainly not accessible.

I have always had this terrible habit of opening oodles of tabs, and my (windows) pc used to become really sluggish after a while, usually leading up to an actual crash within a matter of days (never closing my browser, and suspending/hibernating the laptop but not rebooting or shutting it down).

I then noticed that restarting the browser (which was, back then, just one of many open apps) instantly removed this sluggishness, and no more crashes - unless I forgot to restart the browser (I say "the browser" here because this happened regardless of which one I was using, out of IE, Chrome or Firefox).

Some time later, I set up a really underpowered Atom netbook for a friend, and, horrified at the slowdown when visiting some heavier pages, I tried to help with noScript (which didn't really work for my non-tech friend) and a "Click-to-play Flash" extension, and I marvelled at the difference it made. I soon started using it on my own laptop and immediately noticed that slowdowns and crashes had stopped occurring even if I didn't restart the browser for weeks.

I decided to completely uninstall Flash from Firefox, and for the few sites which absolutely required it I'd use Chrome which shipped with it - and recommended the same to most people I know, receiving the same feedback.

Years later, the "thoughts on Flash" memo came out, and I though "hey, cool, I got there faster than Steve".

I have hated Flash ever since my realization, irrespective of the security issues it was riddled (sorry if the word triggers you) with, and ditto with Acrobat Reader. I've come to consider Adobe a producer of awful, bloated, insecure and shitty software, and my computers are better off without any of it. I do love the PDF standard, just not Adobe's software for producing/consuming PDF documents.


Yeah I remember that. At the time, the web browsers were starting to aggressively throttle javascript on background tabs so badly behaved tabs wouldn't impact performance. But the throttling behaviour didn't work for flash. And flash banner ads were popular for some ridiculous reason.

I watch CPU usage closely, and for awhile there most of the time my CPU got pegged was because some random flash banner ("Click the monkey" crap) went out of control and started busy-looping in a background tab. I'd often came back to my computer to discover some random tab I had open was melting my computer. I hated flash for that.

But there was an easy solution. Pretty soon after that I installed a click-to-play flash extension; and the problem went away overnight. About 90% of the flash content my browser ever loaded was advertising, so it was like a lightweight ad blocker for the worst ads. Pretty soon Chrome built that behaviour into their web browser. And that was the beginning of the end for flash.

Steve Jobs did finish flash off when he blocked it on the iphone. But that didn't come out of nowhere. He first challenged Adobe to make Flash perform well on mobile devices. But Adobe couldn't meet his challenge. Flash never worked well enough on the low power smartphones of the day. People can blame Steve Jobs all they like, but flash would still be alive and well if Adobe had been able to ship a performant browser extension when it counted.

But they didn't. And now their product is dead. I pity the creators who made flash professionally, but I don't have a lot of sympathy for Adobe.


I remember this.

Then i have CPU C2Q 6600. And opening one site with 10 tabs i can see CPU spike up to 100% of all cores.

I found "click-to-flash" and some plugin for YT-to-HTML5 and this suddenly fix mine issues.

Mobile flash even didn't works good on high-end mobile devices because consume too much power. Since that devices are limited from their battery Flash was resource hog.


I dislike most things about the modern web – but seeing Flash gone is not one of them. Good riddance!

Lots of flash hate in this thread for some reason. As a heavy consumer of flash games (and dabbler in production, but mostly just HTML and PHP around this time), I never experienced "riddled with holes". I understand it had security problems, but I never encountered any myself or by extension.

How could you not encounter flash security problems? There was a time the flash extension for the OS/browser was being updated a few times a month due to security holes.

One of the large beasts killed the other large beast. Flash was actively hostile to anything open, it undid any advancements of the internet that empowered people and put the control back in the content publishers' hands, so I'm not shedding tears. (Neither would I if Apple got bankrupt)

I can really get behind this sentiment, even as the upstream commenter.

Personally, I find the loss of Flash less interesting than the kind of consensus-reality-warp that happened.

An article like [1] raised no cranky, contrarian alarms in anyone. Just, repeating "riddled with security holes" at everyone.

[1] https://www.wired.com/2015/07/adobe-flash-player-die/


Yeah I remember these, like with Internet Explorer, the popular sentiment was to cheer for Flash dying. At most some people were afraid that the creative treasure trove will fade into inaccessibility. Public opinion really is played as a fiddle, by interests with deep pockets.

The popular sentiment was shaped by gratuitous use of Flash for websites that weren't games or even apps, but that were done entirely in Flash just so they could have cute animated menus and whatnot. A typical website like that would be slow to load, have fixed-size layout, broken URL bar navigation, most text wouldn't be selectable, and accessibility tools would often be broken.

And yet that was the "Flash experience" for the majority of web users who were not into browser games...

Well, that, and animated ads.


I sort of disagree Steve was acting in bad faith. Flash was slow, security was a problem in the context of iPhone, and what Steve was saying, may be Web Site shouldn't have been done in Flash in the first place. And this is absolutely true, so many web site should not have been a flash site. And Video should be delivered as HTML5. Remember HTML5 Web Apps was suppose to be the second source of Apps for iOS. And Facebook even went all-in on HTML5 apps. I still remember how hard I cringe at their video when they said it was as good as Native Apps. ( Now come to think of it I think my hatred against Web Front End evangelist may have started then ) To this day, not a single Web App, including VSCode is as good as a well made native app.

And iPhone doesn't have the horsepower in 2010. Today's iPhone 13 is faster than 80% of the PC in single core performance. So I dont think it was a wrong decision at the time. May have been worth revisiting in 2015 or 2016, but Steve was gone. Adobe gave up. Despite Apple later changed the VM rules so you could ( correct me if I am wrong ) package Flash Games as App. By that time Adobe has stopped all development on Flash.

And it is sort of strange, because those flash website was essentially what we have for apps today. So may be it wasn't all wrong. It was the wrong place at the wrong time. Sigh.

>The web is still to this day unable to deliver an experience like Flash could, and likely will never be able to.

That is the sad part, but partly because no one wants it to. Google for the past 10 years wanted to make Web Apps and Javascript or whatever they deemed good and nearly completely ignore Web Page ( until fairly recently ). WebKit was moving very slowly for the first 5 years before pickup up some pace in the last 3-4. But both of them never intended to have Web Browser to deliver something Flash could. And frankly speaking they couldn’t care less.


> These were lies

This is not "what happened here". It's your weird anti-Apple take on what happened.

Ask anyone that actually used Flash on Android. It was terrible. Far worse than the HTML5 video experience that iPhone users got (when it was supported anyway).

I agree the web is still catching up to where Flash was for game. But games weren't the issue. It was all about video.


> The web is still to this day unable to deliver an experience like Flash could, and likely will never be able to.

Not only that but the DX was so much better than anything today in the JS world.

We had a TS like language 15 years ago. IMO TC39 where really stupid to trash the ES4 spec (based on AS3).

The Flash standard library was really awesome. The only third party dependency I used regularly was a tween engine (Zigo first and then TweenLite) and a Signals implementation.

From what I've read the perf and security issues could have been improved but I'm not sure Adobe had that much interest in it. Honestly I think Adobe was more than happy to let Flash go. I don't think it brought that much revenue.


> Honestly I think Adobe was more than happy to let Flash go. I don't think it brought that much revenue.

This explains a lot, too. Adobe did kinda just roll over, rather than address the fundamental concerns of the web community at large. Patches here and there, yes, but no deep restructuring.


> Patches here and there, yes, but no deep restructuring.

Exactly. I was heavily into Flash/Air dev from 2007 to 2014 and I always got the impression the team was heavily understaffed. Specially in the later years.

Adobe abandoned AS4 which IIRC would have solved the perf issues.


Flash wasn't a web standard and relied on a proprietary plugin. That's why I was against it at the time.

Adobe could have fixed that part.


> The web is still to this day unable to deliver an experience like Flash could, and likely will never be able to.

I think thats very far from true. You can do amazing things in the browser these days. But we don’t have the same ecosystem we had during the flash days. And the reason for that is certainly the App Store, well partly along with steam, but not because Apple or Valve were some evil actors trying to destroy creativity. The reason is simply that these store provided an avenue for all the people on new grounds to monetize their games, so they stopped releasing them for free. Then the monetization became competitive and everyone started optimizing for engagement and adoption instead of optimizing for “the crowd online will get a kick out of this”.


I can only guess why your experience was so different from most people's. Still, I was a windows user up until around 2010, and it was an objectively terrible experience for me on the whole.

While there WERE flash and Silverlight websites that weren't terrible (in fact, I seem to remember a few that were great, was Strong Bad flash?), the majority of things people think of when they think "flash" is stuff that would show up on newgrounds.com or a random video stuffed into a flash container.

So, I think both can be true, but most users' primary exposure to flash was low-quality software created as people's first game or similar. If I were to diagnose the issue retroactively, it would be that adobe flash had way too many foot guns (around memory management, I'd guess) for non-professional software engineers, which also happened to be the most significant users of flash on the WWW at least on the sites I frequented.


To be honest, I was really happy when Flash died. I hated it so much. Proprietary, nonsensical, junk ware that had to be installed on every computer and updated regularly. It was a source of endless viruses and didn't support Linux very well at all. At the same time I hated Apple too because after the iPad-2 came out I couldn't make Skype calls on my iPad-1 because it didn't have a freaking camera.

There are still zany web browser games out there as well as crazy video sites. Although I will probably miss Homestar Runner.


I am still maintaining a professional application written in flex for one of my client which serve to manage his warehouse stock. The big pain was to use an old portable Firefox version and block its update so the flash plugins would not be nuked. Legacy code is not simple.

I used to love developing in Actionscript 3 / Flash. I've yet to find a language / environment I like more. There was an interesting point in an interview that Lex Friedman did with Brendan Eich, where Eich mentioned that Actionscript 3 was in fact based on a proposed "Javascript 2" language, which otherwise never saw the light of day, due to whatever corporate manoeuvring was occurring at the time. I wish it had been adopted for the browser!

I recently ported a ~9-year-old game from Flash/AS3 to Haxe. It was an amazing experience, plus I got it to run on all kinds of crazy platforms and added a bunch of new features.

I'd advise anyone wanting to scratch the Flash itch to see if it is a feasible thing. Won't be straightforward for all applications, but I found it almost cathartic.

Haxe is a gem of a hidden language. It's just too bad the community isn't gigantic and the tooling support (IDE) is rather lackluster. I've become quite fond of it (especially after working with it nonstop for months in my free time). I recommend everyone check it out!


I've written a few things in Haxe / OpenFL. This is probably the most likely option for a "simple" port.

I may give this a shot when I have some spare time.


Flash on Android ended up running pretty badly. They couldn't even come up with a way to make old apps playable without a keyboard and mouse, if I recall correctly. Then Adobe gave up and discontinued it.

I'll say one positive thing about flash: the idea of semi-visual programming on the web being gone is a loss. Not only is it a much more accessible way to develop things for a much wider audience, it's also a relatively productive way to develop.

Before that, Java applets failed and after that, Silverlight failed. 25 years ago I was visually programming desktop apps in Delphi. Drag and drop, advanced layout mechanisms, rich library of standardized UI controls, advanced data binding, you name it.

It's quite ridiculous how we anti-progressed since then. Now we're back to text files and terminals. Weird frameworks to fill the gaps of the web but none really have batteries included. There's no language library in JS, nor is there a UI library. You all have to glue it together and hope it works. Not even the development flow is standardized, it's multiple tools stitched together each of which having 7,000 dependencies. Knowledge is also not portable, nobody is able to maintain that 7 year old Angular project and newbies have no idea where to start.

It adds up to the #1 issue in our industry: low productivity. We've positioned ourselves into a garbage development ecosystem that is very hard to understand whilst outputting little, both in quantity and quality.

This issue is much bigger than poor tools. These poor tools means billions are wasted on an ongoing basis reinventing the exact same thing over and over. It means knowledge is not sticky, so there's a huge cost in re-learning things. It means a lot of creative people are locked out of development, as it's too intimidating to them.

"See, this tree-shaken bundle gets loaded and then rehydrates the server response, after which state is in the store and you just work on your component but be mindful of its side effects and dependencies as your re-render has to be a pure function, kind of like the reducers in your store, which are similar to actions but not really. Told you it was easy."


I've updated the post as auriplane has gotten me quite close to a solution. https://news.ycombinator.com/item?id=30583307. They are able to run it after building, but I'm still running in to issues, which is probably just a small configuration issue on my end. I've added a Github Issue to track the progress of this: https://github.com/adamjberg/i_solated/issues/4 . Finally hopeful that there's a solution to be found!

With a couple of code changes I'm successfully able to build and run the project again!! Thanks everyone for thoughts and suggestions.

Late but I saw this in the morning and was gonna try my hand at compiling it but looks like someone already figured it out (congrats!).

I have a bunch of old Flash games from back in HS. Been watching Ruffle for a while as well since I've been wanting to make a page to preserve them but AS3 functionality just isn't there yet...


Legal | privacy