Flash vs. HTML5 analysis
HTML5 and Flash are two popular technologies that are used for creating valuable and attractive content on the World Wide Web. This article tries to shed some light on the HTML 5 and Adobe Flash differences and advantages, and to provide an objective analysis of the two technologies.
Flash is a multimedia platform and a RIA tool used for adding vivid animation and interactivity to ads, games and various types of web pages. For the time being it can be said that Flash is the most popular platform for developing Rich Internet Applications, providing a large suite of tools that are both powerful and easy to use.
Adobe Flash pros
* Adobe Flash is a mature technology
Adobe Flash has been the most popular choice for online multimedia content for quite a few years now, and it has been used in numerous applications. Also, thanks to the fact that Flash is distributed by a major software company, Adobe, a large amount of effort has been invested in making it a stable and feature-rich platform.
* Provides expressive graphical experience
Flash uses powerful algorithms for rendering graphical content, which makes the scenes rendered with Flash look smoothly. Also it provides various built-in visual effects which allow developers and graphical artists to create expressive graphical experience for their users.
* Good performance
Adobe Flash is optimized on most Windows platforms to deliver good performance even on less powerful computers. As a consequence, even big applications run quite fast on most Windows platforms.
* Good pixel-level control
Flash has the ability to specify measurements in sub-pixel increments. This can result in a crisper and generally more pleasant appearance of Flash applications.
* Suitable for developing visual effects, 3D graphics, etc.
Adobe Flash provides developers with a series of useful tools for creating and manipulating graphical content. Also, it natively supports animations and various transformations and effects, so it is a suitable choice for developing complex graphical applications.
Adobe Flash cons
* Requires a "player" application to be installed on the client machine
The main disadvantage of Flash is that in order to play a SWF file, the customer needs to have Adobe Flash Player installed on his device. This triggers a series of limitations, such as: the device and OS used by the customer need to be compatible with Flash, and the Flash version installed on the customer's device needs to be the same as the one used for development.
* On some platforms it runs very slowly
On certain platforms (for example Mac OS X and Linux), Flash runs very slowly, due to the fact that it doesn't have access to GPU processing (Graphics processing unit). This means that the graphics processing is performed on the central processing unit (the CPU) which heavily slows down the application.
* It is not supported by iOS
This means that a Flash file can't be run on an iOS device (smartphones and tablets).
HTML5 is a markup language for the World Wide Web (for structuring and presenting content), and a fundamental technology of Internet. It is the fifth revision of the popular hypertext markup language (HTML) standard created in the '90s. The innovation in HTML5 is that it natively supports multimedia contents and provides features for allowing scriptable rendering of 2D shapes.
HTML5 aims to replace other rich internet application (RIA) platforms, such as Adobe Flash or Microsoft Silverlight, especially by taking advantage of its capability to render multimedia content without requiring a plugin or "player" application installed.
* Doesn't require any "player" to be installed
The most important advantage of HTML5 over other rich internet application (RIA) tools is that it is natively supported by web browsers, without having to install any "player" application to render the content. This means that HTML5 content will run "out of the box" on any computer.
* Runs on mobile devices
Being natively supported by all major browsers, HTML5 is rendered correctly by mobile device browsers as well (smartphones and tablets, such as iPhones and iPads, Android devices etc.). This represents a major advantage of HTML5 over Flash, since mobile devices running iOS are now commonly used tools.
* Provides better performance than Flash on some platforms (for example Mac OS X and Linux)
On certain platforms, HTML5 provides better performance than Flash. For example, on Mac OS X, HTML5 content runs about 58% faster than Flash applications.
Here are the main limitations of HTML5:
* Emerging technology (still under development)
Being still under development, HTML 5 lacks the reliability of Flash. Features could be changed on the long run, which means that using it will require more maintenance effort than a Flash based approach.
* Lower performance than Flash
On most Windows platforms, HTML5 applications run slower than applications developed using Flash. As a consequence, using heavy graphics (animations and complex visual effects) in a HTML5 application could pose certain performance issues.
* Lower capabilities of generating 3D content, visual effects, etc.
Also, as opposed to Flash, which is mainly focused on creating graphic content and animations, HTML5 is mainly focused on structuring and presenting content for the web, which means that it provides a limited support for creating complex visual effects.
* Depends on the browser on which it is run
Since HTML5 is a web standard, and each browser implements it in its own way, the same content can be rendered differently on different browsers. For example, a visual effect can be displayed correctly on one browser, while it might not be displayed at all (or displayed totally different) on another.
* Reduced online support and fewer development tools
Being an emerging technology, currently there are not too many development tools available. Also, there is a reduced online support and documentation for HTML5. As a consequence, the development process for HTML5 applications is not as fluent as Flash development.
HTML5 is widely regarded as a technology of the future, however currently it is still under development and it doesn't provide the reliability of Flash. Also, being mostly oriented towards structuring / presenting content for the web, it doesn't provide as many tools for graphical development as Flash does. As a consequence, even if developing animations and complex visual effects with HTML5 is feasible from a technical point of view, still (considering its limitations) the development process is not as fluent as Adobe Flash development.