Apple has posted Steve Jobs’ “Thoughts on Flash“. There are a lot of lies and half truths. No one will care. The article has enough valid points that people won’t check up on them.
That said, here’s my attempts to correct the lies.
Lie #1: “Adobe’s Flash products are 100% proprietary.”
The Flash IDE, yes. The Flash Player, no. Here is a list of technologies open sourced/published by Macromedia/Adobe that are in the Flash Player ecosystem:
- ActionScript 3 runtime, called Tamarin. Given to Mozilla to hopefully utilize in future browsers.
- RTMP (and it’s ilk), the protocol for real-time video & audio streaming as well as data (AMF). Yes, many want “more” open sourced. Red5 and Wowza seem to be doing just fine with what is there currently.
- The SWF format itself, which is what Flash Player plays/runs, has most of it’s spec published in case you want to generate SWF files.
This street goes both ways, too. Macromedia/Adobe has adopted open source technologies into Flash Player with the hopes of embracing standards, not just the de-facto ones.
- ActionScript 1, 2, and 3 are all based on EMCAScript. Yes, it’s not as compliant as many would like. Additionally, Adobe did participate in many ECMA Script discussions/debates. Yes, 4 didn’t turn out so well for Adobe.
- The XML parsing is based on E4X, ECMA Script for XML.
I’m not saying Adobe’s open sourced a lot of the Flash Player. There’s open source, there’s published, and then there is open source.
Regarding their products, he’s wrong there too. The Flex SDK, one of the biggest boosts for the Flash Platform in the past 4 years, is also open source (yes, the real kind). Most utilize Flex Builder, built on top of the open source Eclipse.
Using a blanket statement saying Adobe’s Flash products are 100% proprietary is a lie. It paints an incorrect & negative picture over all the wonderful things Macromedia/Adobe have done in open source around their products.
Lie #2: “HTML5 being adopted by Google”
Google created the first browser to fully integrate plugins, and continues to work with Adobe to do so. Google also utilizes Flash Player in Gmail for both file uploading, and configuring your web cam. Google utilizes Flash Player in their online maps product for street view. Google Finance utilizes Flash Player for a lot of their charts. Their video site, YouTube, utilizes Flash Player for their videos.
Google didn’t start out with Flash. They started with text, AJAX, and later Flash. They’ve done a lot of forays into HTML5, yes, and will continue to do so. Saying they are “adopting” it, and only it and not Flash Player, is incorrect.
Lie #3: “…75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads…”
Incorrect. If a video is H264, that doesn’t mean it can play on the iPhone. If you look at the iPhone specs, you’ll see the only support a subset of what H264 offers, specifically 2 major components to quality video: Using a maximum of the Baseline profile, with Simple for higher bitrates/resolutions, as well as 2.5 for maximum (ish) bitrate.
Not all H264 videos conform to these specs. YouTube converted a lot of their Spark (Flash 6/7) videos to H264 to support iPhone because there was money to be gained in the large investment. Even so, not all YouTube videos work on the iPhone, in part because of the aforementioned reasons. There is a reason why when you upload a H264 video to YouTube, they’ll often re-encode it.
I’ve been in web video for 7 years. Getting video to work in the browser is the easy part. Setting up video encoding farms to support thousands/millions of users is not. It’s hard and expensive. Not everyone has the resources (read money and time) Google has, and that’s why companies like Brightcove are trying to capitalize on this problem.
Most importantly, HTML5 currently has no universal DRM solution. That is why Flash Player’s RTMPE, and soon HTTP Streaming via Project Zeri, are the de-facto standard today. Those who deploy video content they either own or license the rights to will not utilize HTML5 because it cannot be protected. There is a reason you rent videos in iTunes using their <strike>ACC</strike> MP4 format vs. straight H264. Legally, those videos CANNOT be utilized via HTML5.
Also, Hulu.com and others aren’t using H264, they’re using On2′s VP6.
Lie #4: “users aren’t missing much video.”
Every time a user see’s a blue lego instead of the video they wanted to see, they are missing a video. There were so many people seeing the blue lego, including Steve Jobs himself on stage demoing the iPad, that they removed the blue lego as a PR effort to make it seem like there was something wrong with the website itself vs. the iPhone/iPad.
…thankfully, Grant Skinner added it back.
Lie #5: “…Flash has recently added support for H.264…”
Incorrect. It’s been there since August of 2007. That’s almost 3 years. That’s a long time in technology.
Lie #6: “…must be run in software…”
Not entirely correct. Apple FINALLY gave Adobe and others access to hardware for desktop systems, which Adobe has recently utilized. The #1 criticism for Mac’s & Flash video is lack of hardware acceleration. This move by Apple will go a long way to improving video experiences, not just for Flash, for browser based video. Meaning, cooler Macs and more battery life.
For mobile, Safari/WebKit is using H264 hardware decoding just fine. They just won’t expose it, forcing yet again, Flash to utilize a sub par video experience for iPhone (having to launch a URL to utilize the iPhone’s default video player vs. incorporating the video into the experience).
Lie #7: “…When websites re-encode their videos using H.264, they can offer them without using Flash at all…”
See #3. Also, not all Flash video is just a video block on a page. Some are immersive experiences, games, or involved in compositing with other objects (alpha channels, easier particle systems, etc). HTML5 does not currently support some of these features.
Finally, not all video is pre-recorded and progressive. Live and streamed events are currently done using Flash Player and Silverlight. Yes, I’ve seen systems that can do live H264 via progressive with only seconds latency over CDN’s, regardless, they aren’t what’s being used en masse today. This includes DVR like functionality that both technologies offer, including Adative Streaming capabilities to ensure you can see un-interrupted video regardless of your internet connections’s integrity.
Lie #8: “…Flash was designed for PCs using mice, not for touch screens using fingers…”
Incorrect. The whole reason Flash Player has continued to stay ahead of the curve is because Macromedia/Adobe innovates it. There are gesture & touch API’s in the Flash Player; I and many others have used them for the iPhone resulting in a 100+ apps on the App Store.
Lie #9: “For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot.”
Incorrect. This was already discounted 2 months ago by Mike Chambers. Additionally, I tested both MouseEvent.CLICK, MouseEvent.MOUSE_DOWN, and MouseEvent.ROLL_OVER, and all 3 worked just fine on my iPhone. Additionally, I’ve seen video of a Nexus One using the native Flash Player 10.1 that plays a Flex website I made just fine with no code changes to support touch.
Lie #10: “Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover.”
Incorrect. There are roll over states for buttons on the iPhone/iPad because you can click/touch on something, which shows the roll over state, but then drag off to not trigger the up, thus canceling your button click if you didn’t meant to touch something. Works the exact same way as a mouse does.
Lie #11: “Most Flash websites will need to be rewritten to support touch-based devices.”
Incorrect, see Mike Chambers’ post in #9.
If both wish to utilize Gesture or Touch events, then BOTH need to re-write/adjust their content to support these events.
Lie #13: “The avalanche of media outlets offering their content for Apple’s mobile devices demonstrates that Flash is no longer necessary to watch video or consume any kind of web content.”
Incorrect. See #3. Media companies will have to create players like Netflix did to support those devices; these aren’t HTML5, they’re Cocoa.
Half-Truth #1: “Adobe was the last major third party developer to fully adopt Mac OS X.”
iTunes, flagship Apple software product enabling the success of the iPod, selling over 1 billion songs, and empowering digital movie rentals, isn’t Cocoa.
What really matters are features and user experience, not the developer technologies used to make them.
I agree with everything else the article says. While the spin is HTML5 is better than Flash, Apple wants you developing with Cocoa, not HTML5; that’s where the money and good user experiences are. While many have said that the PR person responsible for writing that article is doing Apple a disservice, I disagree. Yes, they do lose creditability writing that many lies, and yes, this just fuels the fire for many developers, not just Flash Devs, to focus on Android instead of iPhone.
However, iPhones and iPads still rock. While Apple is “only the 10th” largest phone manufacturer, they are the only mobile platform people care about right now in the USA (unless you’re a pissed off Flash/Flex Dev). Their app store, combined with the user experience, is un-matched.
Me? I’m still trying to learn Cocoa so I too can participate in building applications for these wonderful devices; devices whose sales won’t be hurt by that article. My colleagues in the industry? Most are heading towards Android along with Adobe. Those moonlighting in Flash & iPhone development simultaneously don’t say much, beyond correcting & helping me with my Objective C knowledge on Twitter (y’all rock!).
…oh yeah, and someone cast Cure 2 on Adobe.