It has been another interesting week for HTML5 and front-end technologies. We have seen Adobe abandon work on mobile versions of the Flash plugin, news of Silverlight 5 being the last version of the Microsoft plugin and more recently an announcement that Adobe will no longer develop Flex, its enterprise / line-of-business framework for Flash. This blog post looks at how HTML5 seems to be winning the war on plugins ...
Image used under creative commons licence from bugmonkey
Earlier this year I collaborated with my colleagues, Graham Odds, a Flex guru, and Chris Price, a HTML5 guru, to write a White Paper comparing Flex, Silverlight and HTML5, which described how front-end technology choice should be based primarily on application complexity, with the two plugin technologies, Flex and Silverlight, being more suited to development at the more complex end of the spectrum.
Despite myself and Graham being strong supporters for Silverlight and Flex respectively, we all agreed that in the future, as HTML5 adoption increased, the tooling would evolve, making HTML5 a good solution for enterprise and Line of Business (LOB) development. However, we all agreed at the time of writing, that the superior development experience offered by Flex and Silverlight made them better choices for complex applications.
Just six months on, my opinion has not changed.
However, it looks like HTML5 is winning the battle for front-end technology domination sooner than I would have expected, and for reasons of politics rather than merit.
Silverlight first appeared four years ago, and has been struggling to gain the almost universal adoption of its direct rival, Flash. The cracks started to show in November last year when Bob Muglia blurted out that "when it comes to Silverlight ... our strategy has shifted". The cracks widened when the Windows 8 blog announced that the new Metro style IE would provide a "plugin-free browsing experience". The latest rumour is that Silverlight 5 will be the final version of the plugin, which, if true, would be a great shame. The technology is mature and adoption is now greater than 75%, this is the point where Silverlight really should be taking off in a big way.
Flash and Flex have been struggling to make an impact in the smartphone and tablet market, in part due to a highly publicized open letter by Steve Jobs titled "My Thoughts on Flash", which was an all-out attack on the plugin technology. Despite the damage done by this open letter, Flash was released for Android, and with the Android market share sky-rocketing, the obstacles that Apple put in the way seemed a little less important. Despite this, Adobe announced last week that they would cease working on the mobile Flash plugin. Whilst this does not mean that Adobe has dropped Flash altogether, the news is not so good for Flex, the enterprise library built on top of Flash. Previously there had been a similar announcement to Bob Muglia's from the Flex team "Recognizing the role of Flex has changed", however, this weekend Adobe announced that Flex development was being handed over to the open source community, "In the long-term, we believe HTML5 will be the best technology for enterprise application development."
I do not object to HTML5 itself, and have had a lot of fun recently creating the first HTML5 based Windows Phone 7 application. However, I feel that both Microsoft and Adobe are being a bit hasty in sacrificing their own plugin technologies in favour of HTML5. Both are heavily investing in HTML5 tooling, Adobe Edge is proving to be a great tool for creating HTML5 timeline animations, whilst Microsoft has embraced HTML5 as part of Windows 8. However, there is one great big elephant in the room ...
HTML5 is not ready for enterprise development!
I have written about the problems with HTML5 and JavaScript in earlier blog posts:
- Can Microsoft 'fix' JavaScript and make HTML5 applications viable?
- Dart - will Google make HTML5 applications viable?
If you have tried to create large complex applications with JavaScript and a browser-based user-interface, you will know what I am talking about! Interestingly, I recently read an article about node.js, which is proving to be a popular server-side technology, the author noted:
"Node.js is a server-side JavaScript execution engine. The actual language isn't important - certainly if I had a time machine and Tony Stark's cash I'd go back and change it so that it wasn't based on JavaScript." - Matthew Baxter-Reynolds
It appears to me that Microsoft and Adobe are concentrating too much on the smartphone and tablet market. I agree that for many consumer facing sites HTML5 is a good technology choice, especially when you consider that this technology works well on most tablets and smartphones. It is also more readily able to adapt to the device it is being used on, for example, Android phones have a nice feature where they re-flow HTML documents to better fit the screen. However, for more complex enterprise applications where tablets and smartphones are not the target platform, Flex and Silverlight are still a much better option.
It is true that smartphones and tablets are becoming much more commonplace, you see no end of people playing with iPads, Androids and the occasional Windows Phone 7 on the train. But you can bet that every single one of those people when they get to work will put their smartphone in their pocket, their tablet in their bag and will sit down to a standard desktop computer, monitor, mouse and keyboard. The more I think about it, the Windows 8 split-personality makes sense.
Unfortunately it looks like Adobe and Microsoft have lost sight of the enterprise and of the desktop user. If I were to embark on a new line-of-business project for a company intranet the technology choice would be very difficult right now. I would like to choose Silverlight or Flex, but would either be a wise technology choice if you know that the current version might be the last?
Regards, Colin E.