Wednesday, March 2, 2011

Steve Jobs: flash? No thanks.

Steve Jobs posted (2010) his reasons not to support flash on iPad and iPhone:

  1. Flash is closed, proprietary product and we (Apple) have own open WebKit standard for browsers that makes flash obsolete
  2. H.264 videos are widely available, so users won't miss any content. Flash games? We have our store full of games instead. No farmville, sorry :P
  3. Bad security record for flash technology. Poor performance.
  4. Without hardware video decodec, flash drains precious battery. <video> is hardware accelerated. This is very importand on mobile platforms.
  5. Mobile interfaces don't use mouse. They use Touch ©. So, ... no onmouseover or any other rollover effect - flash apps needs to be rewritten (so use HTML5 this time).
  6. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features.

Is he right?

Yes, because he has the money :> But also, sadly for flash developers, his is very, very right and insightful on flash technology. While having competing product (WebKit) is not an argument by itself, having open source competing product is. WebKit browsers made it possible to have animated demos in HTML5 on every possible device (Firefox/Chrome made it possible on non-mobile machines before).

Observe how mobile technology drawbacks (battery life, CPU performance) now drive the web industry. Drains battery == Bad idea. But my PC does not have a battery? -> PC is obsolete.

Third party development tools hinder innovation. Bold statement. But, sorry Adobe, this is so true. I made a few Flex apps (video players mainly) and noticed:

  • poor documentation, sometimes missleading - you really need to copy a widget from Adobe sources, you can't extend almost anything.
  • inconsistent, overcomplicated, legacy-based API
  • Simple things (including a image as background) made hard
  • Big Ball of XML. Impossible to enhance some of XML components with ActionScript code.

Bad developer experience, Flex is going in wrong direction. Flex 3 was pretty nice and much more powerful that javascript at the time it war released. But now HTML5-generation browsers are so fast that writting operating systems in javascript seems actually a good idea. Backed with full CSS3 support, the HTML reclaims what flash has taken.


HTML5 already won. Jump in and don't look back.

I've been informed that Apple decided to bring back the flash support for iOS. It's slow and quirky but it works and the doors are not closed. So, no, HTML5 still has a way to go before it prevails.