Abobe’s Flash has been the dominate force for dynamic graphics, sounds and interactivity on the web for a very long time. The end of its reign, and the dawning of the HTML5 age, would appear to be nigh however – for several reasons, such as:
Flash is a completely proprietary piece of software – that is, the specific standards on which it is based have not been made available to the general public. This means that only Adobe software can run Flash applications, and consequently that Adobe has complete control over the decisions as to who gets to run their software. Some attempts at reverse engineering the standard in order to make compatible players for other systems have been done (such as UIRA), these were unsuccessful due to the ownership that Adobe maintained of Flash.
Now by requirements I don’t necessarily mean system requirements, but requirements made of the user before they can view Flash applications. This ties in loosely to the proprietary issue, but is more due simply to the fact that web browsers have advanced considerably since Flash was first envisaged. For most of Flash’s life there were no other really viable options for creating interactive online media – now, with the development of the HTML5 canvas spec, all modern browsers come equipped ready to render basically any kind of graphics a user could want. From basic 2D to full on, physics-driven 3D, the need for Flash is simply no longer there.
Stability and Security
In recent times Flash has been the subject of various security issues and (as is to be expected of any large piece of software) some crashing issues. Although HTML5 does not guarantee that these will be non-existent by any means, the point does count against Flash. In addition, with HTML5 being an open standard, security audits are easier to design, and easier to test to ensure that they are being followed (although not guaranteed to be correct).
So what next?
As mentioned previously, the up-and-coming replacement for Flash is the HTML5 standard. HTML5 is the fifth revision of the exceedingly popular HTML (Hyper Text Markup Language) standard which powers most of the web. HTML5 brings in a wide range of additions to the existing standard and provides for improved cross-platform capabilities, video, audio and (most importantly for our discussion) graphics via the <canvas> tag.
The capabilities of the canvas tag are proving to be vast – from basic 2D games (see my Asteroids clone for an example of this) to full-blown 3D environments (see TankWorld, for example). Any developer interested in producing cutting-edge, dynamic interactive online applications would do well to pick up at least a passing familiarity with it.