I'm going to pipe in with my perspective, which I've voiced before.
Firstly HTML5/CSS3/JQuery bridges the gap between HTML and Flash, it does not replace it. The whole HTML5/JQuery replacing Flash argument is normally touted by people with a beef against Flash.
HTML5/CSS3/JQuery allow you to create more interactive experiences without using proprietory technologies such as Flash, but Flash is a lot more powerful. It simply reduces the NEED for Flash for things like animated menus, a video stream and stuff like that. (It goes a bit further than that).
To sum both up (not exhaustive)
The positives to HTML5/CSS3/JQuery:
- It opens up interactive applications to developers using a free platform
- It opens up interactive applications to developers using a technology they are familiar with (unless they already know Flash/AS)
- It provides a platform for interactive applications under devices without Flash support (Apple - although I don't believe Apple will never support Flash, I think they will but not for a while yet)
- More efficient for low/medium end interactive applications
- Its easier to work with (from what I have seen, its simpler)
- Its essentially open code (which may or may not be a good thing depending on you're perspective)
- No need for a plugin
The downside to HTML5/CSS3/JQuery are:
- They are not standard yet so therefore accessibility is a big issue
- It does not IMO go anywhere near far enough to remove Flash from the equation
- They are developer orientated, Flash is both artist and developer orientated
- HTML5 Video and DRM - I am not convinced about
- It's suited to simple animation and interactive applications, but not high end interactive applications
- Not suitable for rich animated content
- Not suitable for games - which I believe will become more common as time goes on, but I believe the likes of Unity will take precidence here.
- JavaScript based applications (jQuery is JavaScript) can crash you're computer if you are lazy
- JavaScript based applications offer security holes if you are malicious
- People turn JavaScript off for security reasons
I was excited when people started talking about HTML5/CSS3/JQuery but then disapointed that it didn't go as far as I'd have liked to see.
Positives of Flash:
- Suitable for high end interactive interfaces
- Provides a gateway to video and audio devices and streaming (webcam, chat, conferencing, high end video streaming platforms etc.)
- Suitable for games
- Flash Media Server (enough said there)
- DRM (again enough said)
- Closed code (this is a positive or negative depending on perspective)
- Artist orientated SDK for artists
- Developer orientated SDK for developers
- Suitable for rich animation (timeline based animation trumps programatic)
- Supported by a majority of computer systems
The downside to Flash:
- Requires a plugin (I dont think this is as big of a deal as some make out)
- No supported by apple mobile devices (I don't think this is forever due to competitors now starting to support Flash and gaining popularity - competition and all)
- There are security issues * (important note at the end as this is a dumb argument)
- It can be inefficient if you are sloppy and or lazy
- It can hinder SEO if you are lazy
- It can hinder screenreaders if you are lazy
- It can crash you're computer if you are lazy
* On security and Flash
JavaScript is a bitch for security issues, most virus and security warnings I get from websites are via JavaScript exploits / malicious applications - on both my Mac and my PC. If someone is malicious and intends to exploit someones computer they will. I dont think I've ever had a Flash application give me a day of downtime, JavaScript nasties have more than once!
* On efficiency and Flash
I had a javascript website slow my iPhone only the other day. This is down to the developers skill not the platform.
* On Flash and Crashing
I would say more JavaScript issues have crashed my computer (PC and Mac) than Flash and I use Flash a lot. Again though this is the developer NOT the platform. I was pissing around with a jQuery based application a few weeks ago and crashed my iPhone with it due to being sloppy. Anyone want to crash their iPhone for proof, get in touch and I'll link you to it.
* I read somewhere once (cant remember where it was a while ago) that more people disable JavaScript than Flash. I cannot vouch its validity but its plausable.
* The SEO argument is a strawman used by people who either have never used Flash but have an expert opinion or that have a limited knowledge of Flash but have an expert opinion. If you're Flash site is less SEO efficient than a HTML site you've been lazy or don't know enough about Flash to use it for full websites.
* If you're full flash website is unavailable to some users without Flash you've been lazy.
* If you're website is unusable by screenreaders you've been lazy
* If you're Flash site/application is slow, stop being a cowboy and optimize the bloody thing like you would any application!
* If you're Flash site/application hogs CPU resources you have made mistakes and need to fix things. (see above).
* "Flash is difficult to update" is relevant to HTML websites. If you don't make it dynamic its more difficult to update, if you make it dynamic its easier to update.
All of the above *'s are relevant to both Flash and JavaScript based applications, they are a strawman argument and have no place amongst professionals. People who start screaming these arguments in debates I always assume to be amateur developers as it shows a lack of knowledge of an application. I'd rather people be honest and just say "because I prefer working with Flash" or "I prefer working with JavaScript based applications" as a personal preference rather than spouting old information thats been incorrect for years.
In other words, sh!t peddelers with an adjenda annoy me.
The bottom line IMHO is this:
1. Flash is a powerful plaftform, with any powerful platform it means there is a higher point of entry and skill required to use it. The reality is, the artistic nature of getting stuff built leads people with no knowledge to build crap. This is true for HTML sites too (pleanty of crappy HTML sites out there, more crappy HTML/JS sites than Flash ones, yet Flash gets the flack).
2. Do not attempt to create a full blown interactive application or website unless you have a very strong knowledge of the platform else you'll come unstuck with a substandard application.
Trying to make a full flash website with limited knowledge of Flash is like trying to make an iPhone game with Unity with amateur skills. You might get away with it by the skin of you're teeth but it will be crap.
Both are capable of being leveraged successfully for powerful applications but Flash has a much broader scope and is overall more powerful. The BEST applications out there that I have encountered use a mixture of technologies.
The best website I have ever used was a Flash and jQuery hybrid. It was blisteringly fast, slick, engaging, cool and usable. A good developer will look at the tools available, choose the best for the job and work with these tools to their maximum potential and importantly finish the job by testing and optimizing it.