fusiongrokker

Thoughts on Steve Jobs' "Thoughts on Flash"

First, let me say that I'm thrilled that Apple finally decided to say something --anything!-- publicly about the topic. Living behind a curtain like that only leads to speculation, and that only leads to worse speculation, which leads to dissent. I know that I've personally started to feel some dissent because of the secrecy; so I'm hoping that more transparency will make things clearer, for better or worse...

Steve opens with an explanation of Apple and Adobe's history, and their working relationship both past and present. What he neglects to mention is that Apple is currently an $8 billion per year company, and Adobe is about a $900 million per year company. By comparison, Apple has "F You Money" [strong language]. They can, and in my opinion are, swatting Adobe like a fly on their neck. That's their privilege. I'm not saying it's right or wrong, I'm just saying it's happening.

Steve is obviously deluded about what defines Openness -- specifically, an Open Platform:

In software and web-based architectures, an Open Platform describes a software system which has published external programming interfaces that allow using the software to function in other ways than the original programmer intended, without requiring modification of the source code. Using these interfaces, typically known as an Application Programming Interface (API), a 3rd party could integrate with the platform to add functionality. An Open Platform does not mean it is Open Source. An Open Platform can consist of software components or modules that are either commercial or open source or both. [Emphasis my own]

So, by Steve's description, Flash is a "closed" platform because Adobe aren't giving out the source code to the runtime. But the iPlatform (iPhone, iPod, iPad) isn't an open source platform either, sooooo where were you going with that, Steve?

On top of that, iPlatform requires you to buy a $100 SDK license and absolute-minimum of $600 in hardware (a Mac Mini, but you'll likely want to spend more than that for something more powerful) -- just for the privilege of developing on it. I guess the price gouging just to get in the door doesn't make it closed, but I see it as underhanded.

By contrast, I am under the impression (but not positive) that Adobe doesn't even require you to use their tools (i.e. Flash Professional), let alone force you to buy their expensive hardware, to create flash movies and applications. I don't think there's anything stopping you from using another IDE to write a flash application and compile it to SWF. Adobe sells lots of copies of Creative Suite not because the rules say that Flash developers have to use it, but on the merit of the software -- that is, their authoring tools are the best available. If Apple wants you to use XCode to write iPlatform apps, in my opinion, they should make XCode the best possible option. Win, but do it the right way.

With recent developments, Apple is now taking steps to shut out tools that enable cross-platform development; namely the Flash CS5 iPhone compiler. I'd say that alone --by definition!-- makes iPlatform a closed platform. But Steve says it's the other way around. Right, ok... Sure, Steve.

He says that Webkit is open, but he's wrong. What he's confusing here is that Webkit is open source, it is not an open platform. If it were an open platform, there would be a rich ecosystem of plugins that enrich the user experience, like Firefox. Heck, Google took that open source platform and made an open platform out of it. They called it Chrome (have you seen the extensions?), and in my opinion it kicks the crap out of Safari.

Apple's OSX is an open platform. The iPlatform is not. There is no gatekeeper for OSX, yet it thrives. Good software floats to the top, crappy software fades into obscurity. The same can not be said for the App Store, though I wish it could.

I openly concede on the point of video. Flash may not be the future of online video, but it deserves some respect for making the last few years of web video possible.

We also know first hand that Flash is the number one reason Macs crash.

I don't work for Adobe, and I don't have any inside information, but I can make what I think is a pretty safe guess that a big part of the reason Flash crashes (air-quotes) "so much" on Macs is that things that are better done by graphics hardware than software have been off-limits. If those APIs had been open, then the software wouldn't have to work so hard, wouldn't need so much power and memory (and all of this applies to video playback as well), and --to your point, Steve-- it would have been more stable, and more time could have been spent making it more secure. In my opinion, the finger pointing on this issue should be directed at yourself.

Flash is not without its blemishes; and security is a big one. I wish it were better. But it is not alone in this regard. Java, ActiveX, and so on have had just as severe weaknesses; they just aren't as vocalized because Flash is more popular, at least recently, because of all of the good it does. It is less important to be perfect out of the gate, and more important to be proactive as well as reactive, and aggressively patch security holes. Nobody is perfect, but I think Adobe does a very respectable job at it.

The battery life argument is also mitigated by opening up the hardware API's. Make the software do less and it will consume less power. That's a pretty simple conclusion, right? This is a pretty dumb point for Steve to harp on, so I won't spend any more time on it.

iPlatform is a touch-based platform, but doesn't support roll-over. (In exchange, we get shake! What a croc!) That said, it is simply not difficult at all to switch some code from listening for a hover event to a click event. If a menu was displayed on hover before, it will be displayed on click now. So the whole argument that "you have to rewrite your apps anyway, you might as well switch the platform and start from scratch!" makes absolutely no sense. When faced with the decision between starting from scratch with a new language, on a new platform, and new tooling, versus changing a few lines of code, the cost-effective and time-effective decision should be obvious. (Hint: Change the few lines of code)

Lastly, Steve argues that any layers between the developer and the iPlatform SDK are bound to have some drawbacks, and he's got a point. When writing applications one time that will work on multiple platforms, trade-offs will be made. But what I don't agree with is him deciding for me. I'm a grown man, and it should be up to me to decide what tools to use. If my choice in tooling results in a lower quality application, so be it! If Apple releases some awesome new features in the SDK that my middle-layer doesn't support for 6 months, so be it! Those are the consequences of my choices. He is ignoring the fact that it is possible to write awful, slow, buggy code in any language, including Objective C; so forcing a language down someone's throat does not solve that problem.

He goes on to say that Creative Suite took a very long time to convert over to Cocoa, and he's right about that. But can you name a single application for OSX that's larger and more complex than just 1 of the 15 applications included in Creative Suite? Maybe you can, I can't think of any right now; and even if you could, would it come close to all 15 combined? I think not. There was a lot of work involved in that conversion. Give credit where credit is due.

He also conveniently neglects to mention that those lazy developers over at Adobe managed to get a public beta of Flash 10.1 online with H.264 hardware decoding support about a week after the APIs were opened up. How's that for lag time, Mr. Jobs?

Posted in Adobe | Apple | Flash | 16 Responses  

16 responses:





Leave this field empty: