Some thoughts on Jobs’ Thoughts on Flash
Today Apple prominently published a statement about Flash and Apple’s stance on it.
This is really interesting and I’m glad to see a straight-up, public statement about the situation. It is clear that there are (at least) a host of technological issues behind the Flash absence. Pundit rebuttals about Apple not adopting such-and-such for business reasons have never made any sense—it would only behoove Apple to extend their market further and further, except at the cost of the UX and performance. It never ceases to amaze me that all the Flash-haters suddenly started bitching about Flash’s absence on iStuff just because they hate Apple more. Hypocrites.
Anyway, the third-party development thing is still foggy, I think. First of all, having gotten deep into the iPhone APIs and objective-c this semester, it is clear beyond any doubt that apple’s SDK cares foremost about consistent, effective UI and high performance. Anyone who disputes this simply does not know what they are talking about.
We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform.
Defining “third party layer” can be tricky, but ok, sure, nobody wants sub-standard apps (meaning worse performance than it could have had otherwise).
If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.
In general I’m inclined to agree here but then, the same argument could be made about a developer choosing to adopt changes in the native APIs in the first place. What he (and others) seems be saying here is that third-party dev platforms (again, not sure exactly what this includes and excludes) encourage laziness and are less likely to perform as well as native APIs. Maybe, at best.
Regarding cross-platform dev:
Hence developers only have access to the lowest common denominator set of features.
Maybe, though there’s no reason the platform couldn’t offer device-specific options that do follow up on new API developments.
It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps.
Now that I definitely concur with. I can tell you from my own painful experience that the majority of Flash developers are total hacks who wouldn’t know a bit from a byte and couldn’t manage memory to save their lives. But who could blame them, since they’re encouraged to program that way? Indeed, the whole premise of Flash started out as, “Oh noes, programming is scary!! Help me to not have to learn!”
I can’t help but think this dances around a development ideology issue: cross-compiled, garbage-collecting, “lazy” development that is not geared towards optimizing for its device, and old-fashioned tweak-the-shit-out-of-this-app-until-it-can’t-possibly-get-any-faster. Yes, the latter is hard than the former. My question is, why the antagonism towards the latter?
Curious to hear some other thoughts on this.