Ok, hands down. Sooner or later, Flash will not be relevant to the WWW anymore. Flash videos will be replaced by <video> while animations will use <canvas> and <audio> in HTML5.
There are a few things Flash can do, but HTML5 cannot, like:
- Webcam support
- Binary sockets (not web-sockets!)
But these features will sooner or later be covered by HTML as well, so there is no need for Flash anymore on the web.
But what about the Desktop?
As I already stated, Flash could become the next-gen Java-replacement for Desktop applications.
The reason why I think so is simple:
- Flash/Flex applications are easier and faster to develop than Java (thanks to MXML). This improves workflow and thus reduces costs for software companies.
- There is already a wide range of developers that have experience with Flash development, so there is no new programming language/technology to learn for these people. They can start develop rich desktop applications right away.
- Flash-based desktop-applications simply provide a nicer user-interface and their look ‘n’ feel is “smoother” than Swing.
- The Photoshop/Illustrator-Catalyst-FlashBuilder workflow is great and definitely enhances work of designers and developers. There is nothing compared to that in classic software development.
So, what I want to basically say is:
HTML5/Ajax for Web and Flash/Flex/AIR for the Desktop!
That’s why I think that both are not competitors. Their future lies on two difference battlefields.