Adobe's announcement last month that it will discontinue support for the Flash Player on mobile devices and instead focus its efforts on tools and workflows that empower developers to build native cross-platform applications is definitely a step in the right direction. Unfortunately, it may be a case of too little, too late.
Years before Ajax became a buzzword, Flash developers were building rich internet applications with state-maintaining clients. However, as I mentioned earlier, the key word here is desktop. The major difference in creating a cross-platform runtime in our smartphone present as opposed to our desktop past is that instead of having at most three major platforms (Windows, OS X, and Linux) and a handful of browsers (IE, Firefox, Chrome, Safari, and maybe Opera) to support, there are a plethora of platforms (Android, Windows Phone 7, iOS, Symbian, MeeGo, Blackberry OS) and hundreds, if not thousands, of different devices.
The only way to support such a diverse set of devices, operating systems, form factors, and feature-sets is to go for a lowest-common-denominator approach. And even then, the majority of your engineering effort is being spent on making sure your limited set of features works consistently across a rapidly evolving ecosystem with 18-month production cycles. In other words, you're spread thin and trying to hit a moving target while your more-focused competitors are separately outpacing you with user experience innovations and new features on different platforms.
A lack of focus
It was clear that Adobe's old strategy for mobile dominance, which relied on porting the Flash Player and AIR runtime to as many devices as possible, was not going to work. You might even have said – like I did in 2009 – that it was fundamentally flawed. Ironically, that's the year Adobe stumbled onto the correct mobile strategy, thanks to its pissing contest with Apple on getting Flash on the iPhone. Unable to get Apple to accept the Flash Player on iPhone, Adobe retorted by allowing Flash applications to be compiled into native binaries and distributed through the App Store. Unfortunately, Adobe was blind to the fact that this was the strategy it should have been following all along.
Adobe should have focused on the one or two dominant platforms and devices of the day and allowed Flash developers to reuse their investment in the Flash tools and workflow to create native applications for these platforms. After all, Adobe is a tools company and lost track of this because of rose-tinted daydreams of mobile domination through the Flash platform. I told Adobe as much in two blog posts in 2009 and was labelled persona-non-grata by one of their evangelists for my efforts. (This is one of the problems Adobe has – a 'with us or against us' attitude combined with an insular boys' club culture that results in valid criticisms of current policies being branded as heresy. Needless to say, this is not a long-term recipe for success.)
App to the future
So, finally, at least two years too late (perhaps four years, with a more visionary approach), Adobe is doing the right thing by changing its mobile strategy for the first time since the Macromedia years. This is a welcome change. It's a new lease of life for Flash designers and developers who've invested time in learning the tools and technologies of the platform. It also spells the beginning of the end of Flash on the web. In this day and age, it is expected that a web experience works across all devices: desktop, notebook, mobile. By ceasing development of Flash Player for the mobile web, Adobe has signalled that Flash is no longer a valid technology for creating web applications that run on all devices. Since there really isn't a separate mobile web, Adobe's announcement will result in developers not using Flash for the web at all.
This is not to say Flash will disappear – technologies don't just die. Heck, you can probably still get a really highly-paid job doing COBOL programming and maintenance on legacy systems if you can manage waking up every night in the throes of the silent screams of your night terrors! But let's just say that Flash on the web isn't going anywhere. We can safely go even further and say: if you're starting a new web project, do not use Flash for it.
However, even though the Flash virtual machine (the Flash Player) has had its day, the Flash tools and technologies (Flash Builder, ActionScript) will live on and evolve as tools for creating cross-platform native applications. Maybe one day Adobe will realise it can go one step further and create specialised tools for simplifying the creation of certain types of native applications, such as games.
Do you agree with Aral Balkan about Flash's future? Or do you think it has a chance as a desktop-only technology for rich-media experiences? Let us know in the comments!