Flash has never been a good player, they've just always been the only player.
That's not true at all -- Flash video competed with and beat players such as QuickTime, RealPlayer, and Windows Media Player. Flash became the de facto standard for web video because it was the best player, not the only one.
I actually like the design of HTML, and the direction it's going. From what little I've seen of Flash development, I can't say the same.
Then you really have seen very little of Flash development. As someone who has developed serious apps in both, the difference is night and day -- consistent, well-documented APIs (vs. a fragmented and buggy mess in browsers), far better backwards compatibility across runtime versions, stronger development tools and debuggers, ridiculously better networking APIs, a superior programming language, and one of the best UI frameworks (Flex) I have ever worked with, with a much more sensible layout model.
The versions of the swf that are open do not include all features. It's a "when we get to it" approach from Adobe. The end result is that they open up version 8 and then release version 9. We're now on version 10 and not all features are available. The end result is that the open plugins are never up to date and Adobe is the only place to go to, yet they get to keep the appearance of being open to dupe people like you.
The version 10 SWF spec is available right here. So let me get this straight: Adobe openly publishes all updates to the SWF spec, but none of the open source Flash-clone projects have actually picked up the updates yet... and that's Adobe's fault?
I'd also argue that you're living in Adobe's ideal world which is Windows. NONE of the flash plugins outside of windows support hardware acceleration, they're stuck on your core process support.
Only very recently did it get actual hardware-accelerated 3D. I'm pretty sure Java doesn't, but JavaScript is getting 3D support soon (they're in the nightlies of the major open source browsers).
Flash has been shipping with 3D support since 2008, so it depends on what you mean by "very recent." The browsers' 3D support is not part of any open standards process afaik... they each have their own, albeit similar, custom extensions to CSS transforms (which in CSS3 are officially 2D-only). It will be a good while before there is a consistent platform to build upon there...
Adobe's problems can not be solved by hardware. They have buggy, crash-prone, security hole riddled bloatware.
The security hole statement is more of a meme than fact. Symantec reported that, in 2009, Flash had fewer vulnerabilities than any major web browser, including Chrome, Safari, and even Opera... In fact, if Apple wants to play the holier-than-thou game regarding security, they might want to get to work: Safari had 94 reported vulnerabilities, nearly 6x Flash's 16, and the second-worst of all browsers. Safari also had by far the longest lead time before patching: an average of 13 days, vs. ~1 for basically every other browser. And that's not even getting into all the holes in QuickTime and their PDF reader...
And regarding "buggy"... if there are bugs you know of in Flash, Adobe is listening -- so please, file issues when you spot them. But really, if you think Flash is beyond help in this area then I can't even imagine where that leaves most browsers:-)
with Apple you get a choice (you don't have to buy their products), with Adobe, the choice rests with the content producer (website owner).
With Apple you rarely actually get a choice -- because they force the content provider's hand by making it prohibitive to create cross-platform apps. The vast, vast majority of apps people run on their iPhones are iPhone-native apps. You are locked into Apple hardware, Apple OS, and Apple app store.
Apple's done a lot of talking about openness and HTML 5, but they're not really walking the walk. Why can't HTML-based apps be sold via the app store? Why isn't apple working to build mobile-device APIs (GPS, multi-touch, accelerometer, etc.) into the HTML 5 spec? Why is mobile Safari's HTML 5 performance so terrible? Why does Safari's video tag only support one codec? On and on...
Plus, Apple has taken proactive legal moves to attack cross-platform frameworks like Flash and Unity. That shows how interested they are in portable apps vs. lock-in. Contrast with Adobe's strategy: Flash is free to end users and mobile phone vendors alike, anyone is free to create SWF authoring tools, and anyone is free to create SWF players based on the openly published spec for the format.
Flash has much better text rendering than HTML, particularly when you want to use a font other than Arial, Times, or Courier. But the better way to do it would be an image with alt text, of course.
In the meantime, Adobe would like to charge everyone to develop on their platform. They're content to making it so all web graphic design courses are centered around their tools and they're content to only support a small segment of the market despite trying to make these stupid claims of "uniform code for all platform" BS.
There are actually numerous free and/or non-Adobe tools for producing Flash (SWF) content: Flex, FDT, IntelliJ, haXe, SWiSH, various "slideshow makers," etc.
I'm not sure I understand "only support a small segment of the market." If your complaint is about Linux support, I feel your pain, but I'm sorry to say your argument is completely bass-ackwards -- Linux is the "small segment" while the vast majority of the market is Windows and Mac boxes. And Flash is installed on 99% of them.
h.264 is a codec for video support, flash pushes their own craptacular codec through their flash video players, if they wanted they could write the players to support h.264 as well.
Want rounded corners (like on this site)? (...snip...)
I sure do!
And when I do, all I need to do is this:
$(".things_i_want_to_round").corners("5px");
And it works. In IE 6+, Chrome, Opera, Firefox, etc.
That's great! So you wrote that cross-browser abstraction layer yourself, right? Hmm, ok, but it's already out there. So when IE9 ships and it's not compatible, you'll just jump in and submit a quick patch, right? Hmm, turns out the code is a little complicated. Ok, no sweat, just wait till those guys who maintain it release an update, right?
For all intents and purposes, this situation is the same as using Flash. You can't code to the browser "bare metal" because it is insanely fragmented and buggy. You have no choice but to use an abstraction layer that someone else wrote -- be it JQuery or Flash.
But, HTML 4 + javascript (with a good library) is functional across even more platforms.
HTML 4 + javascript is a broken mess -- without a DHTML framework to abstract things, you can't even write a site that works across multiple versions of the same browser, let alone multiple browsers and multiple OSes. And to avoid breaking, those frameworks basically need to be updated any time a major new browser version ships.
Those DHTML frameworks are awfully complicated to write, test, and maintain. I can attest to that, having been the architect of one myself. So for all practical purposes, to do anything useful with HTML+JS, you're wholly dependent on an abstraction layer that is maintained by some third party group. And that doesn't really sound much different from building on Flash.
That's funny, I went to YouTube a few weeks ago and it told me my browser was out of date and would have to be updated. I don't really see the difference.
Last I checked, it could only be used for authoring tools, not for writing an actual client/plugin.
Straight from the mouth of Adobe: "There are no restrictions on the development of SWF authoring tools, and anyone can build their own SWF or FLV/F4V player." (emphasis added)
I think Apple's proposed new licensing terms would ban this framework:
"Applications that link to Documented APIs through... [a] compatibility layer or tool are prohibited."
They basically want to make it impossible to write iPhone apps that share UI code with any other platform (including, or maybe especially, competing mobile devices where having very a similar UI in your app is perfectly sensible).
Uh, dude, that's not a bird... it's the mouse cursor. Watch a few seconds earlier and you'll see the spinning progress cursor in the same exact location.
Steve Jobs has been reported as saying that Flash sucks, is too slow and unstable, and takes up battery life. This is true.
You might want to ask all those other smartphone manufacturers why they're happily planning to support the upcoming release of Flash, then. Or could it be possible that Steve has other motives for keeping Flash out of the iPhone ecosystem?
on OSX, Flash is a disaster
Adobe has said in the past that API limitations in Mac-based browsers prevent them from bringing performance up to par with Windows. Someone just below in this thread posted a link to one of the Flash engineers explaining how Adobe and Apple are actually working together to fix this.
It's not about profit from the app store itself – it's more about how the app store can drive hardware sales. If you write a native iPhone app in iPhone-specific Objective C, your app is only available on Apple hardware. If most of the hot apps are only available for the iPhone platform, then it's a big win for iPhone/iPod/etc. sales – duh. So yes, it is all about the money.
Flash aims to give developers an easy way to write once, run anywhere for mobile – iPhone, Android, Palm, BlackBerry, more. That puts a big hole in Apple's "app store superiority" angle. And that's why they see it as a danger. IMHO.
Objective-J sounds interesting. But it's a real challenge to provide good tools when the runtime language differs so much from the code the developer sees. Can you set a breakpoint and step line-by-line through the Objective-J code? Or are you forced to drop down to the raw compiled JS? When you get an exception stack trace, are there tools to magically convert it from "native" JS back to Objective-J? Hats off if they can solve those challenges.
But Flash's ActionScript language has been able to do all those things for a long time. Right now, today, Flash enables that "write once / run anywhere" dream you're talking about. One codebase can target Win, Mac, browser, iPhone, Android, and more.
Personally, with that already here today I have no desire to hold my breath waiting for someone to fully wallpaper over all of DHTML's inadequacies.
Make no mistake about it Adobe isn't being quick to respond to the issue.
I don't know if that's fair. "Private browsing mode" is a relatively new browser feature. How could Flash support a browser feature years ago that hadn't been invented yet?
It's dinosaur technology built for the internet stone age. Time to get rid of it for good.
I get this funny feeling that you know very little about Flash. Coming from a background of AJAX / DHTML development, to me the Flash "platform" actually feels far more modern, stable, and well-designed (for web app development) than anything else out there. If anything, DHTML is what feels like an outdated hack on top of an even more ancient tech stack, little of which was designed with its current uses in mind.
Flash has never been a good player, they've just always been the only player.
That's not true at all -- Flash video competed with and beat players such as QuickTime, RealPlayer, and Windows Media Player. Flash became the de facto standard for web video because it was the best player, not the only one.
I actually like the design of HTML, and the direction it's going. From what little I've seen of Flash development, I can't say the same.
Then you really have seen very little of Flash development. As someone who has developed serious apps in both, the difference is night and day -- consistent, well-documented APIs (vs. a fragmented and buggy mess in browsers), far better backwards compatibility across runtime versions, stronger development tools and debuggers, ridiculously better networking APIs, a superior programming language, and one of the best UI frameworks (Flex) I have ever worked with, with a much more sensible layout model.
The versions of the swf that are open do not include all features. It's a "when we get to it" approach from Adobe. The end result is that they open up version 8 and then release version 9. We're now on version 10 and not all features are available. The end result is that the open plugins are never up to date and Adobe is the only place to go to, yet they get to keep the appearance of being open to dupe people like you.
The version 10 SWF spec is available right here. So let me get this straight: Adobe openly publishes all updates to the SWF spec, but none of the open source Flash-clone projects have actually picked up the updates yet... and that's Adobe's fault?
I'd also argue that you're living in Adobe's ideal world which is Windows. NONE of the flash plugins outside of windows support hardware acceleration, they're stuck on your core process support.
Until very recently, Mac OS didn't offer any public APIs appropriate for hardware-accelerating Flash's video decoding. The new APIs are the result of collaboration between Adobe and Apple engineers, and a new Flash beta is already available that uses them.
Only very recently did it get actual hardware-accelerated 3D. I'm pretty sure Java doesn't, but JavaScript is getting 3D support soon (they're in the nightlies of the major open source browsers).
Flash has been shipping with 3D support since 2008, so it depends on what you mean by "very recent." The browsers' 3D support is not part of any open standards process afaik... they each have their own, albeit similar, custom extensions to CSS transforms (which in CSS3 are officially 2D-only). It will be a good while before there is a consistent platform to build upon there...
What does JavaScript lack compared to Flash's ActionScript in this respect?
How about a cohesive API that doesn't vary dramatically across your different users' systems?
Adobe's problems can not be solved by hardware. They have buggy, crash-prone, security hole riddled bloatware.
The security hole statement is more of a meme than fact. Symantec reported that, in 2009, Flash had fewer vulnerabilities than any major web browser, including Chrome, Safari, and even Opera... In fact, if Apple wants to play the holier-than-thou game regarding security, they might want to get to work: Safari had 94 reported vulnerabilities, nearly 6x Flash's 16, and the second-worst of all browsers. Safari also had by far the longest lead time before patching: an average of 13 days, vs. ~1 for basically every other browser. And that's not even getting into all the holes in QuickTime and their PDF reader...
And regarding "buggy"... if there are bugs you know of in Flash, Adobe is listening -- so please, file issues when you spot them. But really, if you think Flash is beyond help in this area then I can't even imagine where that leaves most browsers :-)
It has not been in the license agreement for at least two years. Anyone is free to create a new SWF player implementation.
with Apple you get a choice (you don't have to buy their products), with Adobe, the choice rests with the content producer (website owner).
With Apple you rarely actually get a choice -- because they force the content provider's hand by making it prohibitive to create cross-platform apps. The vast, vast majority of apps people run on their iPhones are iPhone-native apps. You are locked into Apple hardware, Apple OS, and Apple app store.
Apple's done a lot of talking about openness and HTML 5, but they're not really walking the walk. Why can't HTML-based apps be sold via the app store? Why isn't apple working to build mobile-device APIs (GPS, multi-touch, accelerometer, etc.) into the HTML 5 spec? Why is mobile Safari's HTML 5 performance so terrible? Why does Safari's video tag only support one codec? On and on...
Plus, Apple has taken proactive legal moves to attack cross-platform frameworks like Flash and Unity. That shows how interested they are in portable apps vs. lock-in. Contrast with Adobe's strategy: Flash is free to end users and mobile phone vendors alike, anyone is free to create SWF authoring tools, and anyone is free to create SWF players based on the openly published spec for the format.
Flash has much better text rendering than HTML, particularly when you want to use a font other than Arial, Times, or Courier. But the better way to do it would be an image with alt text, of course.
In the meantime, Adobe would like to charge everyone to develop on their platform. They're content to making it so all web graphic design courses are centered around their tools and they're content to only support a small segment of the market despite trying to make these stupid claims of "uniform code for all platform" BS.
There are actually numerous free and/or non-Adobe tools for producing Flash (SWF) content: Flex, FDT, IntelliJ, haXe, SWiSH, various "slideshow makers," etc.
I'm not sure I understand "only support a small segment of the market." If your complaint is about Linux support, I feel your pain, but I'm sorry to say your argument is completely bass-ackwards -- Linux is the "small segment" while the vast majority of the market is Windows and Mac boxes. And Flash is installed on 99% of them.
h.264 is a codec for video support, flash pushes their own craptacular codec through their flash video players, if they wanted they could write the players to support h.264 as well.
Flash does support H.264 -- since 2007, in fact.
The license agreement has made it very clear, for at least two years now, that anyone is free to create an alternative player.
This summarizes it: "There are no restrictions on the development of SWF authoring tools, and anyone can build their own SWF or FLV/F4V player."
Now make your CS-software cross-platform, that would probably help a bit in that regard.
Uhh... the CS software has been cross-platform (Mac and Windows) for 15 years (e.g. Photoshop 2.5).
I sure do!
And when I do, all I need to do is this:
$(".things_i_want_to_round").corners("5px");
And it works. In IE 6+, Chrome, Opera, Firefox, etc.
That's great! So you wrote that cross-browser abstraction layer yourself, right? Hmm, ok, but it's already out there. So when IE9 ships and it's not compatible, you'll just jump in and submit a quick patch, right? Hmm, turns out the code is a little complicated. Ok, no sweat, just wait till those guys who maintain it release an update, right?
For all intents and purposes, this situation is the same as using Flash. You can't code to the browser "bare metal" because it is insanely fragmented and buggy. You have no choice but to use an abstraction layer that someone else wrote -- be it JQuery or Flash.
But, HTML 4 + javascript (with a good library) is functional across even more platforms.
HTML 4 + javascript is a broken mess -- without a DHTML framework to abstract things, you can't even write a site that works across multiple versions of the same browser, let alone multiple browsers and multiple OSes. And to avoid breaking, those frameworks basically need to be updated any time a major new browser version ships.
Those DHTML frameworks are awfully complicated to write, test, and maintain. I can attest to that, having been the architect of one myself. So for all practical purposes, to do anything useful with HTML+JS, you're wholly dependent on an abstraction layer that is maintained by some third party group. And that doesn't really sound much different from building on Flash.
That's funny, I went to YouTube a few weeks ago and it told me my browser was out of date and would have to be updated. I don't really see the difference.
Last I checked, it could only be used for authoring tools, not for writing an actual client/plugin.
Straight from the mouth of Adobe: "There are no restrictions on the development of SWF authoring tools, and anyone can build their own SWF or FLV/F4V player." (emphasis added)
I think Apple's proposed new licensing terms would ban this framework: "Applications that link to Documented APIs through ... [a] compatibility layer or tool are prohibited."
They basically want to make it impossible to write iPhone apps that share UI code with any other platform (including, or maybe especially, competing mobile devices where having very a similar UI in your app is perfectly sensible).
Uh, dude, that's not a bird... it's the mouse cursor. Watch a few seconds earlier and you'll see the spinning progress cursor in the same exact location.
Steve Jobs has been reported as saying that Flash sucks, is too slow and unstable, and takes up battery life. This is true.
You might want to ask all those other smartphone manufacturers why they're happily planning to support the upcoming release of Flash, then. Or could it be possible that Steve has other motives for keeping Flash out of the iPhone ecosystem?
on OSX, Flash is a disaster
Adobe has said in the past that API limitations in Mac-based browsers prevent them from bringing performance up to par with Windows. Someone just below in this thread posted a link to one of the Flash engineers explaining how Adobe and Apple are actually working together to fix this.
I might accept your argument if you exchange profit for the lock-in angle: Apple wants native apps so people "can't" move to other platforms.
That's exactly Apple's angle. Hardware sales is the cash cow and having the best app store out there is a big competitive advantage for that hardware.
It's not about profit from the app store itself – it's more about how the app store can drive hardware sales. If you write a native iPhone app in iPhone-specific Objective C, your app is only available on Apple hardware. If most of the hot apps are only available for the iPhone platform, then it's a big win for iPhone/iPod/etc. sales – duh. So yes, it is all about the money.
Flash aims to give developers an easy way to write once, run anywhere for mobile – iPhone, Android, Palm, BlackBerry, more. That puts a big hole in Apple's "app store superiority" angle. And that's why they see it as a danger. IMHO.
The iPhone (and many other smartphones) can do "way better than that" – take a look: http://mobile.photoshop.com/
The "Photoshop 1.0" app was not intended to be serious... it was just created for fun to mark Photoshop's 20th anniversary.
Yeah – the "download manager" is only used for ginormous files. E.g. all of CS4 is several GB.
Objective-J sounds interesting. But it's a real challenge to provide good tools when the runtime language differs so much from the code the developer sees. Can you set a breakpoint and step line-by-line through the Objective-J code? Or are you forced to drop down to the raw compiled JS? When you get an exception stack trace, are there tools to magically convert it from "native" JS back to Objective-J? Hats off if they can solve those challenges.
But Flash's ActionScript language has been able to do all those things for a long time. Right now, today, Flash enables that "write once / run anywhere" dream you're talking about. One codebase can target Win, Mac, browser, iPhone, Android, and more.
Personally, with that already here today I have no desire to hold my breath waiting for someone to fully wallpaper over all of DHTML's inadequacies.
Make no mistake about it Adobe isn't being quick to respond to the issue.
I don't know if that's fair. "Private browsing mode" is a relatively new browser feature. How could Flash support a browser feature years ago that hadn't been invented yet?
It's dinosaur technology built for the internet stone age. Time to get rid of it for good.
I get this funny feeling that you know very little about Flash. Coming from a background of AJAX / DHTML development, to me the Flash "platform" actually feels far more modern, stable, and well-designed (for web app development) than anything else out there. If anything, DHTML is what feels like an outdated hack on top of an even more ancient tech stack, little of which was designed with its current uses in mind.