Hacker News new | past | comments | ask | show | jobs | submit login
Without Flash the current web tech stack might look different (trzeci.eu)
184 points by trzeci on July 18, 2017 | hide | past | favorite | 195 comments

I think what Flash (the program) really excelled at was giving creators the ability to draw, animate and program interactive objects, all wrapped in a single neat package. I would contest that no other software, even today, has come close to being able to do these three so seamlessly at once (Really, I encourage you to try to name one!)

Sure, when it came down to it you can say it had poor performance, security, filesize bloat (all things that were fixable or you could work around). But in reality, it allowed for developers to create amazing things in a fraction of the time it would take in any other environment.

As for myself, I've moved on to OpenFL and Haxe. It's fast, it's lean, it's cross-platform, it's open source... but it's still not the same.

I totally agree. My first tech job at a startup, around the time of the dotcom boom, was for an early streaming radio application that used Flash to deliver ads in a local desktop player. Flash was a simple, but empowering, tool.

The ubiquity of the Flash player transformed the Internet into a true entertainment platform. Prior to Flash, technologies like RealAudio/Video, Quicktime, and animated gifs were clunky and couldn't compete with traditional media. With Flash came the first high-quality, streaming, web cartoons/animations; web games; and eventually Youtube (after the release of the FLV format). Flash should be recognized as a true innovation that paved the way for the modern web. The modern web stack of JS, HTML5 Video/Audio, SVG has finally caught up, but I don't think we'll ever see such seamless integration and power in one tool (for better or worse).

The problem with Flash is that at some point people started using it to build websites. And then all hell broke loose. You had content which couldn't be indexed, broken browser functionality, severe usability issues, big load times (let's not forget that bandwidth wasn't always ample as it is today), security vulnerabilities, and a variety of other issues that made the whole experience pretty lame. So while Flash did indeed offered some unique capabilities in a friendly and frictionless package, it also hurt the web in so many ways.

This feels a bit like rewriting history, it wasn't for that long that people used flash to write websites. In my recollection there was like a 2 year window when you'd occasionally hit a flash site and groan to yourself. It was google that stopped that when people realized their sites weren't getting listed with SEO. And it seemed to be confined to mainly restaurants for some reason ;)

I actually think it didn't hurt the web, it was a massive driver for change, Flash highlighted the lack of functionality in html/js and was part of the reason that forced html to finally get canvas, etc.

If you're completely honest with yourself, you'll realise that html/js are still years behind what you can do in Silverlight and Adobe Air.

Now it's mobile apps that are forcing the web to carry on evolving and highlight just how backward html/js is. In years time we'll have people saying that phone specific apps were terrible, but in reality, without something to show us the flaws of html/js are, it wouldn't move forward.

Personally I'm no fan of the mono-culture of the web, the idea that you can only use one language, either for markup or for programming, should be anathema to all of us and instead it is bizarrely celebrated. I'd far prefer to be using Python or Ruby or whatever than javascript and in reality I think it's probably costing the world billions or trillions in wasted effort as we schlep around with javascript.

I spent a year building a pretty complex Silverlight app (which was then abandoned after Microsoft announced they were killing it) and you're wrong. Modern HTML/JS/CSS, when combined with a decent component framework, is more powerful. You seem to be yet another developer with chip on your shoulder about JavaScript, but you shouldn't let your prejudices blind to the reality of the web's current feature set.

If you want vector graphics, you have SVG. If you want imperative 2D graphics, you have Canvas. If you want 3D, you have WebGL. If you want video, you have the Video tag. If you want dynamic audio processing, you have the Web Audio API. If you want duplex, real-time or peer-to-peer communication, you have WebSockets and WebRTC. If you want client persistence, you have localStorage, sessionStorage and IndexedDB. If you want complex layout, you have CSS Flexbox and CSS Grids. If you want dynamic caching, you have Service Workers. If you want parallelisation, you have Web Workers. You have APIs to create, upload and download files from scratch, to instantiate typed arrays and get byte-level access.

You forget that Flash was a complete, well-rounded development environment, not just a language. It's a difference between Unity and e.g. writing your own solution in C++. The later is certainly way more powerful and gives you a lot more choices and freedom, but it takes a lot of effort and testing and learning to build a really productive tech stack and workflow that way. The same thing with HTML/JS/CSS. So many frameworks to choose from, IDE's have only very basic support for them, documentation sucks (if any), no good visual tools for animation, takes a lots of steps to push data from one tool to another (exporting/importing, converting different formats, etc.), you need to install a dozen of different tools and frameworks and then you still need to code a lot of basic stuff yourself. On the other hand Tools like Unity or Flash give you all you need in a single box, all perfectly integrated to work together, documented, you can just jump right into making things.

It's the same thing that Delphi & Visual Studio did for modern programming. If you were used to working in Turbo Pascal/C and switched to Delphi, it was just amazing what a productive boost you'd experience from having a true integrated development environment with all the little tools and drag&drop builders and ready-made components.

"Tools are for pussies - I only code in vim."

All jest aside - it's true that Flash is way more productive than the "true" web environment today. It has its drawbacks, but developer tooling was awesome.

All the things you list have terrible APIs, poorly thought out mechanics, mish-mashes of design philosophies. I've built silverlight apps and js ones and I disagree that html/js, even if you can use the bleeding edge, is anywhere near as powerful.

I may dislike javascript, sure, but it doesn't make me any less right that it's stupid that we still have no choice but to program in a particular language in today's effective OS, the browser. I generally use typescript now, but it's still rubbish compared to C# or Ruby or Python or [insert your favourite language]. And I feel the inanity of the present build infrastructure that we end up having to use is such an utter waste of my life.

Just think how much you'd chafe if you were forced to use a language you thought was substandard for 30% of your development time and waste hours or days every now and then wrestling build problems that I shouldn't even be thinking about it.

I certainly don't feel it's a chip, I think it's a perfectly sane response.

This. This is why I'm thankful to be a developer/designer at this time in the web's history. Browser support for features that I need to make a cohesive user experience has never been better!

I have a lot of gratitude to google, mozilla (and even Microsoft and Apple, as they come around to it) for making my job easier/possible.

> If you want client persistence, you have localStorage, sessionStorage and IndexedDB.

I really wish that we had a persistent, non-ephemeral web api for local storage. One that has to be manually deleted by the user, searchable by domain, just like a mobile app. It should ask you to allow it just like notifications or webcam usage, and allow you to set a maximum size with a reasonable fallback default. Until we have that, and full support for service worker features, mobile apps will be a necessity for many developers unfortunately.

Sidenote: But I don't understand why restaurant websites that I have seen are so bad. Is there a specific, prolific company that does these?

The trend of restaurants around me is to just have a single png scan of their menu and nothing else. I was talking to one owner and they were wondering why their SEO was so bad

Unless its a national chain, the ones in my area are either building it from scratch or using a template. The made-from-scratch are painfully obvious in that they look like some high school student with a touch of experience cobbled it together. And that's probably what happened - the owners child or niece/nephew did it.

The template sites are obvious because the owners chose a feature-filled template with all of the bells and whistles but have no use case for all of the frills. There are empty carousels, tons of extra white space, empty link slots, and a halfway responsive mobile experience.

Considering the above, a static, zoom-able HQ image of the menu is not a bad option. It's not optimal, but it's not bad. It tells the restaurant's name, phone number, business hours (possibly), address (again possibly), plus the entire menu. That ticks all of the major boxes for information that a customer may need.

I strongly suspect it is as simple as restaurants tend to not have much money for anything that is not strictly operations related.

I think in context the parent was somewhat suggesting the opposite though. The websites for (higher-end) restaurants and hotels are often this mess of sliding images and pop-ups that can, among other things, make it almost impossible to do something simple like find the address, make a reservation, or look at the menu. And a lot of this was done in Flash at some point.

I suspect it just became a sort of arms race with everyone competing on sizzle rather than usability.

What you're describing is pretty much small businesses everywhere. Presumably this is a lot of Squarespace's target market.

Somewhen around 2005 many bands had Flash websites. And this is pretty much the last time I've seen full blown Flash websites.

The only thing I'm using Flash now any more is watching videos. Where I'm living it is sadly still the standard for some TV stations video websites.

There were a lot of flash sites with marvelous experience. The site size was controlled by its creator. There is no difference in this regard between bloated flash site and bloated site built with standard browser APIs.

Indexing was fixable by some additional effort and it's the same with these days SPAs.

Basically most of those complains apply to a lot of modern web sites.

The restaurant websites that required flash were a pain in the ass, for sure. But there were some amazing experiments in pushing the boundaries of what I considered a website to be. This is an archive of one of my favourites, the Requiem for a Dream website:


> You had content which couldn't be indexed, broken browser functionality, severe usability issues, big load times (let's not forget that bandwidth wasn't always ample as it is today), security vulnerabilities

You're describing modern, client rendered web applications.

At least one of those things is significantly reduced with modern client rendered web applications: security vulnerabilities.

I wholeheartedly agree the host of power than Flash brought, but I'm glad for its demise because — among other reasons — of this: that rich interactivity on the web is now largely standardized and open.

This was the main factor that had developers cheering for Flash's demise. 1000 terrible restaurant websites plus the fear that it might catch on and supplant HTML thus ceding ownership of the web to Adobe.

Well, before Flash was around, there was HyperCard (and in fact ActionScript is derived from HyperTalk, the scripting language used in HyperCard). If you're not familiar, definitely take a look. It's also somewhat of a precursor to the WWW :) https://en.wikipedia.org/wiki/HyperCard

I'm sure Flash took many ideas for HyperCard, and HyperCard was definitely ahead of its time in many ways as well.

The interesting thing is, the most comparable environment I can think of today to Flash is Scratch, as it is a drawing, animation and programming tool all in one.

Of course, as the goals of Scratch mostly lean towards being a kids learn-to-program tool, all three parts are much, much, much simpler.

Everyone who was around the time MYST came along knows what HyperCard is! :)

haha, indeed! I remember trying to open the Ages in HyperCard and edit them and/or discover how they worked.

Last year, I had the awesome fortune of meeting Rand Miller and got to chat with him a bit about HyperCard and how they used it for Myst. Though, I barely remember what we discussed because I was so excited to meet him, hahaha :'D

HyperCard, Filemaker Pro, Flash, Access, there were a lot of tools in this space to allow problem solvers to create experiences. I don't think it's about being the first, as much as being relevant to a different audience to achieve their results. Each did that well.

Hype[0] is really good at the first two. We had short time to develop an animation for a site and I was shocked at how easy it was to use, integrate, and scale from mobile to desktop.

Though I've got nothing to suggest for the interactivity part.

[0]: http://tumult.com/hype/

Cool! It does look like you can hook in javascript in there, so they do have that going for it.

I second that except there was no filesize bloat. The plugin itself was quite heavy but the size of a flash site, banner, game and whatnot was based on amount of binary resources inside (images, sounds, videos). I remember Ad networks limits on flash banner sizes being very strict, less than 15 kBs. This was achievable because of excellent vector graphics capabilities of Flash IDE and plugin.

The problem is that it was hard (read: harder than with regular HTML files) to divide the file into different pages, or to implement progressive downloading, so many sites would download every single asset on the first request.

I think security was not fixable, at-least not to the user's and browsers liking. You had to disable flash for safety and stopping the most annoying ads.

The other issues could be left to consenting adults. But browsers and IT departments turned against plugins in general. Now even Java is almost gone (from browsers) for the same reason.

I think Flash screwed up security because of the way users could control what Flash had access to (through a Security Sandbox Controller on the Macromedia/Adobe website)

Imagine that instead Flash went the way of App Permissions: asking users for permission to access, read, and write different things to the browser. Could you imagine? Advertisers wouldn't be able to pull as many annoying/shady things, and security would start to become a non-issue.

If anything, Flash gave developers too much freedom at first to tap into the browser. Then they tried to backpedal by adding more sandboxing rules that still connected to their awkward security manager. And so, advertisers contently continued on abusing all the ways they could get their ads to become as intrusive and in your face as possible, and people began to be angry with Flash because of it.

Madobe once closely guarded the Flash player code base, yet their approach rapidly shifted to total abandonment in the early 2010s after realising that the chance to have a presence on modern smartphones had already sailed. All the issues that followed were symptoms of neglect.

A similar lack of comittment is also what doomed AIR which had a chance to succeed - after all there was a tonne of existing content waiting to be ported for native release by eager developers already familiar with the AS/Flex stack. Adobe dropped the ball hard by moving the R&D to Bangalore during the most critical time period and things went south really fast. By the time the product managed to stablise most developers have moved on.

Flash is well present in modern smartphones, given that it also compiles to native code nowadays.

I don't remember the flash permissions model being problematic. I saw two main problems with flash:

- it was a lightweight and compatible way to insert animated ads. The animation consumed a lot of CPU. This is why most people blocked flash, and why most Apple refused to support it on ipads.

- it had horrible security record. For some reason, Adobe could not fix the bugs in the Flash plugin. This is why IT departments started to block it.

For more details, see this very interesing Steve Job's letter why Flash would never run on i-devices: https://www.apple.com/hotnews/thoughts-on-flash/ (note it does not even mention sandboxing model)

Apple's main qualm at the time though was "If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers."

They've since done a double-take and have accepted games built in Unity and apps built in website-wrapper frameworks (also many of which are proprietary).

Apple had many reasons to want to rightfully kill off Flash. But the thing is, it wasn't all bad.

Note that I do agree however that slow security fixes and Flash causing crashes / consuming lots of CPU are real concerns.

> it had horrible security record

I think this is overstated. Sure there were Flash 0-days, but then it was probably also the highest-value 0-day target in the world. In those days Flash was more widely installed than any single browser, or even OS. It may well have been the most widely-installed application period.

The point being, if Flash was inherently horrible for security (in some way that, say, Java wasn't) there would have been exploits every day of the week and half the planet would have been owned. I think the reality is that it was just a really big target, which Adobe (with a lot of help from Google) kept relatively secure, all things considered.

Just because no one managed to create WannaCry for Flash doesn't mean the security problems are overstated. They've published over 50 vulnerabilities in Flash this year, when the installed base is in the toilet.

Java may be worse (or it may not be, but I would avoid installing either on most client machines), but blowing a bigger hole in the system's defenses doesn't really make the slightly smaller hole any less of a problem, it just changes your priorities in patching.

The only thing impressive about Adobe's security record is the number of times their source code was compromised.

To be clear I was talking about the era when a lot of people were working on Flash - on attack or defense. These days (since, say, 2013-ish?) I doubt there are many working in either direction.

The point being, in its heyday Flash was a bigger target than any web browser, and I don't think its attack surface was much smaller. If Flash had 10x more vulnerabilities than browsers did that'd be bad, but I don't think that was the case.

I found a security issue in flash accidentally while working on a CAD viewer in 2005. They fixed it promptly, but even a minimal amount of fuzzing would have uncovered it. I'm not so sure they did all they could on the security front.

That's Job's stated reasons. My understanding is that Apple/Adobe rivalry goes way back. "Thoughts on Flash" was Job's "now the tables have turned" moment. Once upon a time Adobe wouldn't make a version of their software for Apple machines cause it was to niche.

Wasn't the problem was zero day exploits in the flash player?

Absolutely. There were definitely multiple problems beyond the one I mentioned with security. But I would argue the one you mention is a problem with most complex software connected to the internet. I mean, they did what they could, they'd release patches. You could argue that it's similar to what proprietary browser vendors would have to do if they were exploited.

I have a feeling that if Adobe would publish detailed Flash file format specs when Flash started to decline, there would have been separate player implementations and Flash might still be alive today.

Of course, this also means alternative editor implementations, and this decreases business value. This is also a lot of work. And at some point, it became too late -- if format would be published today, very few people would care. So I am not surprised Adobe decided to let the Flash die, rather than open it.

The SWF format has been open since 2008.

Here's the current spec (PDF):


(edit: removing a now-obsolete comment wondering why I'd been downvoted)

Iggy[0] is a third-party Flash implementation.

[0] http://www.radgametools.com/iggy.htm

As state by other commentators it was an open standard. However the main issues other vendors faced were Adobe's control of the standard (no TC39) and the use of patents in the technology (compression etc).

They will be back, just let WebAssembly mature.

Very true. No one has built better tooling since. If webassembly can be the better endpoint..

I got started with Flash when it was still FutureSplash (FutureWave), and I think a lot of the credit we give Flash can be attributed to FutureSplash.

It didn't have ActionScript yet, but if I remember correctly, it did have the ability to link visual elements to arbitrary frames within the animation timeline (as well as to other URLs), so it was actually pretty powerful (a bit like HyperCard for the web).

I was still in elementary school at the time, but I remember creating original animations that my friends all thought were produced by professional animators (or templates), and it certainly expanded my vision of what could be accomplished with a computer. The fact that you could deliver such rich (and interactive) graphics/animations in such a small package - over a 28.8 kbps modem - was like magic. Keep in mind, this was before streaming video became practical for anyone, and simple things like JavaScript[1] rollover effects on buttons still had questionable browser compatibility. Apart from tiny GIFs[2] (usually flames or "under construction" signs), some random <blink> tags and scores of Java applets trying to make text scroll across the screen, the web was largely devoid of motion. I would argue that FutureSplash was the first technology to show us that the web was capable of delivering high-quality motion graphics (things that looked like video) - i.e., content delivery that would eventually compete with television. Indeed, its successor (Flash) would go on to build off that idea by incorporating streaming video support (responsible for most of the early video content online).

Not only was the technology impressive under the surface, but as dyarosla mentions, the animator software struck a unique balance between being powerful and extremely approachable for beginners. That combination continued, for the most part, through Macromedia and Adobe.

[1] Strangely enough, I seem to recall a few years later (probably when it was under Macromedia's control) a player was released that could play Flash animations in pure JavaScript (eliminating the need for a plugin). It's interesting to think about how far we've come since then, yet how similar that was to our modern web tech stack, at least in concept.

[2] Actually, I don't think they were even animated GIFs as we know them. Client pull and server push animations: http://www.oreilly.com/openbook/cgi/ch06_06.html

Whoa, nostalgia triggered -- I totally forgot about FutureSplash Animator! Ah man, good times :)

> would contest that no other software, even today, has come close to being able to do these three so seamlessly at once

What really made flash better than the rest (and still make it) was the ability to use a familiar interface for creatives (a timeline is a timeline) to to build resolution independent artifacts that they could test on their own, on their personal computers, just by pressing ENTER or frame by frame

Processing, especially the javascript library is ready to go on HTML canvas.

You can't draw or animate in processing. You can program lines and shapes and animations, but that's hardly comparable.

i know nothing of creating things using flash. can you link a good resource that gets at what you are describing? i am familiar with and have used processing though.

You can look up how to videos on youtube for all of drawing, animation and programming in Flash. The drawing and animation tools are much like you would find in any full-fledged, 2D animation software. BUT! You could then add in code to additionally move, animate, interact, or all manner of other things to make any of the kinds of flash content (like games) you see on the web.

This is as opposed to what you do nowadays; use one piece of software for drawing, possibly another for animating, then export those images and/or animations to some format, linkit together with a separate language and/or framework, and maintain assets separately of code. Flash pulled all of these things into one, but in a way that allowed for really complex projects to be made.

the thing is that Flash basically gives you "dynamic illustrator".

A litany of tools for manipulating images and building animations right in the program, without needing to write a single line of code.

And then, on top of that, you can actually.... write code! And it works quite well!

Flash is one of the funnest programming environment to use for "interactive art". Straightforward things are almost always straightforward, and it's much easier to WYSIWYG your way through a lot of tedium.

"Really, I encourage you to try to name one!"


"Really, I encourage you to try to name one!"


> Really, I encourage you to try to name one!

The CreateJS suite covers most, if not all, of what Flash could do in JavaScript. In fact, it is the library used by Adobe Animate professional to export Flash programs to HTML5 target. It may not be as user-friendly, but it's as comprehensive.

CreateJS is not an integrated digital art, animation and coding tool. It is a set of programming libraries that can program these things.

OK, CreateJS with NanoFL, then. I prefer to work without GUI tools, but they are available if needed. But I readily grant that they are not advanced as the original Flash environment.

BTW, to those that downvoted this comment to -2, in HN we generally don't downvote to express disagreement.

Flash is not just ActionScript 3. The only environment that beats Flash IDE for asset management and editing is Unity3d.

Was anything "amazing" every created in Flash? It's obviously subjective, but things that would merit the "amazing" tag for me would be things like, Wikipedia, Google (the Search Engine), Facebook (love it or hate it, it's an awesome success), Google Maps, stuff like that.

All I remember from the Flash days, and I was a flash developer bear in mind, was clunky, contentless, CPU hammering folly. None of which I think I miss.

YouTube couldn't have started when it did without flash, even if it's moved on to html5 now.

Also lots of indie game devs (e.g. team meat of super meat boy or binding of Isaac) got their start there, a lot of the early "upload your flash game here" might have paved the way for getting so many games on the app store model when it got going.

Had flash not existed, I suspect they would have used another video playback plugin, or rolled their own. I don't think YouTube's success was dependent on Flash. But the ubiquity of Flash certainly didn't hurt.

Imagine YouTube depending on QuickTime, Windows Media Player, RealPlayer, or Java Applets. Flash's user experience was just so much better than those options. I'd guess that YouTube couldn't have had that much success were there not such a ubiquitous (and downright good) plugin.

A whole cultural generation of comedy happened on Flash; some of the early Flash pieces are touchstones that are still referenced today. Heck, professional cartoons were done in it, and its stylistic touches became established enough that even people working in other tech stacks adopted them - you can date a lot of animation from that era by the thick-outline style that comes from Flash. Programmers didn't create amazing programs in flash, but animators created amazing animation.

> Was anything "amazing" every created in Flash?


Less facetiously many web based games would not have been possible with other options available at the time. I can't think of as many significant tools that it was in part responsible for and it massively outstayed its welcome (a few years before Google maps and http://www.elizium.nu/scripts/lemmings/ I expect flash or java applets would have been needed to achieve the same effect both because of browser performance & compatibility issues at the time and the fact then JS was disabled in many environments too), but thre were some things it was still the least bad option for until a few years ago, video (thing youtube and similar) being the main one.

> clunky, ..., CPU hammering

Definitely, though there were some great programmers out there making efficient things in flash, it had the issue of making it easy to create a sub-optimal mess (some would say the tooling made it overly hasslesome to create something efficient, though I was never a flash programmer so I can't comment there myself).

> contentless

The same can be said of a great many things not involving flash; before, during and after flash's heyday!

> folly

One man's folly is another man's comic (or otherwise artistic) genius. There was a lot of dross, but flash allowed the creation of some great pieces in its time.

Strong Bad counts, in my book.

> Was anything "amazing" every created in Flash?

Not so many practical tools spring to mind but on the arts and creative side of things most definitely.

> folly

Small cultural artifacts move humanity in more subtle ways than the utilitarian behemoths mentioned by you.

Weebls Stuff and Rathergood influenced my thinking a lot by introducing 14yo me to absurd. I'm sure less popular creations made in Flash had some effect too.

The Binding of Isaac [0] was created in Flash.

[0] https://en.wikipedia.org/wiki/The_Binding_of_Isaac_(video_ga...

A whole host of Single Dealer Trading platforms from major banks delivered on the web via flash (and Flex).

Quite an ambitious achievement for a simple animation tool.

The past four years of my career have been spent replacing all that stuff. It was never good. It was just the best Flash could do.

Perhaps in your retrospective opinion, but it was good enough for every major investment bank to invest millions in, and even enough for a company like Microsoft to try and copy...

Having been sat at the table while big decisions have been made on important pieces of software for some of the worlds largest and most influential financial institutions, I can say with a fair degree of certainty that those decisions are rarely informed or reasonable.

One thing I know to be true. The corporate world is run by insecure, ill informed pretenders who fear accountability above all else. People who only make a decision when someone under them has put their neck on the line.

Flash and Flex's success in financial services was not based on merit. It was based on fear of deviating from the norm.

> Was anything "amazing" every created in Flash?

> Google Maps

Here you go.

I'm fairly certain that Google Maps was Javascript from the beginning.

Homestar Runner! I'd certainly miss that.

About the open source AVM2, there are in total 3 versions:

The tamarin project on Mozilla mercurial with tamarin-central [0] and tamarin-redux [1]

Then after the project got abandoned, Adobe renamed it to avmplus and moved it to github [2] and made a couple updates.

Later on, they moved it to another repo [3], updated it on December 2015 to the equivalent of Flash Player v19.0 and updated it again on Mars 2016 to the equivalent of Flash Player v20.0 (codename rankin).

I maintain a fork/extension named redtamarin [4] which focus mainly on adding native API to make ActionScript 3.0 run on the command-line, shell scripts, server-side, etc.

imho FlasCC/Alchemy/CrossBridge did not take off because it is much harder for dev to produce a project in C++ than in AS3, also why redtamarin took an opposite approach: bring the C API to the AS3 context instead of forcing users to actually write C/C++ code.

[0]: https://hg.mozilla.org/tamarin-central

[1]: https://hg.mozilla.org/tamarin-redux

[2]: https://github.com/adobe-flash/avmplus

[3]: https://github.com/adobe/avmplus

[4]: https://github.com/Corsaair/redtamarin


I wrote a uploader in flash for our photo hosting website many years ago using alchemy. From memory I wrote a wrapper for libjpeg that could do the resizing in C which was then compiled into flash bytecode. That could then be imported into the swf that would handle multiple files drag-drop resize / upload. That all interfaced with the page through some sort of JS bridge.

I'm amazed any of it worked to be honest, somehow it managed to chug along for a decade without issue.

Alchemy also required a per-domain license key to be purchased to unlock various API combinations at runtime. For me this was the biggest shock and definitively a hint that not all was well in flash land. Runtime player licenses were unheard of until then - only the authoring tools cost money. Having to pay up for every swf on every domain certainly put a chilling effect on experimentation around the new APIs.

Adobe removed the need to have license afterwards

As far as I can remember, that reversal came much much later, when flash was already "dead in the water", unfortunately. By that time WebGL and asm.js/WebAssembly was already coming on to the scene. And it really set the stage for questioning adobe's stewardship of the runtime for developers. Fool me once, ...

The question is, do any of the existing web stacks come close to the beginner friendly aspects of the original flash?

I don't think so.. I can imagine any of my musician friends installing $FRAMEWORK and building a web site full of their own animations, menu's, and music playback..

Flash for all its "evilness" still IMHO hasn't been matched.

There's an app on mac called "hype" that does a decent job with layout, animation, and basic interactivity in HTML5, but I agree we need good WYSIWYG tools.

That being said, Flash definitely had a learning curve that wasn't entirely trivial. So much of the javascript community seems focused on using JS for the really big applications and large scale stuff these days, but I think it'd be nice if innovation were happening in accessibility and tooling for light programmers.

Light programmers is my idea of people who want to build basic functionality but not huge applications and may not be formally trained or have any experience programming, like how small and medium businesses used Flash for cheesy website animation back in the day.

There's a lot of overhead knowledge needed to create in HTML/CSS/JS, and a lot of the beginner tutorials feel like they assume you're intending to become a web dev.

There's more tooling and better libraries for JS today than ever before, but these things are hard for beginners. Stuff like webpack is great but it seems like the focus is in that space.

You could argue that the high complexity large application space is where the focus needs to be, and where js is at its weakest, but I can't help but feel like we could do better. The best thing (imo) for beginners using JS (who don't intend to continue learning to become a developer) is JQuery. Yeah people abuse it but it does simplify basic animation stuff for inexperienced developers.

End rant I guess?

Similarly, Visual Basic. Has anything since allowed non-programmers to build a GUI as easily as that? Just drag and drop, then double click the button and follow the on-screen prompts to glue it all together. It gets a lot of shit from real developers, but what can match it?

I did Visual Basic and MS Access programming mostly in the late 1990s. Upscaling to SQL Server when the database grew too large etc.

IBM OS/2 had a Parts Workbench that was easier than Visual Basic and Borland had Delphi based on Object Pascal.

Ruby on Rails comes close and Python is the new Visual Basic for a new generation of programmers now.

Rails and Python are fine, I've used both of them extensively, but they are no comparison to VB in any way. Sure they're easy enough to use, but it's all 100% pure code. The biggest benefit of VB was the interface was not coded, it was drawn. There's no way to do that with Rails or Python.

That sounds like a startup idea. Make ROR and Python have an IDE as easy to use as the VB IDE.


Been around for a long time, was formerly called RealBASIC.

QtCreator has a similar feeling too it, albeit using much more convoluted language.

Delphi, Borland's response to VB but with a saner programming language, with AOT compilation to native code (VB only got it on version 6).


I would agree with you on the Winforms portion of the .Net universe.

None of the other parts of the .Net universe are comparable, though; most are either kind of clunky (Webforms) or require a much bigger learning curve to get going.

creating a gui in labview is pretty trivial.


And it's Open Source "brother", Lazarus.

The authoring software was user friendly but sites made that way were atrocious in terms of usability in every way possible. Slow loading and also everything else about a browser didn't work as expected - bookmarking, back button, cut and paste, open in new window were all broken in flash sites. I don't think that it's laudable to create a tool that empowers beginners to create useless and difficult websites.

As a counterargument, look at the state of the web today without Flash. Many websites are still bloated, still slow to load, still hijack the back button, still mess with copy and paste, still force same-window-only opening. So was Flash really the issue?

With the flash sites i refer to, the back and forward buttons didn't work at all. Slow to load today is nothing like loading a 1 mb flash app over dialup on a 800mhz pentium iii. I mean copy and paste, like back and forward, were not just l 'messed with'... you often couldn't even highlight text. Flash sites were far worse than the average awful HTML site of 2004, and this is why they're now almost totally dead.

Sure, the real problem is the people who made poor decisions and made sites like that in the first place, and still do.

This blame is misplaced. Flash was never designed for full websites and developers at the time knew that perfectly well - nobody was making a design decision to disable the back button.

The reality is just that HTML in those early days was grim - IE and Netscape were making up tags willy-nilly, and any kind of interactivity or media playback was nigh-impossible to achieve without plugins. (Even for static layouts it could be a significant challenge to make things work the same way across browsers and platforms.)

So the result was, for interactive media-driven sites, developers used Flash outside the bounds of what it was meant for, and the back button broke. The alternative wasn't to not break the back button, the alternative was having a big "This site only works in Netscape!" banner, or having no interactivity at all.

Correct, nobody made the design decision to disable the back button - they did it in complete, oblivious disregard.

I'm well aware of what you state and the entire point of my statements is that those decisions were wrong.

The solution I would have preferred to those issues you describe is actually not that at all. It's to make simple, usable sites like the one we are currently on.

As far as what you're saying about intent, i am not so sure that adobe never intended or encouraged flash to be used to make whole websites. I suppose one could research that, but it's beside any point i was making.

> The solution I would have preferred .. to make simple, usable sites like the one we are currently on

Neat, but many companies in 2004 wanted sites that couldn't be made out of styled text - minigames, product configurators, branded media experiences or whatever - and they wanted interactivity more than they wanted the back button to work. If you think they were wrong to do so that's fine, but it hasn't got much to do with Flash.

> I suppose one could research that, but it's beside any point i was making.

Its part of the point I was making - that Flash was originally a technology for inserting interactive animations into web pages, and all the significant usability concerns arose from people using it for more than that, which they did because the alternatives were so lacking. (Of course this put pressure on the alternatives to improve, which is what TFA is all about.)

Sure, lots of customers thought they wanted websites full of unrealistic, bad ideas, and Flash made that possible for them. I'm glad that's over with.

And yet the SPA (Single Page Application) of today share the very same flaws.

I blame unnecessary frameworks and engineering exercises for the bloat. In no other country, is software IT so big. So much technology for technology sake.

Good point. Everything annoying and insecure about Flash and Java applets has been carried over into JavaScript. The root cause issue is the desire for client side execution of arbitrary code.

Indeed, lets condemn everyone who creates easy to use and powerful tools! I think everyone prefers pain in the ass tools and don't do much, this is the best way to protect the holy order of coders. Long live shitty tools!!!

> Indeed, lets condemn everyone who creates easy to use and powerful tools!

Easy to use, powerful and proprietary. As a consumer, flash sites were often horrible. Get a few minutes into using it, find out that there's a bug keeping you from advancing any farther in exploration and your task, so you need to reload. Oh good, you have to start from scratch again because it's not actually using URLs to keep track of your location. Want to know how to find a manual on a manufacturer's site? Oh, good, they used flash, so their site isn't indexed correctly by any search engines, and you have to navigate their poor idea of what made a good UI in 1995.

Flash was good for media delivery. For everything else, it just broke how the web was expected to work.

Yeah, its great when no one can index the content, no one with disabilities can see the content, the UI follows no conventions, sounds blares at you for you to slap the monkey, and is a huge security hole!

I get where you are coming from, but being snide when supporting something that was misused so badly is a bit one sided.

Excel is great and has enabled millions of people to accomplish things that expensive coders were previously needed for (and that was a net good) but when misused these things can cause terrible problems[0].

[0] https://www.bloomberg.com/news/articles/2013-04-18/faq-reinh...

When I read your first sentence, I honestly believed that you were describing the current, flash-less, world.

I readily agree that Flash was horrible, but none of the things you mentioned has improved with the demise of Flash, at all.

Despite all the complaining, the situation today is a vast improvement over the internet ca. 2000 or so. Just a few points:

- There are four different browser engines, but no website ever asks you to install a different one (except some Google Cloud stuff tsktsktsk)

- You can develop a complex javascript application and, at the very end, discover that it works in all browsers.

- You can develop a complex javascript application

- seriously, this point needs repetition. In the past I'd spend more than half of the time trying to get something working at least in both firefox and IE, with the fix for A frequently braking B...

- websites cannot open 100 popups, maximise the window etc.

- almost all websites are usable on screens of every size (flash liked to insist on, for example, 800x600. which almost never was the right size)

- Even worse than Flash: Java Applets, Active-X. Seeing a Swing UI today is like a reunion with your childhood tormentor after you've succeeded in life and he has three marriages and a stint in jail behind him: you still have vivid memories of the pain, but it can no longer hurt you.

- Most important: Flash broke everything that makes the web a web. It was simply a delivery platform for binaries with URIs. No links, no way to spider content, access limited to the select platforms Adobe felt like supporting etc.

- Netscape, IE, Opera.. Firefox started to emerge around that time too.

- The javascript complexity that can run in browsers is an achievement. Relatively speaking, flash was the one runtime Java promised to be, and Java applets however clunky looking back were as futuristic as today's tools are in some use cases.

- Responsive flash apps were perfectly possible if you wanted. Most never learnt that though. That resolution was painful tho.

- Ajax apps are the original JavaScript apps. It was possible to build desktop apps in the browser just fine. 1999, Outlook web app was one of the first complex JavaScript apps in 2000.

- Flash also developed the ability to index content. Same flaw though can exist in js apps too.

I don't want to guess how much of the stuff you wrote about you have used, but those were my experiences in that time. A lot of bleeding edge stuff much like today. I'd still take today though because there's so many more folks online.

It does feel like there has been a lot of constant reinvention and a loss of forward progress. We just keep rebuilding browsers, flash as webassembly, and no shortage of frameworks to extend programming languages to the web, and recreating libraries. I like choice and being a polyglot as much as the next person but at a certain point it seems like our tools are getting broader instead of deeper.

Flash was far from perfect but probably could have stuck around for a few more years while the future of progressive apps matured. They never really got their security game together, but flash lite powered graphical guis on more mobile phones than anyone knew and it was possibly a threat to iOS as no other rich experience existed in mobile.

Instead we all had to wait painfully for JavaScript apps to mature to what flash could do 10 years ago with flex and air (although I wasnt a fan of either they laid a lot of ground work for the rich internet application space.)

Granted it probably helped push things along that flash wasn't around as a crutch...

Some would argue developing mobile and js apps as as painful in the past 5 years as web dev was in the 90s.

I'm just pleased to see the ubiquity and js apps on any medium continue to converge. Hope the high level tooling is coming next to create a whole new segment of beginners.

When I read some of these comments, i get the feeling people aren't aware of the extent of the technical shortcomings of flash circa 2005.

Of course indexing has improved since the demise of flash, compared to the heyday of flash. Flash contained all text in an unindexable binary blob.

Accessibility was very poor since, again, flash prevented the use of any browser features for that without offering its own.

Flash was also a leading security hole for years.

Powerful tools to do useless or harmful things aren't helping anyone.

Ah! Flash!

I started my career as a programmer but always had a mind for creative designs. When I discovered Flash around 2002-2003, I was all over it. ActionScript was my ultimate weapon to make Flash sing and dance to all my tunes.

I was so involved then, Macromedia picked me as one of their "Professional Expert" or something in that line. Those were the times when I made good money, lots of friends, clients, met few interesting business partners.

In the summer of 2005, just as it was about to be acquired by Adobe, I got an email that I was invited to their office in San Francisco. I was one of the 20-odd people from around the world picked up for something called the "Lego" Team. I was overwhelmed, humbled, and scared - to meet all the authors from whose book I learned ActionScript, all those developers whose files I downloaded to learn Flash/ActionScript. It was a blast.

If you were into Flash during those times, you'd remember names such as Guy Watson (FlashGuru), Brandon Hall, Peter Hall, Colin Mook, Aral Balkan, Jesse Warden, Peter Hall, Marcos Weskamp, Grant Skinner, etc. Well, it was the congregation of the whos-who of the Flash world at that time.

Well, all of our names were then featured on the credit screen of Macromedia Flash. Some of us also realized that Flash was dying and something needed to be done. Adobe came along and well, Macromedia and Flash became just another archive on Wikipedia.

Next year, 2006, the company I founded was acquired by a Startup from Silicon Valley. That's when I started my very bumpy Startup journey, and I'm still chugging along.

Here are some of the Macromedia Flash Lego Summit photos - https://www.flickr.com/photos/brajeshwar/albums/720575940814... (who do you recognize).

Thanks for sharing! That's a blast from the past. I used to work on the Flash team at Macromedia and Adobe in that very office. :)

I believe "Lego" was the code name for Flex Builder aimed at developers. "Duplo" was the unfortunate code name for a corresponding Flash authoring application aimed at designers who didn't write ActionScript.

Hahaha, Lego and Duplo for developers and non developers, fantastic!

Flash, specifically Flex, won the battle and then promptly lost the war as other companies remade the internet in Flex's image.

Adobe's sudden and not at all inevitable betrayal of Flex devs was a huge shock and absolutely killed Adobe in the field of Rich Internet Apps which at that point they were dominating.

If they'd pivoted Flex to compile to Javascript then the world as we know it would be a very different place, one where we would have been happily producing web apps in MXML markup for the last decade rather than recently rediscovering it through the medium of React and JSX.

Then you should check FlexJS [0]

Also checkout the last FlexJS Summit at ApacheCon Miami 2017 [1]

[0]: https://cwiki.apache.org/confluence/display/FLEX/FlexJS

[1]: https://www.youtube.com/playlist?list=PL4EsaSA9xpnnraJX7NzpX...

At the key time JS couldn't achieve everything in the Flex scope, even now some of the less open features (DRM) are still missing.

Having said that 80% of my time is still spend writing AS3 in Flex ;)

I feel as though the author missed talking about Flex, which really took flash to the next level. It was short-lived, as it came a few years before the end of Flash-as-we-know-it when Steve Jobs decided to block it - but it was a great way to build sophisticated SPA's before the javascript ecosystem was able to catch up. Thanks Flash!

Adobe Flex really took things to the next level. AS3 is still one of my favorite programming languages, at least until it used mx components (I think that spark thing really messed it up). Everything was event driven, async, first time I learned about Bindings and 100% OO. I think AngularJS still can learn a few things from AS3 (like Binding event, etc). Yeah.. thanks flash, big time!

I taught an introductory UI programming course using Adobe Flex - very easy for beginners to pick up and start building functional UIs with minimal code complexity.

Too bad it isn't used more in the real world - it really is a fantastic prototyping tool.

it came a few years before the end of Flash-as-we-know-it when Steve Jobs decided to block it

I forgot about that. Does anyone have any info about this? I didn't pay much attention at the time, but in retrospect it seems like it was one of the main reasons everyone stopped using flash.

Did Adobe try to get Steve to pay a licensing fee, or was he just inherently against implementing flash?

The excuse Steve made at the time was that it was too CPU intensive to run flash. I'm not sure how true this was, except for the earliest iPhone models. I've always wondered what the real reasons were.

It was certainly a good decision in retrospect, but it's an interesting bit of history.

Beyond the security issues, Adobe was just terrible as a platform maintained. Flash was the largest source of crashes in every browser until they moved it to a separate process, there were endemic performance issues even in core features (e.g. video playback was significantly more CPU intensive, and general code was well behind native speed), and most of the toolchain was in a state of obvious neglect, from the library inconsistencies (e.g. fonts rendered differently in some controls in the standard library and many of the method/property names didn't match), to the wrong or missing documentation, the many crashing bugs in the IDE, and the debugger which couldn't even pause on a breakpoint reliably. Nothing ever got fixed because their resources went into new features but the support people would reliably ignore tickets until sending a message telling you that it might be fixed in the next paid upgrade - could you buy it and let them know?

Had Adobe shown even the slightest sign of responsibility it might have been a different call but at any point after maybe 2002 it was pretty obvious that you shouldn't depend on Flash because Adobe was just milking the customers.

At the point that Jobs wrote his lie filled "Thoughts on Flash" Flash Player was vastly more performant at HTML5y things like animations, video and music playing than doing it in the browser.

I'm not going to defend the quality of the flashplayer architecture and implementation (due to it's crapness) but it was perfectly fine performance wise - it was a 'resource hog' because of the terrible, terrible code that people wrote for punch the monkey flash apps.

At no point did I benchmark playback of H.264 in Flash being anywhere near native speed - huge deal on battery powered devices, or simply playing >15fps without dropping frames. WebM's software playback was roughly as slow but nobody used it and Google did optimize it over time, which is the kind of maintenance which Adobe was uninterested.

Similarly, the fact that Flash was competitive with IE5 is the problem: browser vendors invested heavily in making that platform faster and richer. Adobe executives thought they had a monopoly and did not.

I saw it as two main issues:

1. Apple couldn't improve the Flash player like they could with WebKit and Nitro to make Flash content run well on their phones.

2. Most of the complex content on the web was in Flash, by not supporting it the web was fast and light weight for a very low powered mobile device.

If you try and load a JS heavy website on an original iPhone now days it will likely crash.

Flash is a security nightmare. It's a 3rd party application that opens up the device up directly into the OS if compromised. Jobs blocked it because it would make iPhone vulnerable to attacks they couldn't control. I don't blame him for blocking it honestly, even though it meant we had totally change tech stacks.

Also, Jobs probably realized flash apps could circumvent his app store model.

The app store wasn't opened until just over a year after the original iphone release (a day before the 3GS was available). Initially, you were supposed to build "web 2.0" apps using the safari engine. Flash didn't work then either.

Yeah but certainly they were planning to launch an app store when Jobs penned his open letter on flash. My understanding is they just didn't have the app store and the sdk ready in time.

> Yeah but certainly they were planning to launch an app store when Jobs penned his open letter on flash.

That was almost two years after the opening of the app store, and almost three years after the release of the iphone. I'm unsure whether they really had a fully thought out app store strategy initially, or whether they stumbled into it sort of by accident. Even if an app store was planned, I'm not sure they really knew what to expect. I seem to recall them initially saying you didn't need native apps, and then finally realizing the demand was so great (and performance too poor with Safari) that they needed to open one so scrambled to do so. That may just be a narrative I latched onto and remember though...

This is correct. People were clamoring to write native apps, but Steve tried to deflect them by saying it'd introduce too many security problems. Carmack blasted him publicly, saying that if Apple can't figure out how to secure a unix-based OS then they were incompetent.

I wish I saved the pamphlet that Apple sent to developers during the iPhone 1 era. It was hilarious. It was all about how to use Safari to write webapps. They even highlighted how you could save a bookmark as an icon on your home screen so that your webapp launched like a native app. But of course it was just Safari.

I remember a while back (6 months? A year? two?) there was an interesting submission (well explained blog rant) about how saving webapps to the desktop/phone as apps was basically broken, and regressing, IIRC (I apparently didn't favorite it, and I can't seem to find the magic words for search to bring it up), Apple was a primary offender, but Google wasn't perfect either. If I'm remembering correctly, that's a big about face from their stated original intent.

This was such a poor go to argument from Flash developers (I was/am one of them). However in reality this wasn't just about revenue as many assumed (it's a tiny tiny tiny percentage of Apples turn over). The better argument was that Flash, even wrapped in a native container (cordova etc) was insecure, slower and out of their control. Forcing developers to use native toolkits and frameworks produced far better applications as a result.

Even today the best apps are still native.

This is just silly, jobs allowed and even pushed web apps. You can just as easily circumvent the app store with web apps.

They forbid language runtimes. Sure, web apps are allowed, but nothing else is if it's freely programmable, including other browser engines.

That was once true but no longer. Apps in the store can now run interpreted code from anywhere, downloaded, typed in, or bundled with the app. However, they can't implement their own app store outside of Apple's.

I'm only going to discuss interpreted code. The operating system prevents the execution of any object code that isn't signed by the App Store. The only exceptions are system processes, like JavaScript just-in-time compilation performed by WebKit.

Let me go through the changes in section 3.3.2 of the Apple Developer Program License Agreement. I'm going to skip over some things, because I can't find copies of the very earliest agreements, and I haven't read every single one since.

iPhone SDK Agreement, revised 2008-10-20:

    3.3.2 An Application may not itself install or launch other executable code
    by any means, including without limitation through the use of a plug-in
    architecture, calling other frameworks, other APIs or otherwise.
    No interpreted code may be downloaded and used in an Application except for
    code that is interpreted and run by Apple's Published APIs and built-in
This bans web browsers with custom engines that run JavaScript, Flash, or Java applets, and it also keeps out alternative app stores. You can display web pages that contain JavaScript, but they have to run inside of the WebKit framework. It seems to allow bundled scripts running on a custom interpreter.

In 2009-03-17, it was changed to this:

    3.3.2 An Application may not itself install or launch other executable code
    by any means, including without limitation through the use of a plug-in
    architecture, calling other frameworks, other APIs or otherwise.
    No interpreted code may be downloaded or used in an Application except for
    code that is interpreted and run by Apple's Documented APIs and built-in
Now it says “downloaded OR used”, not AND. So this is even stronger, and prevents an app from containing any amount of interpreted code. It seems to ban lots of games that run an embedded scripting engine.

The iPhone Developer Program License Agreement, revised in 2010-06-07, says:

    3.3.2 An Application may not itself install or launch other executable code
    by any means, including without limitation through the use of a plug-in
    architecture, calling other frameworks, other APIs or otherwise.
    Unless otherwise approved by Apple in writing, no interpreted code may be
    downloaded or used in an Application except for code that is interpreted
    and run by Apple's Documented APIs and built-in interpreter(s).
    Notwithstanding the foregoing, with Apple’s prior written consent, an
    Application may use embedded interpreted code in a limited way if such use
    is solely for providing minor features or functionality that are consistent
    with the intended and advertised purpose of the Application.
Okay, so game scripts are now legal again, with permission.

A year later, iOS Developer Program License Agreement (2011-06-06):

    3.3.2 An Application may not download or install executable code.
    Interpreted code may only be used in an Application if all scripts, code
    and interpreters are packaged in the Application and not downloaded. The
    only exception to the foregoing is scripts and code downloaded and run by
    Apple's built-in WebKit framework.
So now you don't have to ask permission to use bundled scripts. Also, they mention the WebKit framework specifically. Sometime later, iOS exposed JavaScriptCore and made it possible to run downloaded scripts that aren't embedded in a web page.

On June 5th of this year, the Apple Developer Program License Agreement (which applies to both the iOS and Mac App Stores) was revised to:

    3.3.2 Except as set forth in the next paragraph, an Application may not
    download or install executable code. Interpreted code may be downloaded to
    an Application but only so long as such code: (a) does not change the
    primary purpose of the Application by providing features or functionality
    that are inconsistent with the intended and advertised purpose of the
    Application as submitted to the App Store, (b) does not create a store or
    storefront for other code or applications, and (c) does not bypass signing,
    sandbox, or other security features of the OS.
    An Application that is a programming environment intended for use in
    learning how to program may download and run executable code so long as the
    following requirements are met: (i) no more than 80 percent of the
    Application’s viewing area or screen may be taken over with executable code,
    except as otherwise permitted in the Documentation, (ii) the Application
    must present a reasonably conspicuous indicator to the user within the
    Application to indicate that the user is in a programming environment, (iii)
    the Application must not create a store or storefront for other code or
    applications, and (iv) the source code provided by the Application must be
    completely viewable and editable by the user (e.g., no pre-compiled
    libraries or frameworks may be included with the code downloaded).
So now downloaded scripts don't have to be JavaScript and don't have to run inside of Apple's interpreter. (The second paragraph doesn't even apply to iOS, because it's not even possible to execute unsigned code.) So now Google and Mozilla can rewrite their iOS web browsers to use their own Blink and Gecko engines, instead of merely wrapping WebKit, though the system will still prevent them from doing JIT compilation. Hell, they could even support Flash if they wanted to.

It's funny, but no one has seemed to notice this except for The Register.


I think the bad mobile perf argument was legit – android made a big deal of “hey, we’ll have flash, unlike iphone,” and then ended up dropping it too, when it performed badly and killed battery life.

Steve Jobs detailed his reasons on the open letter Thoughts on Flash (https://www.apple.com/hotnews/thoughts-on-flash/).

In his biography, he didn't get along well with Adobe. That's the reason he did it. For all other technologies, Apple creates their own competing product. Why didn't they just do that for Flash (creation side and delivery side)?

The writing was already on the wall for 'applet' based web content I think. It was clear HTML/JS was going to take over on the Web, and Apple were trying to push native apps for as much as possible too.

Flash had already peaked and most people knew it. Apple just hastened its demise. (Also the performance was atrocious on the early Android phones that supported flash)

It was like when the Mac eliminated the floppy drive. Seen as gutsy (or arrogant) at the time, but no one really doubted that's where we were headed.

Combo of poor performance and battery usage.

I'm sure the unstated reasons included that it generally made for poor UX across the web.

> Did Adobe try to get Steve to pay a licensing fee, or was he just inherently against implementing flash?

Aside from security issues others have mentioned, Early iPhones employed HTML5 as the only 3rd party app API: no flash, no java, not even native Objective C apps. The only reason Apple opened up the Cocoa API to 3rd party developers was because HTML at that time was insufficient for powerful offline experiences (only recently has tools like services workers made deploying offline apps via browser HTML possible). Many would argue Apple's exclusive embrace of modern HTML on its phone was pretty helpful in ensuring HTML5's success accross all platforms.

Horrible performance on the iPhone/iPad. Killed the battery. And security risks.

  Flash was the great motivator for browser vendors to improve [their] technology
Flash was the first technology to really compete with the open web. That competition (which went both ways, mind you; recall such late excesses as Flash's Text Layout Framework) ultimately made the web stronger and more versatile. It's hard to imagine what the world might look like today had that fire never been lit under the web standards movement.

At the same time it's not hard to imagine how much better the world would be today if Macromedia was not sold to Adobe, and Adobe was not scared into abandoning Flash by the concerted efforts of Apple, Microsoft and the web standards zealots.

Adobe wasn't scared in to abandoning Flash, they just stopped investing in in the early 2000s. Nothing prevented them from cleaning up the warts, adding an automatic updater a decade earlier, taking security seriously, investing in performance, etc.

Part of why the HTML5 group got so much traction was that everyone else realized that the web's rich application platform couldn't be a company which wasn't serious about maintaining it.

I was 16 in 1999 when a high school teacher presented me the Flash 4. From there I built my professional career. For most than one decade I improve my Flash and ActionScript skills and loved that. I never felt that nothing but joy when building things with Flash Platform. It was a good knowledge. Even these todays I did somethings with ActionScript 3. My company developed educational solutions with Flash for 6 years and the transition to the HTML5 promesse was painful, expensive and complex. I did not realize why Adobe did not invest some effort to keep us using Flash and ActionScript 3 to build web applications transpiled to JS (without HTML5 canvas).

Is there another tool capable to compile to iOS and Android over Windows with no need of a Mac with XCode? I loved that in Flash.

"You either die a hero or you live long enough to see yourself become the villain". Harvey Dent, The Dark Knight.

Sorry for poor english. I am not native.

I had very similar feelings a few years ago. Flash defined what we now know as the web. Without it, it'd be completely different.


I still haven't forgiven Madobe for killing Macromedia Director - a thousand hours of my work lost. It taught me a valuable lesson about the importance of Open Source - protect your investment from the caprice of a single corp.

> caprice of a single corp.

There was no sudden-change: they kept on maintaining Director, years after its main use-cases (kiosk applications, magazine cover demo disc launchers and CD autoplay software) stopped being relevant.

If my experiences at other software companies are anything to go by: Adobe's staffers probably wanted to open-source it but were held back by licensed third-party components.

I haven't seen any true Director Shockwave content on the web since the original Shockwave.com - it was a handful of games that today could be built in JavaScript without any trouble.

> There was no sudden-change

Yep, it was death by neglect rather than violence. Shockwave was much more powerful than Flash for gamedev, it had true 3D baked in and fantastic audio and video support - in 2001. IIRC lack of a timely OSX version killed it.

Arguably it was the same neglect of the Flash plugin on Mac that partly caused Apple to deep-six iOS support, decimating Flash's marketshare.

Adobe knows how to milk cash cow products. They only just stopped selling Director in February 2017.

Director (when we all had a stint with INTERACTIVE CD-ROMs in the 90's) and FreeHand taught me that lesson. M'Adobe, tips hat - in both cases.

Open source projects are guaranteed to be maintained forever?

While of course open source projects can be abandoned, too, in my experience I've seen it much more likely that products, even good, profitable products, are often quickly abandoned if the company deems them no longer "strategic".

They're easier to fork.

Also you can pay someone entirely unrelated to fix things, if the need arises.

Try doing that with closed-source software.

and abandon.

And fork again.

> In my opinion without Flash the current web tech stack might look different.

Without Flash you couldn't do anything at zombocom[1]!

[1] http://zombo.com

// Now that HTML+JS has has the features necessary to implement the "flash intro page" experience, I have yet another reason to leave javascript disabled.

Even zombocom moved on.

[1] https://html5zombo.com/

What boggles me is that it's still hard to put together a UI by dragging/dropping some fields together.

If Visual Basic (and Delphi, and others) had this basically solved twenty years ago, why is it still something that's so hard to do for HTML?

It's so hard because Web layout with HTML/CSS/JS is the ultimate Turing Tarpit [0]. Any tool that tries to offer a simple interface to three interlocking programming languages is going to have to deal with all the crazy things the Javascript Framework of the Week will do to the page you're creating.

This is exactly the problem we're solving with Anvil (https://anvil.works). It's explicitly VB-like - one language, drag and drop design, and object oriented components. But it is only possible because we took the deliberate choice to do it all with one language (Python) with an appropriately simplified display model.

[0] https://en.m.wikipedia.org/wiki/Turing_tarpit

Our product, Elevate Web Builder, does exactly what you describe:


(Examples at the bottom)

Here's an (older) video that shows the IDE in use:


I wouldn't consider what we're doing as "hard". The main thing is that the developer has to be willing to do some odd things relative to traditional web development, such as:

- Don't use JS as the development language, and only use it as a target for a statically-typed, compiled language. It's basically impossible to do a decent IDE without the type information. Even simple things like getting method signatures of event types for selecting/creating event handlers is impossible without types.

- Don't use CSS and, instead, use per-element style modifications via code. CSS is too broad a brush for component-based development where you want to allow the developer to customize the look and feel of every visual control on a per-control basis. Also, it lacks the flexibility required for dealing with weird/odd control state transitions.

In general, one has to take a step back from the HTML/CSS/JS world and virtualize everything in code in order to allow for dual design-time/run-time usage (we're adding server-side right now). Unfortunately, this also has the side-effect of not being "normal" web development anymore, so we're definitely swimming against the tide. But, I think it's the way to create more reliable and dependable web applications in a must more productive manner.

Not just flash, I'm a die-hard fireworks user and was still using it up until a few years ago, much better than PS for quick web stuff (99% of what I was doing). Was a sad day for consumers when Adobe bough them out, before they had to compete with improvements and new features for market share. I still use Adobe Fireworks regularly over Photoshop.

I've got an ancient Windows 2003 server VM that I keep around just for Fireworks.

Not sure about PS, but even this circa 2001 version of Fireworks blows Gimp out of the water in terms of ease of use and basic image manipulations.

haha that's awesome, there must be dozens of us! Totally agreed to this day nothing is better UI/efficiency. Photoshop has extra steps built in for some reason that slow you down.

how does adobe fireworks compare to adobe illustrator?

Are you thinking of Macromedia FreeHand? FreeHand was a vector art editor to compete with Adobe Illustrator.

Macromedia Fireworks was a raster editor like Photoshop, but was heavily geared towards "web graphics" (think: Adobe ImageReady). It had neat features such as text templating, integation with Dreamweaver, and decent sub-pixel positioning. I used it from 2001 until 2005. I felt it was primarily for making websites using now-obsolete techniques like tables-for-layout, spacer.gif, and using heavily manually-optimized graphics and techniques to achieve effects that CSS was not yet capable of. I may be wrong, but I don't believe Fireworks changed much since the Adobe acquisition, ensuring its declining relevance in the post-CSS3 web world.

different use cases, illustrator is better for heavy vector based stuff like logo design but for quick/fast hack jobs fireworks is best.

Once nice thing about Flash (and believe me, I don't think there are many) is that it can go a long way towards cementing the concept of OOP to beginning programmers.

I was taking a high-school C++ class at the time, but the whole "everything is an object" concept just didn't stick. It was still in the abstract sense and not tangible.

You start to play with Flash and ActionScript, however, and suddenly each instance is a physical thing you can see and interact with. Each copy of the thing you make inherits those properties and that action script.

It was a very useful learning experience for me. I worked through a Pong tutorial and then tried to extend it as a personal project to be a four-corner pong. It became very clear the benefits of making a position-agnostic "Paddle" class when the left-right paddles' collision detection went haywire upon copy-pasting them to the top and bottom of the screen.

One thing I recently discovered that is very cool is Adobe's Alchemy (later called FlasCC and then CrossBridge) which is able to generate SWFs from C++. Not too much documentation can be found around it but it certainly intrigued me to realize you could bring your C++ applications to the browser (assuming Flash is installed/enabled)!

I used that for a project where the core business logic was shared with an iOS app (which was fairly simple but verbose C++ generated from CSV files provided by a researcher).

Alchemy wasn't very well documented initially but worked just fine once we got it working. It integrated with the Flash code nicely. Saved me a ton of time when updating the two platforms and testing the changes.

Alchemy didn't take off, in part, because Adobe tried to charge Flash developers royalties to use the Alchemy and Stage3D APIs.

I remember way back when, when I first started on the web, I got paid to make Flash sites. It was a cringey time, but the capability and animation smoothness, on Windows XP, 8 years ago, was still better than you can get on the web on a Macbook Pro today.

When Jobs murdered flash I transitioned to web waiting for it to come up to parity, but it never did.

We've had incremental improvements, but IMO they have been scraps, and the priority is out of wack. Why are we adding MIDI to a platform that still can't efficiently do layout?

I recently gave a talk about building a new browser without the DOM, instead using native UI primitives driven by javascript for our sites: https://www.youtube.com/watch?v=WEQx3wz8QeY

Wherever we land, I just hope to someday get the kind of performance on the web that I got 8 years ago with Flash.

I liked Flash and still think it is vastly superior to HTML5 when it comes to games or interactive experiments BUT Flash was a closed source, proprietary tech that was controlled by a single actor and not future proof. I understand now the dangers of such platforms and why the web should be free and open.

The ironic thing is that ActionScript is being reinvented once again in form of TypeScript and its siblings.

I loved Flash - back in a time when there was only a few DHTML tricks and JavaScript was not a proper programming language, also the lack of proper CSS.

The year I speak of is 2001 and my task as an intern was to create a CMS for the company that could power a "plain" website at the same time as dynamic content for the fancy Flash website. It was hell of a lot of fun coming up with a solution that made this possible. Even managed to make the company migrate from PHP3 to PHP4 for it.

But not so soon after (let's say 2005? 2006?) I wasn't missing Flash (or it's cousin, Shockwave) anymore. Good for games, but the more I did proper web development the more it showed that it was just interactive movies (surprise) and not so good to work with for plain (html) text.

> In someway ES6 tries the best by adding classes. But there is plenty of other missing features like: final classes, private, public, protected, internal accessors. Explicit inline (This is more compiler feature than language), strong typed (thankfully we have TypeScript), well designed Event System with nice propagation (It’s more like a library feature rather tan language), no confusion with undefined, no confusion with this, and static variables / functions. Well, public/private/protected are reserved keywords in the latest spec... so they're coming.

Personally I don't see these as features but deficiencies.

I liked the Flash creator tools; I haven't used a vector drawing + animation system quite like it since.

Adobe Animate CC (aka FlashCC) can compile directly to HTML5 canvas, and allow code injection. It has the same troubles with mp3 and mp4 as browsers do, and requires knowing some "tricks" (like how to double the canvas scaling for retina), but it's an adequate tool.

Flash was awesome for learning script and rendering. Plugins in the early days of the web '95-'05+ were needed to push the web. HTML5, WebGL, Canvas, SVG are all heavily inspired by Flash. Mobile and smaller hardware really put a pause on Flash's blaze of glory that was all the way up until '07/flex/air etc. Adobe did not move to cross-compilation fast enough nor did they improve hardware rendering early enough, Flash was largely run on CPU at the time and mobile performance was poor. Adobe also really took it hard that ES4 was shutdown and ActionScript was really the only use of that, I particularly liked it alot, ActionScript3 was a great language for interactive and web game development.

Flash also allowed creators to publish, many cartoon shows today still use Flash [1]. Many have moved to ToonBoom or others but many still use it.

Flash will always be an impressive moment in the web and interactives/games.

Macromedia was quite the company, Flash/Director both really died from Adobe's hands. I wonder if Microsoft would have bought Macromedia if it had gone different. Macromedia really created fast web video with Flash/ASF formats/RTMP streaming and saved us from Real Player, Quicktime, and Windows Media Player. Flash made possible Youtube.

Flash is still around as Adobe Animate and OSS as OpenFL[2], lime[3], Haxe [4] and more. Though it is more focused on compilation to target platforms natively from script and AOT compiling or WebGL/html5 output rather than to the AVM or runtime ActionScript.

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

[2] http://www.openfl.org/

[3] https://github.com/openfl/lime

[4] https://haxe.org/

I also started with ActionScript 2 and moved to ActionScript 3 soon after.

Then I did Java, C++, Python and all the others before going to JavaScript. I've been using mostly JavaScript for the past 5 years.

I actually don't miss any of the other languages, not even ActionScript 3.

I think that you don't really need classes, private methods, protected methods, abstract classes, inheritance, etc... For web-related stuff.

Games are a bit different because, in a game, unusual edge cases happen all the time (a game can be in a practically infinite number of states), so static type checking can help take care of a lot of issues. That said, with automated testing, you can also get similar stability without having types.

Speaking of flash & it being used to build entire websites, this we hear made it hard to index those sites. I remember when I was at university, the university network didn't work with android devices because it worked over a proxy and Google/Android weren't fond of a proxy server because it prevented them from tracking the user. Lots of tools have died solely because they prevent bigger companies to flourish. Not saying Adobe aren't big but you know Google and Apple are massive.

I did pretty well for myself building galleries and interactives in Flash and Actionscript; it was not just a good learning experience, but a more stress-free implementation compared to getting JavaScript to work cross-browser. I was still doing AS work into 2009. For me, it wasn't the inevitable obsolescence from iOS that caused me to quit, but an Edward Tufte seminar in which I saw that static visualization could be just as compelling as interactive ones, and a lot easier for end users to figure out.

The problem with flash wasn't that it didn't create great animations, it did. The problem was it was not web friendly, you can't build a seo site in flash, you cannot build a maintainable database driven project in flash. You cannot build security into flash. Its great for doing little animations but thats it.

Author: you have a typo in your header. "Programming and Developmetn Environment"

Thanks :)

I feel old reading this thread

Actual content creators have a much different perception of flash than IT administrators, chinstroking tech bloggers and the inventor of Javascript.

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