Apple is always in the news these days with "i" this and "i" that. One of the biggest beefs people have with Apple is the lack of Flash support. Last year I held the same belief, Apple's choice to exclude Flash support just seemed senseless. HTML 5 seems to have changed this though. One of the most popular users of Flash is YouTube, and they are already getting on the HTML 5 bandwagon (http://www.youtube.com/html5). Still, I am torn between the two technologies.
What is your take? Is it better for a budding developer to learn Flash or should their efforts be devoted to HTML5?
Flash is relatively old...HTML5 is brand new. I think that pretty much defines the future. --EDIT: One thing Flash does very well and i don't see a replacement for is frame-by-frame animation.
Simple and open win. Every time. Learn HTML5.
I think it's ironic hearing Apple and Steve Jobs railing about closed standards, though. Apple's computers have always been a closed integration of their hardware and software.
It seems like every browser has one little quirks about how they implement features like FileReader. It is a PITA having to test every browser.
Pretty much any technology we work with as programmers is going to be obsolete sooner or later. That doesn't mean that we should never learn about any technology.
A lot of people have Flash installed on their computers. This alone means that it is not going to disappear any time soon. Whether it's going to be the dominant technology is another matter. Adobe might might make major improvements to the platform or a lot of other stuff might happen in the long run.
As a technology for developing stuff today I would probably choose Flash. If you want to learn skills which will transfer more easily to other languages, I think HTML 5 would be the better choice. Either way you will be wiser afterwards and no one can take that away.
It's ironic that you link to the HTML5 version of YouTube, as an example of the uptake of HTML5, when it only works in 10% of all browsers. A figure that won't improve until IE and Firefox gain support for it. Even then, the HTML5 spec isn't going to be complete for another 2 years.
It's easy to rail on Flash these days (and popular too, apparently) but the fact is that it has played a large part in creating today's media rich web. Despite its shortcomings, at least it was not five years late, and counting. The sudden circle-jerk over HTML5 seems somewhat inappropriate since it only gives us what we've already had for more than five years (except natively supported, instead of plug-in based and more efficient than Flash, but not more so than Silverlight). The incredibly long standardization process of it (spec complete by 2012, recommendation status by 2022) must be leaving those people pretty blue-balled, I imagine.
Should you learn Flash? That entirely depends on what you want to do. Building an HTML5-only application that is not specifically aimed at Apple hardware, that should be viewable by the general public today is a very, very bad idea. As said, you won't be able to target more than 10% of users. And even when it has the ubiquity of Flash (at least two more years) it doesn't mean there is no more reason to use Flash or Silverlight. The HTML5 standard brings some of the more popular uses of Flash, but won't provide things like live streaming or DRM. The plug-ins will stick around for many years and most likely will never disappear, since they aim to extend the browser and no matter how much more complete the web standards get, there's always something that's missing.
Business-wise, if you want to create a media rich web application, you're going to need Flash or Silverlight.
Your question is ambiguous to me. I think the answer to your question depends on what you are trying to do. If you need to display video on your website or render fancy fonts, then you no longer need Flash to do that, because HTML5 is an option. However, if you are talking about building an application (either web based or Adobe Air), then some people might prefer Flash.
You don't need Flash to build a web application, you can use HTML/CSS/jQuery/AJAX for the front end instead of Flash (some might even use both). Apple would argue for you to use HTML for web stuff, and Cocoa for non-web apps instead of Air (C# for Windows!!).
For developing web applications, Flex has the convenience of being stateful, whereas HTML is stateless. For developing non-web apps, Flex has the advantage of being cross-plaform compatible, just like Java. Of course there are many other advantages to using Flex, as well as disadvantages.