Tag Archives: Flash

That Bright Light You Saw was the End of Flash

It’s finally official – at least for those who are aware of how the web works. Yesterday Adobe (ADBE) announced that they will be discontinuing flash support for mobile devices.

HTML5 © by Josef Dunne

A couple of brief quotes from their blog post follow:

“However, HTML5 is now universally supported on major mobile devices, in some cases exclusively. This makes HTML5 the best solution for creating and deploying content in the browser across mobile platforms. …”

“Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores. We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations…”

To be sure they did plenty of backpedaling about renewed focus and new features for the desktop, but make no mistake, they see the light at the end of the tunnel, and they finally figured out it’s a train. Hello HTML5 Express!

As I’ve said before this is a fine thing. The truth is that many years ago Adobe was the only way to do animation, video, and interactivity at all. And after that, it was just the best way. And after that, the most common way.

Today the need for Flash has greatly diminished. HTML5 has already delivered on the promise in the area of video, and AJAX works very well for interactive web applications.

Three things really killed them. I’ll take them in reverse order, since the third was just a symptom, but most think it was the cause. Namely, Steve Jobs. At Apple (AAPL), Jobs figured out that Flash not only doesn’t work well for mobile, but it probably wasn’t every going to, at least not before HTML5 would catch on. But Jobs didn’t kill Flash, he was just more vocal about it’s shortcomings.

Number one was that the need for Flash simply isn’t there the way it once was. Web pages used to be really static. In the beginning there were almost completely text. Then people started adding more images. Then came databases and data-driven apps. Then video, sound, and fully interactive applications.

But before the last, there was a gap, people wanted video and apps, but it just wasn’t easy. Most applications consisted of some special code that had to be downloaded on your machine, and were essentially client-server programs that used the web simply as a transport mechanism. Flash is pretty much the same as the others, with the exception that it was pretty easy to use, and it managed to catch on. With critical mass, it started to be supported by most browsers, and off it went.

Today we can get streaming video quite easily without Flash. Any web site that doesn’t provide video feeds in HTML5 simply cuts off millions of potential users, which is generally a poor business decision.

As for apps, the simple web applications that are in Flash will continue to live on, but the great desire for them has changed. Now users can download free and inexpensive games all day long on their mobile devices, which is where they normally play the little time wasters. (I’m not judging, I do it myself.) So why do you need Flash?

That leaves us with advertisers – and they have a problem there. People without Flash simply don’t get their message. From the producer side it’s a problem anyway, as a consumer, I’m happy to turn Flash of in my browser, and only click when I know it’s something I need. AJAX is where advertising will end up, and actually it’s very well suited to the task, seeing as the first A in AJAX stands for asynchronous, which is perfect for advertising.

So reason number one is that the need for Flash has melted away. I was tempted to say evaporated, but it wasn’t that quick. It’s been a slow steady change in how the web works, from proprietary thick browser plug-ins to open dynamic lightweight AJAX. And that’s a good thing, both for consumers and for the people who run the pipes that the internet is carried over.

I’ve always said that the value Adobe brings to the table isn’t so much Flash itself as the amazing tools they provide for web development. The designer shouldn’t have to care so much about whether the application is Flash or HTML5, they should be able to just code. Adobe should be able to quickly get in front of this by providing everything Flash does in HTML5. And to do that, they had to finally admit that HTML5 is killing Flash. Mobile is just the first step.

As for reason number 2 (for those who’ve been keeping track… 3,1,2) it explains why mobile is the first step. And that reason is that Flash is ill-suited for mobile for various reasons. One is performance. It’s easy to see that Flash is a hog no matter what the platform.

Try a simple test – fully charge the battery on your laptop. Fully disable Flash and spend a couple hours surfing the web. Then charge the battery again, turn Flash back on, and repeat. You’ll be shocked at the results. Bear in mind, I’m not talking about playing Flash games and video even, just surf the web. Not only do you avoid advertising, but you’re battery lasts longer and everything runs faster. Who would have that that dumping Flash was a way of going green? But it is. Now imaging trying the same thing on a device with a tiny battery, slower processor and a lot less memory. Painful.

The other part of the equation is the usage paradigm. Early in the iPhone era people started writing articles about how to program an iPhone. Many articles described handling the touch interface exactly the way you would a mouse. This is of course ridiculous, especially now with multi-touch and gesture.

Even without that, a finger simply doesn’t behave the way a mouse does. For instance, you can pick a finger up and put it down somewhere and the cursor moves with it. If you pick up a mouse and set it down the cursor is either where you started or in some random place – not the most useful feature.

The touch interface is just one aspect of mobile programming that makes Flash painful on a mobile device. Silly things like x controls that let you close a Flash animation are frequently too small to be used. Add that all up and you find that the basic concept of Flash is flawed, namely to be a “write-once run-anywhere” works fine on the desktop, but doesn’t translate well to the mobile touch-enabled world. Which leads us back to Steve Jobs, 1-2-3.

And a funny footnote. RIM (RIMM) has announced that unlike Adobe, they will continue to support Flash development for the Blackberry Playbook. They just don’t know when to give up, do they? It’s not surprising coming from the people who thought that no one would want mp3 files on their phones. As ZDnet
put it:

But to continue to support an already dead platform on a dying tablet is like throwing salt in the wound of an already squashed slug.

So when HTML5 gets better and your mobile device gets stronger, you can thank Adobe for finally recognizing the inevitable – Flash is dead.

[Update]
Google has a tool that you can use to convert Flash to HTML5.
[/Update]

A Flash in the Page

For those of you who haven’t been following it (IE people without a smartphone), there has been a little tiff between Apple (AAPL) and Adobe (ADBE) for the last couple of years regarding Flash. I’ll discuss it more in detail shortly, but in brief, Apple decided not to include or even allow Flash to run on it’s IOS devices such as iPad and iPhone, based on their assertion of problems with CPU usage, battery life, security, and general UI issues re Flash on a touch interface. Adobe in turn says the Apple isn’t nice, doesn’t believe in open standards, and is preventing their customers from experiencing what they call the “full web”. Apple responded that Flash isn’t open… lather-rinse-repeat.

HTML5 Logo with words "no flash inside" stamped across it
Image by Josef Dunne via Flickr

The reason I bring it up now, is that Microsoft (MSFT) decided last week that it’s also not going to allow plugins such as Flash in it’s upcoming Metro 8 user interface, opting instead for HTML5 support. This is of course not good new for Adobe.

To understand the whole thing, we need to step back to early times on the web. It used to be that pages were just text and simple pictures. JavaScript was clunky as simplistic, and building full-featured applications and games seemed impossible. Web-browsers were evolving at a rapid pace, frequently without regard to standards or compatibility. Flash came along with nifty little animations and a unified user interface that worked the same regardless of the end-users browser thanks to the Flash runtime. Not coincidentally, the same runtime that allows extra functionality is the runtime that has a reputation for chewing up CPU and battery life.

Now in 2011 Flash is both ubiquitous and superfluous. It hasn’t yet become completely unnecessary, but the handwriting is certainly on the wall with things like HTML5, Ajax, etc. paving the way to the future web. For sake of simplicity, you can consider Flash usage in a few main areas: Video, Games, Ads, and non-structural animation (the ever-present loading animations). More on that later.

So when Steve Jobs wrote his open letter about flash he listed a series of issues he claimed were the reason. Adobe responded with some quasi-answers of their own. Steve Jobs said in his open letter “But the mobile era is about low power devices, touch interfaces and open web standards – all areas where Flash falls short.
The breakdown of issues follows.

Openness

Adobe has a vested interest in maintaining their dominant position in web development tools. They could try to do with by making their tools support HTML5, which seems to be a direction they are now moving in, at least partially. But it’s a much rosier picture for them if they have a monopoly over their view of cross-platform, cross-browser compatibility. That way they, instead of Apple or Google or Microsoft, can get a bite of they pie for all internet games, applications, video, and advertising. Make no mistake about it, Adobe has no interest in open-standards – Flash is completely proprietary.

Apple is a proponent of “web standards” IE HTML5. On the other hand, while being open on the browser, they are completely closed in their application development. Apps for their smartphones are created using a funny language, and access to customers is only through their store, subject to their whims. However, while that all may be true, it doesn’t affect the core “full web” argument that Adobe is making. Apple apps are NOT the same as web browser support.

Apple’s App Store

There are those who think that Apple is only wanting to block Flash because it is costing them money in the app store. This is overly simplistic at best. There are thousands of free games in the app store, if this was simply about app revenue, Apple would block them also. This theory also ignores the real issues of CPU, battery life, and touch UI. Steve Jobs said early on that if Adobe could demonstrate Flash running with good performance on a mobile device they’d be happy to talk.

A variant is that if people can watch free video on flash, they won’t buy video on iTunes. Again, if this was true, then Apple wouldn’t support H.264 video either. So you can ignore such conspiracy theories as being the real issue.

Security

Like everyone else, Adobe has had their own challenges with security, and Flash is certainly on exception. Essentially having a very capable runtime is a double-edged sword. While it has lots of capabilities, it also radically increases the attack surface. This is one of those areas where things will get better and then worse, and then better again. But there is no denying that a browser with a large plugin will always have more vulnerability than one without.

CPU / battery / Performance

Flash performance problems are well documented – if you doubt it just try a web search. Better yet, uninstall Flash or install a Flash control in your browser, especially on a laptop, and see what happens. It’s amazing how much extra battery life you get. In my case, I don’t even watch flash video or play flash games, so essentially it was pointless animations and unwanted ads using my CPU and reducing my battery. I always have a control plugin now so that I only run Flash that I want.

From WWDC 2009 Keynote:
Number one cause of crashes in OS X is browser plug ins (read: Flash)“. This is based on crash logs that Apple receives, at least pre-SnowLeopard. Something to think about.

Why can’t they improve performance? Programmers are getting sloppy with faster CPU’s and more memory available. Programs have grown in capability, and the average size of programs is radically bigger than what it used to be. Battery powered devices may reverse that trend. There is still a lot of room for improvement in battery life, but the reality is that we currently have a situation where people are now setting battery life at a higher premium than typical geek-specs such as CPU clock speed. (As an aside, this is probably a good thing, as raw hardware specs say essentially nothing at all about actual performance. But I’ll leave the topic for another day.)

Touch UI

If we set all other issues aside for a moment, and just look at the UI issues, we’ll find something interesting. It turns out that a mouse is not the same as your fingers. This sounds silly, but it’s critical. Beyond the obvious issue of having one mouse and lots of fingers, there is behavior. From a software perspective, a mouse makes constant movement, IE even if a user picks up a mouse and sets is back down on their desk, the cursor hasn’t moved.

A finger on the other hand is prone to such behavior -making the cursor appear and disappear depending on where you point. One might even say this is desirable behavior. Simply taking a mouse interface and putting it on a touch device is a recipe for frustration. The more interesting (complex) the application, the worse the problem is. This is not easily solved, especially not with a one-size-fits-all methodology, such as Flash.

Is Flash The Full Web

OK, this one is downright silly. Adobe is pushing a phrase they call “The Full Web” – implying that if you don’t have Flash, you’re missing out. I’ve addressed above what this really means, but essentially it depends on your device and on what you happen to use the web for. Not having Flash runs the gamut from “critical problem” to “merely annoying” to “never noticed”.

Not having Flash hasn’t hurt the iPad, nor has using Flash as a differentiator helped other tablet devices.

Old Technology

Apple has a history of getting rid of old technology before others. Somehow they have managed to figure out what items are headed to the technology graveyard. First they killed off floppy drives, , then they started removing CD/DVD drives from the MacBook Air line, and now Flash. If they’re wrong, they can always reverse their choice, but increasingly it looks like they’re right about the long term in this case, again.

Politics

I’ve added this one on my own, but it’s actually one of the core issues. Essentially Adobe claims that it is acting sole in the best interest of people who use the web, while Apple they claim is acting solely in their own self-interest. The truth is of course somewhere in-between. While Adobe has a point that users without flash are missing out on some content, Apple has several technical points that remain outstanding. Clearly part of this is in Apple’s financial interest, and that cannot be discounted, but many of the purely political arguments are simplistic and ridiculous as discussed above. What content you’re actually missing depends on the sites you visit. Increasingly websites have video available outside of flash, and that will continue to grow. Those who like the games available on the web may have an issue, but it depends on the app ecosystem. If you’re favorite game is an app, this isn’t an issue, if it is, this is a deal-breaker for you. For me, the biggest thing I see being blocked on sites I visit is pointless animations (loading…) and unwanted ads. Good riddance from my point of view.

Conclusions about Flash

So what can we learn from all of this as a software development community? Firstly, be careful of putting your eggs in one basket. Especially if that basked is based on a proprietary standard. Big companies will always have disagreements, in the end it matters less who is right or wrong, or even who you agree with, and more about whether you’re lined up to continue to deliver the software you create to your target audience.

Beware technology based on proprietary “standards”. I’m not talking about proprietary software vs open-source, but rather protocols et al that we all rely on. If they’re in the hands of a single company eventually they will be a problem. Use them when you must, but be aware that one day you’ll likely need to migrate.

Stay ahead of performance issues. As hardware gets faster, cheaper, smaller, with more memory, it’s easy to forget about performance issues and simply take advantage of platform improvements. It’s better to take a more proactive approach – spend every 2nd or 3rd release on performance and quality and you’ll find yourself in a much better position, rather than being way late and too big/slow to compete.

[Update 2011-09-22]
Adobe just announced Flash Player 11 and AIR 3. Adobe claims improved performance – we’ll see soon.
[/Update]

[Update 2016-03-12 – Flash is dying quickly these days, and no one cares to defend it anymore. ]