top | item 33812826

Ask HN: Are there things that Flash did that we still can’t do with today’s web?

108 points| sendos | 3 years ago | reply

As I recall, as of a few years ago, that was the case, ie web apps could not do some of the things Flash was able to do.

But maybe web technologies have advanced recently so that that’s no longer the case.

153 comments

order
[+] irrational|3 years ago|reply
Maybe there is a vector animation tool that is as easy to use as Flash was, but that fact that we rarely see vector animations like we did back in the day makes me think not.

I used to work with a group that created training materials using Flash. We had a bunch of animators that knew nothing about coding, but they could produce all of these amazing animated videos using Flash.

They could also produce interactive animations. One job we did was creating 3d renderings of printers. The printers could be torn down in the flash app to the smallest screw. A technician could choose what they wanted to do to the printer, and the flash movie would show them step by step in full animation what to do. At any time they could rotate the printer in all an axes to view different angles. It was amazing. And it was animators who knew nothing about code that built it all. The things they could do you just don’t see anymore.

I remember another project we worked on that had these mini games you could play in place of being multiple choice quizzes.

All of that is just gone. There was so much animation and interaction and fun that has been replaced with boring, text, images, and videos.

The best part was, it was all vectors, so the file sizes for even long animated movies was incredibly small. Back in those days we had very low bandwidth, but flash worked great. We had retailers in Asia that consumed our content no problem. Now our content is mostly text, images and videos. Those same retailers have higher bandwidth, but really struggle because the files sizes are enormous compared to flash.

[+] bartread|3 years ago|reply
Related to this, but building anything interactive in general was made super-easy by Flash because it was basically one IDE with everything you needed included out of the box. No complex toolchain, or ludicrous dependency tree, no nonsense build and deployment (though the fact that the default for Flash content was one giant binary blob wasn't always ideal when bandwidth was at a premium), no having to learn a new framework and toolchain every 12 - 24 months. And, frankly, were the security holes any worse than plenty of other apps at the time, or the constant parade of issues we see with our current dependencies that require ongoing vigilance and updates?

The big problem is it was proprietary and the cost of entry was high at a time when I was short of cash for quite a few years.

Still, I wish I'd invested in learning it back in the day, as I really only came to appreciate its benefits after its fate was effectively sealed by Steve Jobs: could have made some good money whilst having some good fun doing it for 8 or 10 years up to around 2010.

(Of course, I would have had to deal with the consequence of my skillset being obsoleted seemingly overnight, but I got kind of a taste of that from the Microsoft ecosystem as well: it's WinForms, no, it's WPF, no it's Silverlight, no, etc...)

[+] hackshack|3 years ago|reply
About once a month, I dwell on this. Modern web pages can easily be 20MB. You can do a lot in 20 megs.

Re-reading Apple’s “Thoughts on Flash” tonight, I was surprised at how many times Apple mentioned vendor lock-in. JavaScript is definitely here to stay. Ten years later, though, I wonder if we have ended up in nearly the same place we strived to avoid - high power consumption - but with worse authoring tools. But with at least open standards, which are good.

I figure the magic moment will occur when some tiny startup builds friendly authoring tools on top of a tight runtime à la Decker. Like HyperCard/Director/Flash it’ll only get you 66% there, but that will be enough for many folks. Hackers. Hobbyists. Students. Tiny companies, and guerrilla departments.

The challenges will be preventing feature-itis, keeping it embeddable / avoiding JS library dependencies, and making it at least free-as-in-beer with an open format. I know there’s space for such a thing. My money’s on some lean 5-person startup with strong opinions.

Decker: https://beyondloom.com/decker/index.html

[+] dspillett|3 years ago|reply
> All of that is just gone. There was so much animation and interaction and fun that has been replaced with boring, text, images, and videos.

This might be partially a fashion thing: people want the flashy interactions less. I for one appreciate some boring text with minimal animation! Also away from games where animated interaction is part of the point, designing a good animation that works better than text+images is often not as easy as many think, and you need to contend with that before you attempt to implement the design.

As there are less people wanting to make the animations the tools that would have replaced the tooling for flash (but outputting SVG+JS instead), of which there were a fair few in active development at one point, have languished unloved and incomplete – so not only do fewer people want to make such animations but those that do want to don't have easy tooling to do so.

There are a couple of e-learning sites out there using interactive animations to illustrate their points, one often has sponsor spots on a couple of podcasts & video series I follow though I forget its name ATM. I wonder what tooling they use, if any (though I doubt it is all manually coded).

[+] jen729w|3 years ago|reply
And my mate Tim, a designer not a coder, could bang up really neat stuff really easily. Now you need to be Bartosz Ciechanowski and only he is.
[+] Springtime|3 years ago|reply
Lottie[1], an Adobe After Effects plugin, fills a gap in vector animation authoring and is quite widely used (primarily in mobile applications but also works on the web, Discord for example supports them for stickers).

It's a pity SVG animation authoring tools never eventuated since it's an underutilized but useful native format. Though I know Blender allows for SMIL export via its Freestyle feature (the animation is effectively frame-by-frame only though, not leveraging SMIL's path interpolation/morph ability).

[1] (ignore the GIF-converted examples, the originals are lightweight and vector-based) https://airbnb.io/lottie/

[+] resoluteteeth|3 years ago|reply
> Maybe there is a vector animation tool that is as easy to use as Flash was, but that fact that we rarely see vector animations like we did back in the day makes me think not.

Doesn't the animation tool still exist just not under the name "flash"?

My understanding is that the free browser plugin to view the animations that got killed, but the the actual animation software that was used to produce them got bought by adobe and is still widely used to produce animations, it just doesn't have the option to produce swf files anymore (and even during the flash plugin era it was also being used to produce animations for tv, etc.).

[+] skytreader|3 years ago|reply
A lot of answers already boil down to, basically, superior developer experience. But there's an aspect of this that I want to highlight: resource efficiency.

Around the latter half of the 00s, I had a Windows XP machine with 256MB of RAM and a Pentium 4 processor, with a matching spinning metal-disk hard drive. I could make decent Flash animations and games with it. I could view entire websites in Flash with Internet Explorer 8.

Today, my personal machine is a laptop I bought from 2016. Core i7 (4 cores), AMD graphics card, 16GB of RAM. It's not top-of-the-line even when I bought it but I put in ~200 hours of The Witcher 3 in it, finishing the main quest and the two paid DLCs. That said, modern web dev is a PITA in this mostly because I'm too cheap to upgrade to an SSD. Oh, also, the GitHub homepage that showed live commits on the globe makes the fans scream with Chrome unless I enable hardware acceleration. (In fairness that's enabled by default, but it so happened I had to turn it off and forgot to turn it back on.)

I still can't figure out why my personal machine can't provide a decent feedback loop on a React/Angular+Typescript stack (that's not even doing animations!) just because I don't have an SSD. In my very opinionated opinion, only a database server needs an SSD.

A Phaser+Typescript project (my preferred modern web gaming stack) is just a slightly better experience than React. But, again, I wonder why it needs hardware acceleration at all to function well and I've only implemented very "static" boardgames so far. Maybe I'm just a sloppy programmer but I'm definitely better than when I was making stuff in Flash. This shouldn't be eating that much resources, right?

[+] ChrisRR|3 years ago|reply
As an embedded developer it always surprises me that simple programs are still barely any faster, take 100s of MB of RAM, require a decent CPU despite the fact we're all using supercomputers compared to the Windows 95 days.

How is it that physicists and engineers are pushing the limits of physics to bring us ever faster processors and we still can't smoothly scroll a webpage, where as I can design an embedded product with a GUI on a 40MHz CPU

[+] paganel|3 years ago|reply
> resource efficiency

Glad that you pointed that out.

Around 2002-2003 I was working an office night-shift, in front of a computer that was in no way the fastest even by those times' standards. But, even so, I was able to follow almost every at-bat in the MLB, live, through their Flash app (while I was doing my regular work in another browser tab). And it wasn't only showing stuff like Batter X hit a 1B, it showed you the exact location and the speed of the incoming pitch, where the ball landed (more or less), what was the out-field formation of the pitching side etc. Really cool stuff given the limited processing resources.

I'd say a HTML+JS solution (which, obviously, wasn't even possible back then for that kind of stuff) would require at least an order of magnitude more resources on the client side.

[+] teh_klev|3 years ago|reply
> only a database server needs an SSD

Where did you acquire that (somewhat flawed) opinion?

I've been using SSD's since ~2009 and those early devices were transformational even on already elderly equipment. You can pick up a modern 1TB SSD with a SATA interface for ~GBP77.00. A price well worth paying for the increase in productivity and quality of life not waiting for spinning rust disks to do their thing.

[+] nicoburns|3 years ago|reply
> mostly because I'm too cheap to upgrade to an SSD

Wow, that is cheap. We’re talking, what, $40? Basically everything these days assumes fast random disk IO, and will be slow if you don’t have it. If you’ve upgraded your computer at all in the last 10 years then you probably have been better off keeping the old one and getting an SSD.

[+] speedgoose|3 years ago|reply
Please get a SSD today. You stress me!
[+] captainmuon|3 years ago|reply
HTML+JS is "turing complete" so in a sense you can make everything in HTML that you could make in Flash.

In practice, I think the authoring experience has been lost. There is still Adobe Animate (which is the renamed Flash application), but I think you can not export to a fully interactive HTML application - only to static videos or simple HTML (like interactive ads). Maybe it is now possible, but I haven't seen much use of it.

The magic of Flash started with a very nice vector editor - it even allowed you to "paint" Vectors with a brush. Then you had very intuitive tools for animations (tweening, onion shells). You could add simple interaction from the GUI. But it was easy to run custom ActionScript (basically JS) code on events, and move objects around on the screen. When you needed more control, you could also completely go to the ActionScript level and create your objects from code.

Nowadays, what do you use to create animations? After Effects seems what a lot of people use but it is overkill. Animate seems to be barely maintained. And if you want to do a game? I think Unity & co. have taken over, but they lack a bit the low barrier to entry that Flash had.

[+] josefx|3 years ago|reply
> HTML+JS is "turing complete" so in a sense you can make everything in HTML that you could make in Flash.

I love how turing complete gets thrown around every time. Can a turing machine by itself run a voice chat, print documents, display images, stream videos? If I emulated a turing machine on a 1 Hz CPU would it be capable of decoding a 4k video stream in acceptable time?

[+] billpg|3 years ago|reply
When I was reading about Turing Completeness as a child, I remarked to my mother that "Computers can do anything". She quickly told me that wasn't right. I went back and thought about what I actually meant. My revised statement was "Computers can do anything that computers can do", which sounds significantly less grand.
[+] Dylan16807|3 years ago|reply
> turing complete

The question is what you can do, not what can you write a function to calculate.

[+] hutzlibu|3 years ago|reply
"but I think you can not export to a fully interactive HTML application"

You can, with the help of integrated EaselJS. But it is way more complicated, so I also never used it and I don't know if anyone is using it at all.

And yes, the ease of flash is gone. This was the most appealing of it.

[+] wodenokoto|3 years ago|reply
I'd say you can do anything with java-script and a canvas as flash could, but the number of people who could do it in flash was much higher than the number of people who can do it with "modern" tools.
[+] MengerSponge|3 years ago|reply
People's use of the internet has changed, but the fact that there is not a new Homestar Runner or NewGrounds is telling. How much does a weird high school/college art nerd need to know about the tech stack to get their vision online?

I'm old enough that HSR is still part of my lexicon. Kids just think I'm weird, which is fine.

[+] krapp|3 years ago|reply
The weird high school/college art nerds today are designing their own VTuber rigs, selling art commissions or making indie games. The biggest reason there isn't a new Homestar Runner or Newgrounds has less to do with technological limitations or complexity and more to do with evolving tastes over time.

Also the fact that the new whatever would be either Youtube or Twitter. Or Tiktok. Or something most people here have never even heard of.

[+] lucumo|3 years ago|reply
> but the fact that there is not a new Homestar Runner or NewGrounds is telling.

I think that niche is now filled by the app stores. A lot of little games can be installed on your phone.

The monetization of those games has made them less fun, in my opinion, but that's more on the evolution of game makers, and not really on the development technology.

[+] swilliamsio|3 years ago|reply
itch.io is massive for games if you want a new Newgrounds. The tech stack has moved on from Flash to use Unity or GameMaker or Godot or Construct. It's feasible for someone not knowing how to code to use most game engines to create something - not uncommon in Game Jams to see teams like that.
[+] KaiserPro|3 years ago|reply
Look the same on all platforms.

Allow artists to create simple animation quickly.

run fast.

The key selling point of flash was that it was an author once, run anywhere tool. I could use keyframe animation along with a simple scripting language to make almost anything. Not only that it was fast to build and deploy.

Nothing I've seen recently allows an artist to do the same. I've tried a couple of times over the years to make an animated SVG on the web, and all of them required me to program keyframes using code, which sucked. Not only that its dogshit slow. animating <5 low complexity shapes would eat 50% of CPU, (think squares and circles).

Worse still all of those libraries are deprecated now, so if I want to do it again, I'll need to start again from scratch and select a new animation library.

[+] manscrober|3 years ago|reply
>Worse still all of those libraries are deprecated now, so if I want to do it again, I'll need to start again from scratch and select a new animation library.

This is why I stopped being interested in modern web anymore. Everything is deprecated at unbelievable pace, you can't keep track of it unless you work full time in the field. If it was all for great efficiency and performance, I'd get it, but it seems to just follow the newest fad every 2 years. Maybe with wasm that could change, but I'll believe it when I see it.

[+] yreg|3 years ago|reply
>Look the same on all platforms.

Provided you have Flash player installed. Doesn't the same apply to web technologies provided you have the same browser installed?

[+] the_only_law|3 years ago|reply
I noticed that around the death of flash and the rise of games using new native technologies on the web, a lot of “web games” were technically or graphically impressive compared to anything done with flash, but felt very sterile and and soulless. Flash games had fun narratives, stories, etc. I wonder if it just attracted a different crowd.
[+] fxtentacle|3 years ago|reply
Nowadays with WASM and WebGL you can do basically everything in a web browser, but you'll take a 100x performance hit.

Every game using Unity/Unreal + WASM needs to download 10-20 MB of JavaScript before it even starts loading the actual assets. With Flash, that could have been a 10 KB SWF instead.

Similarly, Flash had really fluid animations that were drawn purely on the CPU. Why my 266 MHz P2 could have better vector animations than people nowadays can squeeze out of a 3070 with WebGL is beyond me.

In my opinion, we still DO NOT have any worthwhile replacement for the ease of cross-platform development combined with excellent performance that Flash had.

[+] hlandau|3 years ago|reply
We can't distribute an entire game or animation as a single file which can be downloaded or embedded on a website. Think about things like Newgrounds.

I mean I guess you could do something awful with base64 encoding assets into a giant HTML file, but that sounds horrible.

Flash was also a platform for hosting bandwidth-efficient animation and people have just gone to using video now. That sacrifices incidental, easter egg-type interactivity and drives people to centralised services like YouTube.

[+] zozbot234|3 years ago|reply
Isn't that what EPUB is for? It could even be embedded in an iframe similar to how you can embed PDF.
[+] pengaru|3 years ago|reply
emscripten gets pretty close via webassembly, you can embed all your assets... but it takes awhile to load before anything's happening when done that way.
[+] trilbyglens|3 years ago|reply
ActionScript was a terrible language. More complex flash projects were really a hacked together mishmash of things, none of it standard, none of it supported without plugins, and oh, have we all forgotten about the weekly zero-days that flash had?

It might have been more "creative" but that was also due to the fact that it was around at the beginning of the web, when everything was more creative. People had not figured out UI or UX patterns yet at that point, and there was massive wheel reinvention taking place all the time.

Flash was an absolute catastrophe for accessibility at well. A screen reader would just say "Flash movie" as that's all that was actually in the page.

We've had to reinvent a lot of that stuff, true, but we've also gained interoperability, security, and accessibility. I think those are all worthy trade-offs.

[+] CJefferson|3 years ago|reply
When I was 12, me and my brother made simple flash games. You could produce something with cool animation, basically functional, in a week or two.

What is the modern replacement for my nephews now? There might be one but I haven't seen it.

[+] noduerme|3 years ago|reply
I'm surprised no one has mentioned vector-based animation, which was a primary tool in Flash. AFAIK there's no SVG solution that comes close in performance or flexibility to keyframe- or programmatically animating complex vector graphics (with user interaction!) the way you could in Flash.
[+] ChrisRR|3 years ago|reply
The stickman fighting animations were a classic of the flash days.
[+] planede|3 years ago|reply
The original N game v1.0, released in 2004 [1] had fluid vector animation without stutter on a modest computer at the time. It's a pretty challenging platformer, and any stutter would have killed the gameplay.

Later flash versions regressed in performance and can't run this game without stutter in my experience. A way to play the original game today is to get an old version of "Adobe flash player projector". If you are paranoid, use some OS level sandbox around it.

I did not see an in-browser game since the original N game that matches its low system requirements and smooth gameplay.

[1] https://www.thewayoftheninja.org/n_history.html

BTW, the successor N v2 is also pretty good, and it's not flash-based, AFAIK.

[+] rendall|3 years ago|reply
I would say no, that modern browsers have the potential to do everything that Flash did, but it's not nearly as easy.

While it is possible in modern browsers to make a) cross-platform, front-end web applications with b) smooth vector and c) bitmap animation incorporating d) multimedia sound and e) video driven by f) a backend API (called dynamic data back then), it is not nearly as prevalent as it was. Animations and multi-media objects were first-class citizens in Flash in a way they are not in browsers.

I do think that's not entirely the browser makers fault. Web aesthetics have changed. Users liked swooping and diving logos with dramatic drop-shadows then, and not so much now.

[+] rob74|3 years ago|reply
I agree with the "not nearly as easy" part as long as you are limited to the usual HTML/CSS/JS stack. I think WebAssembly has a lot of promise here, as you can theoretically do anything you want in any language of your choice and have it run in the browser. Of course, this is also a threat to the "open web" where you are free to use your browser's DevTools to dissect the internals of any site.
[+] est|3 years ago|reply
> still can’t do with today’s web

Playing smooth vector animations on a single-core Pentium III computer with 64MB RAM.

[+] fimdomeio|3 years ago|reply
I don't think the problem is the the web, the problem is screen sizes. Things where a lot simpler when all you had to think about was 800 x 600 or 1024 x 768. As soon as you got mobile and all kinds of resolutions it became a lot more technically complex which hinderes creativity.
[+] seydor|3 years ago|reply
Surely it would have adapted to become the defacto for touch apps, and it would be great for that. Apple's decision to kill it made that future impossible
[+] jhoelzel|3 years ago|reply
It was not flash that we were fighting. it was adobe and their proriarity and thought process in keeping flash to themselfs.

If adobe would have not been the way they were, they would now dominate the animation scene too.

Instead, inadvertetly because of patents, we dont have anything cool to show for.

All this minimalism everywhere is disgusting. And they never get it right anyway because you have to put hightower ads everywhere you can.

While it still was macromedia calling the shots, people had trust in flash

[+] drewcoo|3 years ago|reply
> It was not flash that we were fighting. it was adobe

And I thought it was Steve Jobs' wielding of monopoly power in the name of "taste." Or was it "security?" Or the fact that Apple couldn't keep Flash from crashing Macs?

[+] ciroduran|3 years ago|reply
I read somewhere that if a tool allows a massive amount of people to churn out mediocre stuff, your tool is an absolute success. I think that Flash was that success.

Even if web standards have caught up with what Adobe Flash used to do a full decade ago, writing games for the browser became a lot more difficult to do.

Barring Adobe killing Flash by disappearing it from the internet, I can run anything I wrote in 2004 on Flash Player in 2022. This level of compatibility is only surpassed by Windows programs. In today's web, I not only need to be careful of supporting 3 major browser vendors, but also support any breaking changes that any of these make, which means I might need to recompile my project long after I have archived it.

The closest thing that has allowed me to make stuff easily for a web browser is PICO-8. A fantasy console, with very limited resolution and capabilities, but all its dev tools integrated, that allows you to quickly export to HTML5 and optionally upload it to its BBS (the website). PICO-8 has made amateur gamedev fun for me again.

[+] yawnxyz|3 years ago|reply
AS3 was very powerful in terms of prototyping games and sound design. A long time ago I worked on lots of "music games" that combined game mechanics (like top down space shooters or "flappy bird" style stuff) with synthesizer code that made music.

I have no idea how to go about recreating my projects today in JS at all...

[+] noduerme|3 years ago|reply
As an old AS3 hand, if I were going to do it now I'd go with HaXe and OpenFL, building the asset files with whatever the last existing version of Flash was. I've been meaning to try this route but I've been feeling too defeated for the last few years to work on anything creative in this vein again.
[+] thom|3 years ago|reply
Given broad support for the Web Audio API these days I can’t think of anything that’s not been standardised, unless you wanted some form of preloading baked into the spec. ActionScript had actual integer types, if I remember correctly.

As others have said, it’s mostly tooling and workflow. As much as I’d like to sneer at Flash in general, my experience with it on projects was positive. The IDEs and tools were good, you could approach everything code first with unit tests. The process of cutting up PhotoShop PSDs from a designer and building UIs in FlashBuilder, while orchestrating everything in code in an MVC style was very pleasant.

[+] ajsnigrutin|3 years ago|reply
I miss flash games... and there were A LOT of good flash games.

I know that they can be remade with other technologies, but except for some clones remade to be a pay-to-win mobile apps, a lot of those games are just gone now.

[+] onion2k|3 years ago|reply
It's definitely harder to break out of the browser sandbox and attack the underlying system without it.