23 November 2011

Adobe: Flex and HTML5. Who Lives, Who Dies, and Why

Nothing beats a fully-fledged RIA for data visualization.  Nothing.  When I have to bridge the distance between a complex business problem and a human's intuition, I depend on the power and extensibility of a powerful RIA tool, like Adobe's Flex.  So it was was with great sorrow that I read Adobe's recent announcement conceding the race to HTML5.

But then again, I wasn't that surprised.  I don't think anyone was.  I have looked at HTML5 for data visualization in the past, but knew that it would be at least 5 years out before it became a viable competitor to flex.  I had read through the HTML5 spec and looked at a sea of javascript graphing libraries, but hadn't felt that it was time yet to make the change.  We all knew the time would eventually come though.

What surprised me at first was that Adobe conceded the race so soon.  Of course Flex will continue for many year and yes, Flex is being given to Apache, and sure, Flex was already open source.  (Of course, we all went to Adobe for the SDK, so it wasn't truly open source.)  Its also true that HTML5 is not ready to pick up where Flex left off.  I think we're looking at a couple years until that gap is closed.

In a sense, Adobe was just like the rest of us.  Adobe had to decide when to move from flash to html5.  So maybe we owe them a thanks for reaching out and ripping the bandaid off quickly, rather than doing it slowly.

The PR side of the announcement was the only real surprise in all this.  Had Adobe announced the open-sourcing of the Flex SDK at MAX this year, I believe everyone would have been excited.  And honestly, I don't think this is really a surprise when you think about it.

How soon will HTML5 be ready to take Flex's place?  I spent some time last night looking around at various data visualization libraries, and it feels like the early Flex days, the only difference being that there isn't a company behind it, there's a disjointed world.

In the HTML5 evolution, we're waiting for resolutions to the same problems that have confronted  every new technology since I launched my first web application back in 1996 (PERL CGI with a cutting edge HTML 1.0 interface).  The problems are  Stable Object Oriented design, Real time event listening, persisting client state, and perhaps the biggest shortcoming of all for corporate consumers - lack of consistent support across browsers (I think most corporations are still stuck on IE 8, which along with IE9 is an HTML5 killer.)

Reading Adobe's announcement, the words I saw appended to their commitment to the flash platform were words like "yet" "for now", etc.  This is not a time to dig trenches and die on Flash Hill.  Adobe certainly isn't.  The world is changing, Adobe is putting their efforts into hastening the HTML5 standard, and so should we.

I have lots of Flex visualization apps that will be around for years until HTML5 is ready.  And I'm an Adobe fan because I think they'll handle the transition for their customer base much more satisfactorily than they did their PR.  

Technologies come and go - even great ones - and we have to wake up to the new world that lies ahead.  I hope I turn out to be wrong.  There's no better tool for advanced data visualization than Flex and I'd love to see it continue as a powerful ally to HTML5 for sophisticated visualizations.  But its back to basics: brush up on Javascript, CSS, and some new HTML tags.  And if I think Adobe's move is a harbinger of disruptive days ahead of other technologies including silverlight, javafx, etc.

I think the best book on this topic is not a technical book at all.  It is called "Deep Survival: Who Lives, Who Dies, And Why".   The book studies the neuro-psychology of people caught in survival situations, and explains the neuroscience behind the survivors and the casualties.  The bottom line is that survivors are the ones who most quickly realize they are in a new situation with new dangers, and realize that if they cling to the things that were successful just an hour ago, they will die in the next.

Pick it up and read it while you're whiling away the intermission between the Flex's Golden Years  and the Dawning of the HTML5 Empire in the grand evolution of data visualization.  (My only criticism of the book is the number of f-bombs in it.  Seriously, if you write a book and struggle with a limited vocabulary, use a thesaurus.)


I'm not giving up the faded, old "Flex 1" branded jacket I'm wearing today though.  It's been a proven companion since, well, Flex 1.0.

6 comments:

  1. Excellent summary Mike. I think when the dust settles we'll look back on this and realize that Adobe was playing chess, while their competitors are playing checkers.

    I am sad, though. I wonder how many years it will be before html5 catches up to flex...

    ReplyDelete
  2. The good news is that we have a couple of years left with Flex as-is (and longer, depending on Apache). I have several projects underway with Flex and we'll finish them, and keep them going for 3-4 years atleast.
    As time permits, we'll start looking at html5.

    ReplyDelete
  3. I wondered if Adobe would try to outpace html5, or embrace it. Now I know.

    Like you said, they're not the kind of company to die on a hill.

    ReplyDelete
  4. Mostly, it's just really hard to get past the 'betrayed' feeling. But it's a good point that Adobe had to make the same decision we've all been mulling over the last year or two - when does html5 become viable?

    ReplyDelete
  5. Mike, are you going to be presenting on html5 data visualizations at a conference soon? Would love to see what you come up with.

    ReplyDelete
  6. You know what I would have done if I were Adobe - I would have kept Flex alive, but just made it available to "deploy" in HTML5. Imagine if you could have kept your code base - all in Flex, but deploy to Mobile, Flash, HTML5. The power they would have had. They really messed this up big time, and now GWT and HTML5 will take over. My opinion. What a waste when you consider all the code written in Flex, now has to be converted by hand.

    ReplyDelete