Should I start using HTML5? What about Silverlight and Flash?
Posted by Ray Comas on Mon, May 31, 2010
In the last couple of years the interest in HTML5 has dramatically increased. This new technology not only brings some interesting built-in capabilities to the native html, but also proposes innovative
JavaScript APIs that expands the scope of web-based applications. Multimedia, interactivity, and interoperability, while offering a more robust language structure, are some key features of HTML5. Major browsers including Opera, Safari, Firefox, and Chrome have already started to partially support HTML5, and the next version of Internet Explorer (version 9) will also support the language. In the new HTML5, playing audio, video, drawing, animating, connecting to services, etc. will be inherent to the platform, raising some questions about the future of RIAs such as Silverlight and Flash.
Will HTML5 kill RIAs in the near future?
Not so fast. Based on the WHATWG, HTML5 will reach Candidate Recommendation stage during 2012, and Recommendation stage during 2022. However, there are some features available now that the browsers mentioned above have started to implement. The problem is that even though HTML5 is standard, not all browsers are implementing it the same way, making 100% cross-browser compatibility very unlikely (at least for the next few years). Furthermore, the specs for HTML5 are still being written, which makes it very risky at this point to rely solely on this framework to write advanced web applications. Google's Native Client project is an effort to create an open-source SDK that runs native code in web applications using HTML5 as platform. It has great potential but it is still very experimental, and like any other RIA, it also requires a plug-in installation.
HTML5 is definitely a huge improvement from HTML4, and it will eventually become the new standard for html. However, it wouldn't be realistic to expect for this platform to oust RIAs such as Silverlight or Flash, at least not anytime soon. RIAs have the capability to evolve very quickly, and all we need to do is installing or upgrading a plug-in in our browsers. Also, from the web application development standpoint, there are already many 3rd party powerful tools and controls widely used by developers, e.g., Telerik Rad Controls for Silverlight that help increasing productivity and performance.
What about using HTML5 to develop mobile applications?
One thing that has generated considerable interested in HTML5 for the mobile market is that Apple has banned RIAs from its mobile devices and adopted open standards such as HTML5, CSS, and JavaScript (here is what Steve Jobs thinks about Flash). Since the iPhone's market share is about 25% of the smart phone platform, people are starting to reconsider using RIAs for the mobile version of their websites, and it is very likely that HTML5 will pick up quickly in this area. Google is also pushing for a full adoption of HTML5 in mobile devices, betting for the complete extinction of native applications (e.g., those found in the iPhone's App Store).
However, there are some limitations in using HTML5 for mobile applications, specifically, if they need to access hardware resources (e.g., accelerometer, camera, mic, etc.). The current APIs and HTML5 are only partially implemented, and having a unique cross-platform language for all the devices in the market is still a dream.
Conclusion: HTML5 is a new technology still under development that will increase dramatically the native HTML capabilities. For business and corporate sectors, it would be too premature and risky adopting this incomplete platform any time soon. Using the advantages of powerful RIAs will probably be more feasible to produce faster and more effective results. Even when HTML5 becomes the new html standard, it won't necessarily mean that it will kill RIAs and native applications in mobile or other platforms. They are more likely to co-exist and complement each other. By the time HTML5 has officially established, the answer to which technology to choose will ultimately be determined by the application's requirements, target, long term support, scalability, and the same other factors that are taken in consideration today for our decision making process.