Steve Jobs on Flash: Correcting the Lies

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:

  1. ActionScript 3 runtime, called Tamarin.  Given to Mozilla to hopefully utilize in future browsers.
  2. 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.
  3. 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.

  1. 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.
  2. 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.

Lie #12: “If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?”

Those same JavaScript Developers need to do the same work Flash Developers need to do: Nothing.

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.

Gruber, the same guy who Apple apparently used as an example of why Flash doesn’t belong on the iPhone, was quoted, when referring to why Apple hasn’t ported iTunes to Cocoa:

What really matters are features and user experience, not the developer technologies used to make them.

Conclusions

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.

130 Responses

  1. you kinda hit the nail on it’s head with this article.

    note that jobs will and it does anything to discredit flash in the eyes of it’s mobile users. imagine flash/AIR 10.1 running perfectly on iPhone’s safari.

    now imagine the paycheck from appStore.

    right. you have millions of games/applications available in your browser for FREE. free usually is bad for business. but plain out lying,… well… he can, because of the marketing engine.

    for that i say, i have a thing in my pocket, it is not one thing, it’s many, AT the SAME TimE (multi-thread).

    personally i don’t think flash player should be other then Adobe flash player. after all those years of html PAIN i have learned my lesson. i am perfectly fine with the idea of Adobe writing the code for browser, not browser for Adobe.

    i don’t want w3c to get hold of flash. they will mess it up like they messed up html, css, js. if you are a developer working for a swiss company where 1px or 10ms is everything, you realize how fucked up html really is.


    Lie #12: “If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

    THIS IS A CLEAR INSULT TO OUR INTELLIGENCE. Jeeeeesus Christ!!!

    HTML is a 20 yo shit worth of textual content format.

    js is the slowest script ever to hit a browser (maybe not, but it’s still slow).

    CSS is a dream, an idea, an illusion, since it is interpreted 2000 different ways by 2000 different browsers.

    and for Jobs these are modern technologies. they barely rise to the criteria of what a technology is.

    so this is why apple is doomed if he does not get’s it’s sht together.

    they are (right now, not really) at the front line of many concepts of IT, i respect that. but they also should respect their customers and developers. price tags don’t show this.

    in my opinion, there should be thousands of plugs like flash, to learn the braindead mass of humanity to flex, learn and bend. a static mind is not a mind.

  2. [...] swoim blogu, deweloper oprogramowania pisanego w technologii Flash – Jesse Warden odpowiada na otwarty list Steve’a Jobsa “Thoughts on Flash“, obnażając “13 [...]

  3. Michael

    @encoder> I couldn’t agree with you more. I’ve developed hundreds of Javascript applications using DOJO and JQuery. I’ve created hundreds of Actionscript applications with flex. I always make more money, have more free time and feel more confident when developing flex applications. Little to no browser incompatibilities.

    You’d have to pay me a whole lot of Dead Presidents to f**k with Apples BullS**t.

  4. Flash Sucks

    http://techcrunch.com/2010/05/05/scribd-html5/

    Flash developers are abandoning the dying proprietary, closed Flash platform for HTML5.

    Lazy Flash developers will soon be out of job and on the streets. If you’re smart, you’ll migrate to HTML5. If you’re stupid, stick with an unwanted, CPU hogging dying platform.

  5. Very comprehensive post!

    I’m worried that most of the zealots won’t care a bit about this stuff – taking every single word coming out of Steve Jobs’ mouth for granted.

    I wonder though whether Steve Jobs really believes in the obviously misleading stuff he put together in “Thoughts on Flash”. It’s kind of frightening that such an influential individual totally disregards reality.

    Make no mistake, Apple is Big Brother!

  6. Dave

    The iPhone 3G[s] and the iPod Touch 3G can play High Profile video. I’ve verified this, and it’s been reported elsewhere. (Some people report it can play 1080p video but iTunes won’t let you.)

    Also RTMPE is quite useless; rtmpdump easily circumvents it. I’m sure Project Zeri HTTP streaming will be circumvented as well.

    And what do you mean by ‘straight h264’? All the h.264 video I’ve seen on the web is either in an F4V container or an MP4 container; the only time I see “straight” is when I demux the streams to transcode.

  7. @Dave I’m referring specifically to Adobe’s CS5 iPhone exporter. It only plays Spark and VP6, not H264. Of those 2 codecs, it only plays them in software, thus taxing CPU and battery life.

    Saying RTMPE is useless shows how utterly ignorant you are of the business of video. Fox News, ESPN, MLB, NFL, HBO, and many other large organizations all utilize Flash video, and a lot RTMPE to ensure their content is protected. Yes, it’s uber easy to steal via RTMPdump, but it was just as easy to steal Windows Media streams, as well as DVD’s via DeCSS, etc.

    We all know padlocks are easy to break, but you use them to send a message you care, and you’ve secured the premises; this makes thieves move on to easier targets. It also allows you to sell video solutions to clients vs. “no, we can’t protect your content, sorry… everything is hackable, so… we just didn’t try at all”. That attitude is not how you win business

    Straight H264 is slang for an H264 encoded file that has a 3gp or h264 or (sometimes mp4) file extension. You can play this in any video player like Quicktime, VLC, etc. These vanilla H264 files, without any strange things done to their wrapper, or uber-tweaked atom files, can just as easily play in Flash Player.