I'm not sure the answers here are very well informed. I use Flash and Canvas a lot. On a technical level, Flash (still) kills HTML for this sort of thing. Not that it can't be done in HTML5.. However, the downsides that kill Flash is that it requires a plugin that is both hated (for some good and mostly ignorant reasons) and not available on mobile browsers, which is a show-stopper if you want to support mobile browsers -- which you should probably want to support these days! But, if you want to target mobile native apps (yes, native, not those "UIWebView app packagers" like many HTML apps, ex Cordova or Adobe PhoneGap) then "Flash" has grown way beyond the plugin player -- you could still go the route of AIR, which is hugely popular today. If you want to support (default) mobile browsers, then you simply have no choice but HTML5. HTML5 wins by being the only option, the least common denominator.