This is a re-post from my full time employer Ironworks Consulting
The reality of my job as a front end UI developer is that technology changes and it changes fast. 10 years ago using JavaScript for more than cookie management or form processing would have seemed excessive, and more importantly – futile. Today, however, with the use of popular libraries like jQuery and Prototype, JavaScript has opened itself up to more interesting possibilities encroaching on what was once the divine territory that made Flash the only real choice.
Recently discourse on these technologies (HTML5 and Flash) has been frequent and heated. Steve Jobs’ “Thoughts on Flash” and the myriad of responses for and against flash have only muddied the waters for clients seeking the right choice to solve their problems.
This article is not about whether flash is better, or whether the use of DHTML and/or HTML5 has a more prominent future 5-10 years from now. It’s about understanding these technologies as they exist today and in the near future.
The FUD (Fear Uncertainty and Doubt)
With respect to these technologies and how they create or solve problems, it’s important to keep in mind your sources of information. The amount of disinformation is vast, most of which is piggybacked on Twitter or the blogosphere, and most of which is about the badness of Flash. Pick your poison – lack of standards, closed platform, poor accessibility, or disappointing system performance, Flash has haters in every one of those categories (and more). But few of these prominent bashers work in, or know much about Flash from a standpoint of development for the web. The best article I found on the Flash debate comes from a prominent interactive developer – Grant Skinner and his blog post entitled “My Thoughts on the Future of Flash.” Here’s a quote from the article:
Considered rationally, the absolute worst case scenario for Flash player is that its core feature set is replaced by HTML5 (canvas, video, etc.) over the course of the next 3-5 years. Even if things go miraculously well, these standards are not going to be implemented consistently across major browsers and devices, then adopted by the general public faster than that.
In the more likely scenario, HTML5 will slowly overcome the obstacles facing its adoption (ex. Codecs, IE), and begin providing an alternative to Flash for many scenarios. For example:
- A fair amount of video will eventually be delivered with the video tag, though the lack of advanced features (content protection, variable streaming, etc) means it will won’t replace Flash completely. This in itself will keep the plugin fairly ubiquitous
- You’ll see some very impressive apps created with HTML5, though they will require significantly more effort to build because of the less robust tools and language.
- You’ll see some interesting games and interactive experiences built with it, but it will remain much easier to design and code these experiences with Flash.
So Grant addresses the future of these technologies and hints towards some of the struggles HTML5 faces in the future. The reality of the situation for HTML5 however, is that it relies on the browsers that support it. (As of this writing, IE can’t use it at all) But it doesn’t mean that flash is the preferred “go to” interactive technology either. On the contrary, our interactive group uses jQuery and Prototype frequently. They overcome most of HTML5’s shortcomings, and in fact have real benefits over flash.
A colleague and I put together the pros of each technology. Let’s take a look at how these two technologies flex their muscles.
Advantages of Flash Over DHTML
Strong Video Support: The ubiquity of the plug-in makes Flash an ideal choice to deliver video to a wide audience. Flash also allows alpha channels in video.
Animation: Greater flexibility and creativity are possible with Flash.
3D: Excellent 3D libraries available for Flash, including – Papervsion3D, Away3D and FIVe3d.
Consistent Presentation: With the correct version of the flash plugin, the client will see what the author intends.
Legal Font Use: Flash encapsulates its fonts in a container inaccessible to its audience, allowing for a wider variety of font choices.
True Object Oriented Client Side Language:While JavaScript has features similar to an OO language, it is not a true OOP like Actionscript 3.0. This aspect of Actionscript simplifies maintenance and enhancements.
Rich Media Advertising: Flash’s ability to differentiate is a non-starter for competitors. |
Advantages of DHTML Over Flash
No Plug-ins required: Can be generated using any text editor, and absorbed by any standard browser.
Mobile Devices: Supported by all major smart phones and mobile devices.
Ease of Development: Everyday general-purpose solutions can be built easily and “nearly”100% compatible with today’s operating systems.
Lightweight: Simple solutions will use less code.
Accessibility: By its very nature, DHTML is more accessible than flash when developed using semantic mark up.
SEO: Code and content is accessible by search engine crawlers, simplifies search engine optimization.
More “Weblike”: DHTML keeps the web acting and feeling like the web.
Separation of Content and Presentation: Unlike the compiled SWF files of Flash, CSS allows developers to separate content from the visual presentation. |
The list gives you the general Pro’s for each technology, but each can shine in areas where the other has its strength. For example, DHTML can have fantastic animations but with significantly more elbow grease and Flash can be very accessible but likewise with tremendous effort.
I think both will be here to stay for a long time and as new platforms like the mobile space gain prominence, we may see some new technologies emerge. And I’ll have to be ready. I’m excited about the future for interactive development and hope that HTML5 takes off. But while I’m waiting, I have some viable choices that I can offer my clients today.