This post has been a long time in the making…
I’ve been building interactive web experiences for the past 10 years. During most of that time, I would have labelled myself as a “Flash Developer.” After all, my deployment platform of choice was the Flash runtime. Let’s face it, no other platform provided such a great mix of the freedom to be creative (HTML tables anyone?), decent performance, and consistency across browsers and operating systems. Combine that with the fact that ninety-plus percent of people using the internet could see Flash content already made it the logical choice for deploying highly interactive and engaging experiences.
Of course, this started back in the day when Flash belonged to a little company called Macromedia, who’s focus was on building runtimes to deliver rich media (Director and Authorware ring any bells?). Through a mix of perfect conditions and engineering ingenuity (what always amazed me was the number of features that could be supported in a 300kB player), Flash player was downloaded to just about every computer that had access to the internet. No other web browser “plug-in” came close.
And as a result, we could interact with the web in a different way. We could customize products and see the results, we could watch video consistently, we could play multiplayer games in the browser and all the while we didn’t need to wait for the dreaded page refresh every time you clicked something. It was a pretty seamless experience. Over time, we started to get tools and frameworks that made development easier.
At the same time, we could also build long intro movies (sans skip button), design very non-standard, unusable interfaces and package it all into a 5 mB download.
We say familiarity breeds contempt, and as Flash player become more widespread, it also gained it’s share of denigrators. It was a closed runtime, it couldn’t be searched, performance wasn’t great, there were security issues. And let’s not forget how a rant by self-proclaimed usability expert, Jakob Neilsen, brought all of this to the forefront. As great as it was for the web, people wanted it to fail, even though it could do 5 years ago, what HTML5 is only now starting to do.
If we really think about it, Flash player paved the way for modern browsers and HTML5. It gave reason to support all of this interactive functionality natively through the browser and HTML. People want and expect that type of content today. And it was just a matter of time before it was supported in a standards based way. And I think that’s great for everyone. It’s a win/win.
In April 2010, when Steve Jobs wrote his now famous Thoughts on Flash, there was a lot of heated discussion as to the future of Flash. Regardless of how misinformed his thoughts may or may not have been, they brought forth something that hadn’t been seen since Flash took the web by storm in the late 90′s: a platform where Flash player just wasn’t an option. Flash’s big ticket to success was that it would run on any OS, in any browser, but that was brought to a screeching halt. All of the speculation around whether future versions of iOS would support Flash were answered with a resounding NO.
Fast forward to today. HTML5 implementation in modern browsers has come a long way and continues to move forward more quickly than it ever has. There continue to be incompatibilities, and not all browsers support all features. However, there is a lot you can do NOW. Not only can you use Canvas to draw anything you need, you can add in 3D transformations, create animations using spritesheets, even tie into the GPU. And Adobe is one of the main proponents, as evidenced by their proposal for CSS shaders (let me just say, WOW). So it does appear that HTML5 is ready to displace Flash player in a lot of ways.
I think the problem is that most proponents of Flash player feel threatened by this fact. I won’t deny that wasn’t my initial response, particularly after Steve’s letter. After all, this is my livelihood. As a Flash developer, I need the Flash player to remain relevant. That’s when it hit me…if I tie my own relevance as a developer to a specific technology, I’m bound by when that technology may or may not be relevant anymore.
Does this mean I’m leaving Flash development and not looking back? Obviously that’s not the case. As much as Flash is being displaced by HTML, there are still vital areas where HTML can’t touch it (I’ve heard online games are pretty popular), and as well it shouldn’t. There are areas where Flash just works better than HTML. Adobe gets this too, as evidenced at MAX this year when there was a big emphasis on Flash for games and enterprise apps. And contrary to some, I don’t think this specialization that’s happening means the death of Flash by any stretch.
As well, Adobe continues to leverage the Flash toolset by supporting compilation for iOS, Android and other mobile platforms. And these will continue to grow and improve (see Native Extensions). So the Flash platform and ActionScript as a language certainly aren’t going away.
I just hope we move beyond this whole argument of whether Flash is dead or dying, and keep working on bringing the best experiences to end users, regardless of what platform that may involve. I think this is a great time to be a developer. We are helping to shape how people interact with the digital world. Maybe if we focus on that instead of telling people what the next dead technology is, we’ll be successful.