08 September 2009


With so much information available on HTML 5 at the moment, in particular with the rumor of HTML 5 killing off all the other major RIA technologies (JavaFX, Silverlight, Flex). Now is a good time to discuss the advantages and disadvantages between the two. Currently HTML 5 is being touted as the one technology to do everything, however to be honest it will be good at some areas, worse in others. Certainly many people will get a reality check once HTML 5 is used in real world projects. This reminds me of when Java was introduced since in a way history is repeating itself all over again.

For the basis of this article I will be commenting on what was mentioned in the well written article titled, HTML 5 Starts Looking Real. Be warned that while the web page is loaded that you may experience a very sluggish web browser, due to the Flash ads that have been embedded in the article. So be sure to close the web page as soon as you have read the article.

In the referenced article there is a lot of coverage on openness and why it matters, the author seems to think that HTML 5 will take over because it is fully open. But there is much more to it than having a technology that is open. While I am a firm beliver in using open source as much as possible, and where it makes sense to do so, I understand that to get the best out of software development you need to have balance.

Often this balance means being prepared to use something that may not be fully open sourced. Some of the best software/technologies in use today are not fully open sourced. If a software/technology is partly open sourced does that completely stop you from utilising it? Obviously that may not be a yes answer to that question since you may see some advantages with having some parts closed sourced, even though you prefer them to be open. Although all of the RIA technologies are not fully open sourced that does not stop people from using them.

As the referenced article mentions, flexibility is another major part to take into consideration when looking at HTML 5 and RIA technologies. Especially if you need to develop a highly sophisticated applications that tie into the underlying software/hardware platform. This is going to be an area that places HTML 5 at a significant disadvantage in relation to RIAs since it will largely be constrained to the capabilities of the web browser used by the user.

Advantages Of Using HTML 5
  • Can easily have search engines go through all content
  • Minimal learning curve since most people already know the basics of HTML
  • Cheaper budget with using any free tool that can handle HTML
  • Large pool of developers to choose from when forming a development team
  • Easier to deploy HTML 5 applications since HTML is supported natively by the web browser, and does not require any installation

Disadvantages Of Using HTML 5
  • Limited ability to take advantage of new software development techniques since the choice of programming languages is limited
  • Will take longer to evolve since it is a combination of standards that are developed by different groups
  • User experience will greatly vary between software/hardware platforms (lack of consistency)
  • Limited flexibility and power since HTML is constrained to the capabilities of the web browser
  • Poor choice for mobile platforms since it will not take advantage of the hardware and will provide very limited capabilities
  • Inconsistencies of HTML being implemented between web browsers (different parts of the standard are implemented)
  • Performance is largely constrained to the bandwidth that is available to the user
  • User may need be connected to use an HTML 5 application
  • Very limited support for media formats
  • Lack of good tooling to be productive in developing large sized HTML 5 applications
  • Basic animation and media features

Advantages Of Using RIA
  • Can provide a guarantee of a reasonably good user experience (consistently) between different software/hardware platforms
  • Can evolve quickly since it is developed by a single company/organisation
  • Able to take advantage of new software development techniques since there is a wide range of programming languages to choose from
  • Good tooling for developing large sized RIA applications (increased productivity)
  • Good performance and power since RIAs can take advantage of the software/hardware platform
  • Reasonably consistent implementation of features between software/hardware platforms (including mobile)
  • Good performance with access to the hardware
  • Wide support for media formats
  • Excellent choice for mobile platforms since it will take advantage of the hardware features and can provide a reasonable user experience
  • Advanced animation and media features

Disadvantages Of Using RIA
  • More difficult to deploy since a plugin will need to be installed first
  • Deployment of RIA applications are largely restricted to software/hardware platforms that have a plugin available
  • Smaller pool of developers to choose from when forming a development team
  • Increased learning curve since completely new technologies need to be learned
  • Search engines may be unable to go through content effectively

In general if you are planning to develop a simple application quickly that is not very sophisticated, and needs to be easily deployed then HTML 5 is a good choice. On the other hand if you are developing a highly sophisticated application, that requires a consistently good user experience then RIA is a good choice.

Also RIA should be favoured over HTML 5 if an application is going to be developed for mobile hardware platforms. Remember that a good user experience and the ability to have the application take advantage of the hardware (can be customised to the hardware), are the main considerations when developing applications for mobile.

1 comment:

  1. I think HTML will be around for a long time to come and media tag support becoming ubiquitous will help sustain HTML's presence/viability. On the other hand, most if not all apps in the business/corporate sector will be built using some sort of RIA/Framework approach. HTML/CSS/JS development will probably never have RAD tools that can deliver equivalent performance/functionality/efficiency to that of the RIA IDEs, particularly when it comes to using powerful controls.