ed. note - I've removed some statements, and added others. The one's that I've "removed" are now decorated with strikethroughs, and the additions are in pretty Blue.
In my time as a web developer, I’ve had to deal with a wide range of browser-based solutions for everything from JavaScript, CSS, HTML, XHTML, and Flash. While I’m not a particularly large fan of Flash, I do think it’s an important part of the internet today. When properly used, Flash-based content can rock your world. Hardcore. While that may not often be the case, it’s still a truth.
The developer/designer community likes to use it with what seems to be a reckless abandon. There are entire shops who specialize in making face-meltingly awesome Flash sites. While it may not be my cup of tea, it’s still something the web at large needs to support. Browsers should support it (with exceptions). I can understand my cell phone only having a somewhat cursory support for it in it’s browser (oddly enough, the interface is Flash – go figure), but high-end phones and computers should support it.
It’s interesting to look at the debate surrounding Apple’s iPhone, iPod touch, and iPad. It can be difficult to admit, but Apple’s getting somewhat shafted on their end of the deal. People want Flash for it, but that same outcry has not been heard for companies like Blackberry (which is getting support later this year). In some cases, people DON’T want Flash support for their mobile device - see the comments on the previous link for some examples. However, that discussion is best suited for another writeup entirely, because part of this problem rests on how the iPhone, iPod touch, and iPad are positioned within the market.
Recently, Jobs posted a piece called “Thoughts On Flash”. He provides 6 reasons Flash is not, and will never be, supported on their mobile devices. It’s easy to read it and say “Oh, yeah, that makes sense”. Allow me to switch to my “brutal honesty mode” and say this:
Steve Jobs is full of shit.
Yes, I said it. Reread that a few times until you realize why.
If you don’t see it yet, let me provide a few glaring examples of how this writeup is terrifyingly bad. This snippet alone provides plenty of fodder:
"…many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?"
This entire part is so bad it even provides its own counter argument. It’s so poorly constructed that I have a hard time understanding how he could be so dense.
He says "many Flash websites rely on 'rollovers'". Cool story. What metric are you using to determine that? Oh, none? Cool. So using his LOL TECH-NO-LO-GY SCIENCE methods, we could construct the EXACT SAME ARGUMENTS about JS and CSS. I’ve built rollover menus using both methods. I’ve seen a HUGE amount of sites that use JS to build rollover menus. Using his logic, these sites should now all be re-written because Apple’s oh-so-highly acclaimed touch interface can’t do rollovers.
I am going to take a second here to look at every single iPhone user who has ever generalized the argument that Apple’s touch interface TEH BEST EVAR LOL! I want you to understand something: your oh-so-precious device cannot simulate rollovers. And there is no technological reason not to. None. Period. In fact, I’m so generous, I’m going to give the solution right here, night now, for free: in the context of the web browser, register a gesture that’s not likely to get confused, like say a press+hold as being your mouseover. Distinguish between this and touch+drag as two separate actions. It’s not hard. Or, y'know, use your experience from adding multi-touch to your laptops and mice. Just sayin'.
You pride yourself on touch interfaces, and then ultimately fail to recognize how to construct even simple ones that allow me the same functionality as on a desktop.
I was made aware that at least the iPhone and iPod Touch do, in fact, have a method to support a mouseover-like gesture that's used for JavaScript and CSS based solutions, which makes this argument all the more painful. That means this part of his argument is completely invalid in my opinion.
Moving on from his absolutely invalid arguments about how the fucking web should work, let’s look at the section titled "First, there's 'Open'". Specifically, these parts:
"Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system."
This is fair. 100% fair. Albeit a little bit of a Pot and Kettle situation. It's fair, though. But…
"Apple even creates open standards for the web. For example, Apple began with a small open source project and created WebKit, a complete open-source HTML5 rendering engine that is the heart of the Safari web browser used in all our products. WebKit has been widely adopted. Google uses it for Android's browser, Palm uses it, Nokia uses it, and RIM (Blackberry) has announced they will use it too. Almost every smartphone web browser other than Microsoft's uses WebKit. By making its WebKit technology open, Apple has set the standard for mobile web browsers."
So wait, you wrote a rendering engine, open sourced it, and people use it. That means that you’re all about open standards? Huh? Let’s make sure we understand the core of this whole "Standards" thing, especially when it comes to HTML5. As of right now, HTML5 is not a standard. It is still in working draft, and will remain so for quite a while longer. Early adoption is one thing, but saying it's a standard is more than a little off.
On top of that, he fails to mention another little commonly used language that's maintained by a third-party group that injects their own layer into things, much like Adobe: JavaScript. And CSS. And HTML. And XHTML. While these are not driven by companies that are interested in generating a good bottom like for revenue, it's important for us to recognize that his entire part about Flash being maintained by a group separate from Apple can be applied to the languages he suggests we use.
Also, HTML5 includes an API for drag and drop functionality. How will they support this if rollovers in Flash are such a hassle? Hummm…
All of this ignores the whole "Apple = Closed System" thing. But whatever.
Finally, Jobs provides a little snippet in his writeup that really bothers me for a plethora of reasons:
"...we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform."
This irks me, because it completely ignores two of Apple’s largest assets: financial backing for advertising and brand recognition.
It’s no secret that Apple's advertising campaigns are huge. They always have been. Even their first big ad was smartly conceived. They know how to advertise their products to people.
Their brand recognition borders on insanity. They've coined a look and feel, and have done so extremely well. Think of it like McDonald's. The white Apple logo vs. the Golden Arches. Both are easily recognized logos, and the Apple aesthetic is also extremely recognizable. Name any other technology company that has done as well in that arena and you get a gold star.
This argument also hints towards that mantra of "APPLE = REVOLUTIONARY O.M.G.". Yes, in the old days they were. They were ahead of their time. But they are not any more. The slate PC concept was not theirs, and their slate PC isn’t even a real computer in the first place.
The rest of this piece delves into other reasons he believes Flash is ultimately bad for the web. Another sizable chunk of his argument is simply criticizing Adobe for some of their products. None of his arguments really seem to address the core reasons and beliefs he has about why Flash is not coming to his mobile devices. Instead, he's noting things he sees as issues with Adobe as a company, and not Flash as a product, that are – for the sake of this argument – completely irrelevant to the issue at hand.
At the end of the day, it's easy to see why Jobs wrote this. He read Mike Chambers piece "On Adobe, Flash CS5 and iPhone Applications" and was pissed. Chambers came out and criticized Apple, and did so with a no-holds-barred style – something many appreciated.
I wonder what would have happened if Jobs had simply come out and said "This cuts into our profit margins". That is a simple, and understandable answer. But to write a loaded piece that holds very little in the way of a valid argument is a bad move.
This all irks me so much because Jobs has the audacity to complain about something like rollovers on the web while trying to place the blame on everybody but his own company for the fact that these rollovers cause problems on their touchscreen interface. This is one company with a subset of products that is now trying to dictate what sort of an interface we should construct for the web. Think about this for a second. Jobs has the gall to actually try to tell us that we need to write a completely separate fucking interface to play nice with his shit. This is after all the hype about how "OH MANS CHECKITOUT ALL THESE DEVICES HAVE FULLY COMPLIANT BROWSERS GUESS THAT’S PRETTY AWESOME RIGHT?"
Wrong
Get bent, Jobs.