Steve Jobs has made a lengthy news release summing up his position on Adobe, and clearly he isn’t pulling any punches. Let me first say that I am a Flash Developer, and I am an iPhone developer. I don’t really care about having Flash on the iPhone. I agree that performance is lacking and I would rather my apps run as fast and efficiently as possible. This is why I use a combination of ObjectiveC and C++ to author my apps. If the argument had stopped on the performance issue I would have had no problems with Apple’s decision. But, I really take issue with Apple painting itself as the champion of free and open standards when everything about their company and their platforms is about maintaining the maximum amount of control. You cannot install applications on your iPhone without Apple first approving them. You cannot sell your own applications via your own distribution channel. Apple can arbitrarily decide to pull an application at any time for any reason with no recourse. The iPhone is a closed system because Apple wants to provide the best user experience (which sells phones) and because Apple makes more money off of apps, movies and music that way. I think it’s probably better for developers too. But, the iPhone is proprietary because it’s good for their business and the same goes for Adobe. Can you imagine if your desktop was this locked down? Don’t think that Apple isn’t already planning how they can bring this kind of closed system to the desktop.
Steve rants a lot about how Flash lacks hardware support rendering support on the Mac. He neglects to say that Apple only recently made it possible to use hardware rendering features in a Safari browser plugin and even then, it’s only for decoding videos. Flash on the PC enjoys hardware acceleration for a number of drawing tasks because it’s easier to access those features on that platform.
The issue of Flash lacking mouse overs on a touch screen is a total non-issue. Just like developers have had to build special versions of websites just for the iPad and iPhone, they could just as easily make versions of their Flash pieces that don’t need mouse overs and optimize them for touchscreens. Is it better to provide a big blank space on a website or allow users a less than optimal experience? The majority of websites lack good mobile implementations, but that doesn’t mean that people shouldn’t ever use them on their iPhones. There are tons of HTML sites that rely on rollovers too.
He makes the claim that Flash is no longer necessary to provide video, which is either false or just unrealistic. A large percentage of computers (mostly old or corporate PC’s) still run IE6. The only way to provide video and rich content to them is through Flash. HTML5 is great, but features are not consistently implemented across all browsers yet to the degree where a web developer can target it exclusively. Flash is going to stick around for a long time because of this. Realistically, developers will just have more platforms they need to target and test for.
My biggest problem with Steve’s stance is that he is seemingly against any use of frameworks that build on top of ObjectiveC. This effectively cuts off any kind of cross-platform development where an application can be developed once and run on multiple platforms such as Android, iPhone OS, Symbian or even desktops. There are already thousands of apps in the app store that have been developed this way, including some of the top selling apps and it shows shortsightedness on Steve’s part. Not every framework is slow or inefficient. Let the app review process weed out poor apps, but don’t handicap developers by hindering innovation or disallowing tools that save time and money. There is already plenty of junk in the app store developed with 100% Apple tools.
Finally, this whole argument seems to be biting the hand that feeds for Apple. A good portion of Apple’s most die hard fans are creatives. People who live and work all day using the Adobe suite of products. Instead of complaining about how bad Adobe’s stuff is (and there is a lot of valid criticism here), I’d like to see them working together to fix the problems.
UPDATE: Here’s a video which makes another good point that kinda destroys Steve’s argument – HTML5 performance is way worse than Flash, and will be just as bad for battery life (especially once people start trying to do the same interactive stuff currently done with flash).