Find out more about our consulting services. McLean. Boston. New York.
As a developer, I am constantly confronted with articles like “HTML5 will kill Flash,” or “jQuery will kill Flash,” as if there were some blood feud that could only end with the demise of one of them. The argument usually comes from developers leaning to one side or the other, and generally carries tones of heavy bias. So, I thought it would be a good idea to write a piece going through the differences between the two, and why each has its own area where they will be dominant (without the need to kill each other).
One common misconception I often see is the idea that Flash is somehow slower. But with Flash 10.1, Adobe added in hardware acceleration that gives it a huge advantage when rendering complex animations, and in some cases (particularly on Windows machines), Flash is significantly faster. Unfortunately, until Apple budges on exposing access to its APIs, there isn’t much Adobe can do for Mac users in terms of significantly speeding it up.
Intense particle animation This will improve with time.
HTML5 can’t interact with your webcam (yet). There is a capture parameter for media capture in the HTML5, but it has yet to be implemented.
HTML5 can’t use video on a 3D plane. You are awesome if you are doing this, but this is a fairly isolated use case (but very cool none the less!). Think Google Maps Street View with video.
HTML5 cannot record audio from your microphone. Once the capture parameter is implemented, this will be possible.
HTML5 cannot do any sort of web conferencing. HTML5 cannot record from your webcam. Capture parameter!
HTML5 cannot add dynamic objects to go over the video, like captions, titles, or navigational items.
HTML5 Doesn’t do Full Screen Mode. Not going to happen. The HTML5 spec at present reads: “User agents should not provide a public API to cause videos to be shown full-screen. A script, combined with a carefully crafted video file, could trick the user into thinking a system-modal dialog had been shown, and prompt the user for a password. There is also the danger of “mere” annoyance, with pages launching full-screen videos when links are clicked or pages navigated. Instead, user-agent specific interface features may be provided to easily allow the user to obtain a full-screen playback mode.”
New doctype! (duh)
No more type attribute for link or script tags.
No need to close elements or quote attribute values. You don’t have to close your elements, but it doesn’t hurt to. I personally feel a strong need to after doing it for years.
Content editable attribute allows for inline content editing. AWESOME.
Header and footer elements plus a boatload more!
Tons of new attributes!
Basic awesome sauce for form features
Audio support for various types of audio files!
Video support! (With preloading! And controls!)
Attribute support detection (Although Modernizr is probably what you should be using).
Probably one of the most important new attributes is the data attribute!
Two things I often see is Flash developers comparing what a scripted swf can do compared to static HTML5, OR saying that webpages are built with Flash. A website can be made of a flash object embeded in an html page.