Flash is an outdated, slow and buggy format. Adobe have created large barriers to entry including the high price of Flash creation software, poor cross-platform support (no 64-bit support and poor mobile/console/Linux support), poorly documented APIs, poor integration into modern browsers, and insecure protocols for critical data.
It is time for Flash to be replaced by a more lightweight, more open and better supported standard.
Here are four alternatives which are in development and are far more attractive options for vector graphics, animations, multimedia and games.
--
1. <canvas> tag (HTML element)
Originally developed by Apple, and now a part of HTML5, a web standard, the <canvas> HTML element allows your browser to draw 2D and 3D graphics on an area of the screen using Javascript. This can be used to create everything from animations to games. It is supported in Firefox, Safari and Opera, and since it is an HTML standard Microsoft ought to put it in Internet Explorer (but IE is not known for following standards).
Here are two <canvas> based raytracing applications:
An awesome looking renderer: http://labs.flog.co.nz/raytracer/
A raytraced game: http://developer.mozilla.org/en/A_Basic_RayCaster
2. SVG format
Scalable Vector Graphics (SVG) is an XML-based format that is also a web standard. Currently it provides complete vector graphics support and limited animations support, but there are plans to extend it to Flash-like interactivity. Unlike the others, it doesn't require any knowledge of HTML or other langauges to create. The open-source, free software program Inkscape (http://www.inkscape.org) is a professional-level editor that uses SVG natively. SVG can be viewed by Firefox, Safari and Opera, but not Internet Explorer.
Here is a comparison of SVG to bitmap formats: http://en.wikipedia.org/wiki/Image:Bitmap_VS_SVG.svg
3. <video> tag (HTML element)
A big shortcoming of Flash is videos. Almost all video websites use Flash, but there are some universal problems including:
- Adobe's Media Server being unable to handle larger files being uploaded without crashing. (That's why a 10 min. upload limit exists on Youtube)
- Distortion, jumping, freezing and other bugs because Flash can only be fixed by Adobe, rather than anyone.They donm't have competition, so the poor browser integration and unstable video viewers persist.
- Much larger overhead leading to a slower rate of video loading
- Large variety of incompatible file formats used (WMV, MPG, DivX, XviD, H.264, etc.) some of which you must buy a 'licensed' encoder and decoder for (you might not think you're paying for one, but every copy of Windows includes $5-$20 to royalty collectors for MP3 and so forth)
The solution to this is another HTML5 element, the <video> tag (and <audio> too). It is very lightweight to play video or create a video player for, and in conjunction with Javascript and CSS can give all of the features (and more) of the standard video player like Youtube's. It is implemented by browsers, so bugs in the implementation can be fixed by anyone if an open-source browser is used, and the standard itself is open for anyone to read. It is implemented in experimental form in Firefox 3.1 and Opera 9.52 (and possibly others). Microsoft has no plans to put the <video> tag in Internet Explorer.
It uses the Ogg Theora video format and Ogg Vorbis audio format, some of the few truly open and patent/royalty free formats that anyone is free to encode or decode. They also provide better audio/video quality and compression ratios than a lot of common formats, and are DRM-free. Since this will eventually be in every browser for every platform, every browser will be fully compatible with internet video (unlike Adobe Flash).
4. Microsoft Silverlight
Microsoft are developing a Flash-like application called Silverlight. It will eventually be capable of everything Flash is (US television coverage of the Olympics was by Silverlight, and some major websites now use it) and Microsoft certainly have the money, resources and market power to make it become a new standard. While Microsoft is likely to be just as dominating witH Silverlight as Adobe is with Flash, and will attempt to control the formats and platforms used, Microsoft are paying for an open-source implementation called Moonlight to be developed by Novell. While this is for Linux, any free application could easily be ported, so there is hope that a free-as-in-freedom version will eventually appear outside Microsoft's control on all platforms.
--
Out of all of the four, Microsoft Silverlight is the one most likely to succeed first due to market power, but all four have potential to be standards and therefore open up the market that Flash dominated. The downsides of Flash are only becoming more apparent with the current shift away from the Windows/Internet Explorer duopoly towards mobiles, consoles, Mac OS X and non-IE browsers such as Firefox, Opera and Safari. I believe Flash will be no longer dominant within five years.