>>10
horrible resource hogs
Oh boy. I'm so sick of hearing that shit. It you put a static (without animation or scripting) Flash file in a page, the Flash plugin uses no CPU. In fact, right now, Flash compares very favorably (in terms of performance) to the native browser technology people are touting (except for hardware-accelerated browsers).
Flash has many problems. The browser plugin interface is garbage and it creates a lot of issues (browser keyboard shortcuts stop working when Flash has focus, if there's excessive CPU load event pumping gets flaky stalling user input, on some platforms the interface is outright broken and requires the browser to poll the plugin a thousand times per second, in many cases the plugin has to draw to a memory surface which the browser has to copy again to the screen, in some other cases it uses a "native window" which renders and moves asynchronously...); also there's only one (usable) implementation of it with no source code available, which is a huge liability for something that is exposed like that to foreign data (and a liability for future playback of content, although there's a spec). Moreover its design is very biased to Adobe's clients (the content makers), so you'll never find features such as "right click -> save video as..."; instead you get intentional obfuscation and lack of control.
But performance isn't its problem. Well, it sort of is because most "Flash designers" are total retards and do atrocities and it Flash makes that too easy (for example, last time I checked most online video sites didn't use fullscreen hardware-accelerated scaling and had
wmode=transparent which pretty much means the person "coding" the page had absolutely no idea what he was doing, and was just copying and pasting code from somewhere; YouTube is the only one that almost got it right)
When these people move to "HTML5" or whatever it'll get just as bad, only the users will have more direct control over these things since the browsers allow it. In fact, strike 1 against canvas: it's an immediate mode API so the browser has to honor all draw commands whether it's visible on the screen or not. At least Flash stops rendering when not visible. There's a JavaScript event to notify the tab is no longer visible, but obviously nobody will use it (you have to force these things, developers are idiots - no exceptions).
The negative association many people (such as
>>10) have to Flash comes mostly from things outside Flash's control. I mean, it you're the kind of "designer" that uses Flash for buttons/menus, you probably have such poor taste and lack of common sense that your page is going to suck no matter which technology you choose.