Who could possibly have predicted the growth of the web twenty years ago. It is probably a fair comment that its growth is partly the result of improvements in web technology like Flash from Adobe, the makers of the portable document format (pdf).
Flash began as a means to produce simple animations in web pages, then developed from these humble and perhaps irritating origins to something that has allowed developers to produce some of the most outstanding web experiences of the millennium. It has grown into a fully featured object oriented programming language with comprehensive event handling, video support, XML support, database support, and of course its celebrated animation capabilities.
Flash is used extensively to produce stunning and innovative web sites. If you see an advertisement for a car with great animation, video and interaction, it was probably produced with Flash, but there are many reasons to use Flash other than these.
One of the biggest users of flash are Facebook users. At the time of writing, twenty four of the twenty five top Facebook games are flash based.
To produce the most stunning web based application with the best graphics, interactivity, animation, and sophistication, on the greatest number of web connected devices around the world, you have to use Flash.
Flash has fallen out of favour over the last few years, and it is difficult to get a balanced, accurate explanation of why this might be. It has its critics, and I always ask myself if a staunch critic of some technology is basing their opinion on experience or something else. I.T. people are tribal, and they are not always rational. You might want to look at this page on Wikipedia for some facts about Flash and the competition.
Like all programming languages, it is possible in the wrong hands to produce an end product, that is querky, a security risk, and generally of poor quality. But how many HTML based web sites have you seen that have one or more of those shortcomings? And HTML5 is the main competitor for Flash. More than that, HTML5 has incomplete support in the browsers that people use. Because Flash runs in its own plug-in, this is never a problem. If the Flash player is available on a machine, whatever it is, the Flash application will run. There is another issue to consider.
If you are developing a Flash application, you have extensive resources within the language itself. It you choose however to develop an HTML5 application, you need also to master Javascript, CSS, and probably some Javascript library, like JQuery. Neither are intuitive. More than that there are some strengths that Flash has that are hard to beat.
Complex animation that you might encounter in a typical game are hard to reproduce in an alternative to Flash.
Interactive web applications, assisted by Flash style tools are likely to change the way we use mobile phones (again). A mobile phone that - with the correct sensors - can monitor our physical wellbeing might extend our lives.