RIP Flash

On July 25, 2017, Adobe officially announced the eventual discontinuation of support for Flash. In the software world, this is referred to as an EoL or ‘End-of-Life.’

Specifically, we will stop updating and distributing the Flash Player at the end of 2020 and encourage content creators to migrate any existing Flash content to these new open formats.

It’s interesting to go back in time and look at web development and design paradigms. At first, with limited technologies available, websites were just static pieces of unstyled text. As the technology to make things flashier began to emerge, enthusiastic developers endeavored to inject as much shiny technology into every webpage as possible, resulting in such creations as this.

animated gif
Oh my…

It used to be considered a web design paradigm to create giant background images and resize them, so much so that people wrote articles specifically on the practice, while nowadays, nearly a decade later, this is generally considered poor practice. While 10 years may not seem like that much time, the internet itself has only been around since about 1990 – making 10 years about a third of its whole lifespan! A lot has changed since then.

One major change has been the gradual flattening and minimization of design paradigms. Many company logos have flattened to become cleaner. Some would argue that a lot of this is due to Apple’s design philosophies. Either way, minimalism is here to stay.

The ubiquity of minimalism is underscored by the desire for interactivity in modern design. Minimalism and interactivity may seem like two opposing concepts – after all, isn’t interactivity adding more, while minimalism is about having less? In reality, minimalism promotes interactivity by allowing the same input from the user to have a more drastic visual effect. A mouse click leading to a color change doesn’t translate into nearly as much visual impact when there’s other fluff on the screen as opposed to a blank canvas. What we see is an overall increase in responsiveness as the web continues to mature. In many ways, user experience is all about responsiveness. This is essentially the core topic of the bible of UX design, Steve Krug’s “Don’t Make Me Think.

Adobe aimed to address this desire for responsiveness through Flash. For a while, Flash was the only real option for graphical interactivity around. It frontloaded a lot of the computational power necessary for interactivity to the flash interpreter, allowing for faster site loading times. In more modern times, full-Flash websites are generally discouraged – but that didn’t stop them from becoming very popular. Just a few years ago, at least 80% of Chrome users would visit a site with flash each day. Now, the number is just 17%.

A big reason for this is probably Youtube’s switch from Flash to HTML5 video. One of the big things motivating Flash’s use for so long was its near-monopoly as a technology for video-playing. However, the past few years have seem tremendous leaps in web spec, including native HTML5 video support, the release of ES6 and the introduction of WebAssembly. This combination of factors led Adobe to decide that Flash was no longer needed.

What does this mean?

Well, from the front-end, not that much. The typical user probably alternates between a few social media sites, work sites, and a handful of news outlets. Pretty much all of these big companies converted to HTML5 video a long time ago.

Really, the most interesting effect of this change is the removal of legacy support. Adobe is working closely with major web companies like Google to ensure as much Flash content is migrated as possible, but the lack of proper support means that some decade-old websites are probably going to be unviewable in a few years.

This is particularly interesting because the web has a fetish for legacy support, so much so that people constantly write articles about it. Whether it’s making websites work with old browsers or making browsers work with old websites, dealing with multiple conflicting standards has been a cornerstone of web development since time immemorial. A web developer aims to deliver the best possible experience to every user, regardless of platform.

This brings up two conflicting viewpoints on the Flash subject. Opponents of the change will argue that important archival websites will be rendered unviewable for future generations, an issue never before faced in the short history of the web. Supporters of the change will cite the increased security and stricter guidelines of modern technologies as promoting a cleaner, more streamlined web.

There isn’t really a right answer here. Personally, I’m all in favor of this change. Anyone who’s tried to write industrial code to support IE8 has experienced the nightmare of writing legacy code. In my opinion, Microsoft should have discarded IE long ago and forced old customers to update. (They finally did so last year.) Unfortunately, technical illiteracy makes such updates difficult, since the everyday layman will adopt the philosophy of “if it ain’t broke, don’t fix it.”

I think that we should just make technical literacy a more prominent part of education. Perhaps this is a bit of a selfish answer, since I’m just trying to save myself development hassle, but in the long run streamlining development tightens security. The more complex a project gets, the more likely it is that holes will appear. We really don’t need to open up more outlets for attacks than we need to.

Modern specs have already shown to be more secure than Flash, and this difference will only be amplified if we try to duct tape legacy support onto Flash in the future. We’ve already seen some pretty horrible things happen due to lazy updating and legacy software. The WannaCry attack costed hundreds of millions of dollars in damages due to poorly maintained software. Perhaps the most infamous example is the Java 6 bug, which directly contributed to the decline of Java, formerly one of the most universal languages. Now, it doesn’t even have official Chrome support due to its history of security issues.

Closing Thoughts

By 2020, we will have witnessed a landmark step in the development of the web. This is the first time1 such a major technology has been phased out from the entire web, across all browsers. While the overall security of users will likely overall increase, entire businesses and sites that run on Flash are going to be in for a tough time. Kongregate is built nearly entirely on Flash games. They will likely need to find a wrapper to play legacy .swf files, which may open up vulnerabilities.

Whatever happens, this will likely be a learning point for the future. As the web specs continue to evolve at a breakneck pace, even more technologies will get phased out. In particular, there are certain conflicts (e.g. function hoisting) in the ES6 and ES5 specs that may render entire websites unviewable.

Goodbye Flash. You will be dearly missed, and will forever exist as childhood Kongregate games in my heart.

1 Edit 06/28/17: Someone correctly pointed out to me that other technologies, such as the blink tag and applets, have been deprecated. My statement is thus not strictly true. However, Flash will still be one of the most widespread, if not the most widespread, technology to be deprecated – the blink tag was more of a novelty, and applets fell apart browser-first. (Chrome removed support long before Sun gave it up.)