HTML & CSS provides the bread and butter of a website, but when you want to add something cool you have two options, JavaScript or Flash. Whilst Flash is undoubtedly the most sophisticated option it requires a web browser plugin (which not all computers will have installed), and the development & support costs are much higher. This is mainly due to the developer requiring an expensive application to compile the Flash binaries (costing about £400).
By comparison the JavaScript language is free to develop and requires no compiling, allowing quick updates. It is also more widely available to users as a lot of office computers do not pre-install Flash for security reasons.
The advent of HTML5, a web standard which is still being finalised, is providing a number of advanced functions which is making in-roads into Flash’s functionality and makes the argument for Flash a weaker one.
Considering the lack of Flash support on the iPhone, poor support on other mobile devices, and the recent announcement from Adobe (the makers of Flash) that they will be suspending development of Flash, it seems an increasingly simple statement that the days of Flash are coming to an end.
However, Flash is well proven, relatively well supported on desktops and can handle complex graphic manipulation very well. If style is more important than function then Flash has to be taken as a serious contender. That is, unless JavaScript can be proven to do the job just as (or almost) as well.
To that aim I set myself the task of producing a simple arcade game using nothing but JavaScript. Doing so also made it very easy to feed top scores back to the server for long-term storage.
I think the results turned out rather well. The game is fun and includes effective sprite collision detection with some subtle features such as adjustable deflections.

