No Finger Waving Please. No I Told You So.

12 November, 2011 10:17PM ยท 4 minute read

First there was the iPhone and Apple said that its mobile browser would not support Adobe Flash. There was an uproar, an outcry, a sense of disbelief that Apple could possibly turn its back on something so fundamental to the web experience at the time. After all, Flash had been around for a while before Adobe bought it and was popular amongst developers as it was a relatively high-level language with readily available tools and an ever growing developer base. Adobe had developed flash plug-ins for pretty much every browser conceivable and several highly notable video on demand providers used it as a wrapper around their video content for DRM purposes. The fact was that Flash was very popular and the vast majority of sites on the web used it in one way or another.

Apple came under increasing pressure from Google Android, RIM BlackBerry and a campaign from Adobe pushed Apple (after a few years) to finally state their case for not using Flash. Steve Jobs wrote an open letter he called “Thoughts On Flash” that stated Apples rationale behind not incorporating Flash support on Apples iOS devices. There were still some critics but the reasons for Apples exclusion were finally officially admitted - Apple could put a H.264 chip in their products to reduce the overhead on their mobile CPUs and process video at significantly lower power and they could do this because they knew that H.264 was an open standard and could not be changed on a whim. Investment in Flash in the same way was a major risk and hence the Flash plug in would need to remain a software solution forcing the CPU to take the burden of running the intensive Flash software, sucking battery life and reducing the performance on their devices.

Apple weren’t stupid - they knew how Flash worked and they knew that customised chips (ASICs as they are called in the industry) that run Flash were difficult to power optimise and were few and far between - all subject to change without notice. They knew that Flash sucked significant CPU time on the Desktop/Laptop and that no matter what Adobe did the architecture was simply not designed to be low-power. When you architect products generally (though not in every case) the higher the level of the language (and the easier for developers to write code in) the more of the heavy lifting the operating system MUST do to perform the required task. The most efficient code is machine assembly code - it runs very fast but at a cost - the programmer must understand every interrupt, precise time delays and so on to ensure the code will work and it’s not written in plain english. MOV AX,BX isn’t exactly obvious as to what that means.

I’m digressing. The point is that Flash was never going to scale down to low-powered devices and time and again Adobe released mobile flash versions for different platforms and each time there were limitations compared to the desktop version - some features were incredibly slow or just didn’t work. Apple understood this would be a problem and well before 2007 they decided not to accommodate Flash in their iOS devices. Around that time they also took a step in their Desktop safari web browser to compartmentalise the flash browser plug in such that if/when it crashed, it wouldn’t take the browser and operating system with it. They were distancing themselves from Flash on both platforms.

Fast forward to this week. Adobe announced that it was ceasing development on Mobile Flash in a statement on their website. The language wasn’t the most elegant, but finally Adobe have seen the same writing on the wall that Apple saw over 5 years earlier. Flash is a great, easy to program, high-level development language. Unfortunately it will always be a CPU-intensive product that is single-threaded (i.e. it can not use multiple CPU cores as efficiently like HTML5 - refer Web Workers) and will have limited performance on lower powered devices. With the latest moves on the desktop towards multiple CPU cores at slower speeds, Flash will continue to become more sluggish as it can’t use those extra cores effectively. Within a few years Adobe will silently stop working on Flash altogether - desktop and mobile. They will focus on refining their developer tools for HTML5 and make them best in the industry - as perhaps they should have in the first place.

I don’t want any finger waving. Please, no I told you so’s from the Apple fan elite either. This saga to me has been more about corporate pride on Adobes part - having acquired a product that was popular but inevitably had more limited life than they wanted to admit. It’s natural that products and platforms are born, shine for a time and then blink or fade out of the mainstream. That’s normal and that’s healthy. Flash had its time in the sun, and has added to the body of knowledge that is web technology. It’s time to move on.

So long, and thanks for all the Flash.