Last week Steve Jobs posted his Flash manifesto, outlining why Apple has barred Adobe's Flash from Apple's mobile products, including the iPhone and iPad, and quite a brouhaha ensued. This brings up come important issues for those of us seeking to ensure that content we publish on the web has the broadest possible audience.
Apple has a long history of maintaining tight control over as many aspects of its products as it possibly can. After attempting to mimic success of the PC by allowing cloned hardware back in the 90's, it brought all hardware back in house. This has created a very unified experience on Apple products and limited customer frustration with hardware incompatibilities and other issues that have plagued PC users over the decades.
On the iPhone it's gone even further, requiring even all software to be approved by Apple (unless of course you've jailbroken your iPhone :). The apparently capricious nature of Apple's approval process has earned the company some backlash, and based on the utterly useless nature of the majority of iPhone apps that appear in the App store, I would argue it has done little to improve the overall quality of the applications available for the iPhone.
However, iPhone's brilliant user interface and sexy hardware have catapulted it to geek stardom, giving it a large, growing and fanatical userbase, which in turn draws more developers hoping to cash in despite Apple's restrictions. This spiraling process has produced some great apps.
It has also provided Apple with the ability to keep competitive software off the fast-growing platform, denying apps such as Google Voice under the auspices of the claim that they "duplicate functionality provided by the iPhone." This zealous control of the platform has lead to some developer frustration and a somewhat uneasy love/hate relationship.
Enter Adobe Flash. Flash started as a way to get animation on websites. Over the years it has gained remarkable penetration in the conventional browser market (98% of web devices outside of mobile devices support Flash!) and has really come into its own as broadband and video have become prevalent across the web. Flash is simply the only pervasive vector that can be used to show video across platforms on the web. It's also an easy to use tool that developers and designers can use to create sites that look rock-solid consistent across all different platforms.
Outside of the Apple/Adobe kerfluffle, Flash has some downsides of its own. First it's not search engine friendly at all. Although Google (and other?) search engines do now index some text in Flash files served by websites, the quality of the content provided by Flash sites is usually extremely limited and more difficult to extract compared to conventional HTML. Plus it lacks the semantic value found in HTML - how does one distinguish a heading from a paragraph from a list in a Flash file? Not possible.
Second, it's not very accessible. Again, some strides have been made to facilitate screen readers and other assistive technologies, however most of those enhancements require Flash developers to specifically add code/content to facilitate that, compared with HTML where such content is simply part of the implementation.
Finally, and perhaps more arguably, sites that are completely or in large part Flash are not very flexible. In fact, that's part of the draw - designers can work their magic and make something pretty, build it in Flash and it will look exactly as they designed it. Have a widescreen monitor you'd like to utilize? Hrmm sorry. How bout copying and pasting some text? Mmmm nope. But it looks just right!
So what's this all mean for those of us who like to publish content on the web? Well, you'll have to wait a bit cause this post ended up longer than I expected. So stay tuned!
UPDATE: there's a great post on wired/webmonkey that talks about a lot of the same background, although I disagree with some of his conclusions.