?

Log in

No account? Create an account
Previous Entry Share Next Entry
Reasons why you don't want managers (or lawyers) writing your contracts and processes
device
jducoeur
[Really, I don't intend this journal to be an extended rant about Apple. But as Apple in the 2010s becomes more and more like Microsoft in the 1990s, or IBM in the 1970s, there is just so *much* idiocy to talk about.]

An interesting flap has arisen in the past few days -- I found out about it from this brief note (and great comment thread) in Lambda the Ultimate. The summary is that the iPhone OS developer's agreement has gotten locked down even further, requiring that "Applications must be originally written in Objective-C, C, C++, or Javascript".

Anybody who knows anything about programming knows that this is idiotic. They are requiring languages that are, by and large, old, slower to write in, and more prone to horrible bugs than many alternatives. As worded, it not only forbids better languages, it forbids bytecode interpreters and even language translators. The consensus seems to be that they are attempting to prevent Adobe from writing cross-compilers that target the iPhone, but they are doing it in the crudest possible way. The result is a growing revolt among developers, such as this declaration that Scheme is dead on the iPhone.

Mind, I think this was mostly a stupid mistake, and that Apple will quietly back down and say that this wasn't what they intended. (Which I think is probably somewhat true: I think everyone has gotten caught in the backwash of the Apple / Adobe war.) But it does illustrate the danger of Apple's "everyone will work exactly as we tell them to", highly-centralized mentality.

Paul Graham's article on the dangers of the App Store's approval process is right on target here: Apple seems to have forgotten (if it ever knew) how modern software development works. I mean, I find it pretty appalling that apps can spend weeks (even months) wending their way through the process for each version -- that's just a recipe to make sure that it takes too long for bugfixes to get into users' hands. I'm used to the Android side of things, where a typical Android app has two releases *per week*, and the turnaround time from a bug report to a fix is often 12 hours for the best developers.

When the Droid came out, the ads boasted a couple dozen reasons why it was better than the iPhone. But the one that got me was the development process, which just plain made more sense for getting great software. So far, I haven't seen any reason to change my mind about that: in the long run, I think it's a definite competitive advantage for the Android platform, and a reason why I think Apple is continuing to shoot itself in the foot...

  • 1
There is another new clause that is annoying developers which isn't getting quite the same coverage. You are no longer allowed to put code in your app which sends device information to a third party. This means no Flurry Analytics or similar. My guess is the reason is that it is a source of leaks about prototype systems, but I've heard Flash does this sort of thing too, so it could be more fallout from that battle.

Hmm. I wonder what the definition of "third party" is. This is a potential headache for all sorts of cooperating systems -- not just analytics, but also game systems and lots of other examples where companies are providing services to each other...

I'm wondering if this might be a more direct assault on Open Feint's gaming network, which most people declared dead when Apple announced its on gaming network.

I think it is ok as long as you aren't sending device and OS version information to the mothership.

I bet this is to keep anybody from using a competing ad network.

“I mean, I find it pretty appalling that apps can spend weeks (even months) wending their way through the process for each version”

I'm not going to defend Apple's app approval process. I think their closed application approach is one of the biggest negatives about the iPhone. That said, approvals are typically much faster than that. When I put my app through, it was approved in about three days. Yeah, it shouldn't need Apple approval in the first place, and it's still not instant, but I gather that's far more typical than the weeks or months that sometimes gets reported.

Interesting -- I wonder what accounts for the variations? Is it simply complexity of app? I'm honestly unclear on *what* they are checking for in this process, and how automated the checks are. Are you submitting source code? (If not, the new rule is kind of bogus and unenforceable. If so, then it indicates that their checking process is fundamentally suspect -- source code is a *terrible* way to do validation...)

The lack of clarity about what they're checking for is one of the more frustrating aspects of this process. It also seems Apple changes their mind on a whim, sometimes, which introduces more uncertainty.

Submission does not include source code. It's the executable as you want distributed from the app store, along with screen shots and description. Complexity might have something to do with it, but the process is sufficiently opaque that we can't say for certain. I assume they have some automated check to ensure against use of certain APIs, and such, but again, who knows?

Well, the implication is less about the APIs, and more that this particular contract rule is likely to be difficult to enforce. Which is arguably a plus -- it means that most of the developers who are violating the rule will probably just get away with it -- but is going to produce long-lived angst among those developers for no particularly sane reason...

I assume they have some automated check to ensure against use of certain APIs, and such,

You'd think so, but apparently not—there have been apps approved and then pulled for using private APIs.


Which is fascinating in and of itself, in that it seems to indicate that they are doing only very weak static analysis of the code. Given the state of the art (and Apple's budget), that's downright surprising.

Really, scratching the surface, there's a lot of "what *are* they thinking?" in this. The approval process doesn't seem to work like I would expect it to, and it doesn't seem to check for the right things...

Um this is bad, my company makes a product that allows one to port games between various platforms including the iphone, android, blackberry etc. This could really hurt us.

Yeah, that's exactly the sort of company I expect to get bitten by this. Like I said, I suspect this is mostly unintentional, and I expect Apple to eventually climb down. Fingers crossed that they do so before it hurts you folks...

Interesting followup - email from Steve Jobs, and commentary thereupon.

And Five myths on the Apple vs. Adobe flash-war.

Both links were pulled from some third page which had a bunch more interesting commentary and linkage, but to which I've mislaid the URL, and which Google doesn't seem to have indexed since it was posted. (At least, it's not coming up in a double-linkto: search.)

Personally, I'd be just as happy to see the policy stand, if it will incite developers to jump ship from the iPhone to the Android + other platforms. I like the stuff Apple makes, and I like that they're no longer sickly - but I do not want them undisputed top-dog in any particular industry slice.

Interesting followup - email from Steve Jobs, and commentary thereupon.

... wow. If that's actually from Jobs, it indicates to me that he's further out of touch with reality than I'd expected. Frankly, it indicates to me that the meme going around -- that Apple has become the Big Bad from their own 1984 ad -- is essentially true: they sincerely believe that restricting developer choice to their own locked-down set of capabilities is a *good* thing, and that people should just shut up and like it.

Yes, I agree that this sort of attitude is going to gradually drive many developers to jump ship. Indeed, it would be hard for me to come up with a dumber decision, because it gives legs to Android's own network effects, and *nothing* is more important here than network effects. The iPhone is the top dog less because it's vastly better than the alternatives -- it's the one to get simply because everyone else has it. But the more developers who focus on Android instead, the more useful it is to users, and the more users it has, the more appealing it is to developers.

Android (and the other smartphone platforms) have a steep hill to climb against the iPhone -- but Apple seems determined to give them a helping hand up with policies like this. Alienating large segments of your developer community is rarely clever.

As for the Adobe/Apple War Myth article, I think it's essentially full of pointless strawman arguments. The actual reason is much simpler: Flash is a very good development platform for graphical apps, better than most people appreciate. For all Flash's much-parroted flaws (and a bunch that are rarely if ever mentioned), I've come across few GUI platforms that give me so much bang for my programming buck. (Mind, I'm writing an extremely high-power business application in Flex right now, so I know it pretty intimately. It's far from perfect, but it's surprisingly good.) But the implication here is that Apple not only doesn't care about developers who want to "Think Different", it is deliberately doing everything it can to hinder them...

Yes, well, go ahead and write a contract without a lawyer's aid, and see how well that turns out for you :)

Absolutely true; the point is more the flip side, that writing your technical contracts focused solely on the business side, and not taking the needs of your technical customers into account, can have equally bad effects.

(Granted, I am asserting that this will have bad effects, and it is possible that I will be proven wrong. But given the existence of credible competitors in the market, I suspect I'm correct that this is a dumb decision...)

Granted, I am asserting that this will have bad effects...

Well, bad for Apple, I suppose. I'm of the school of thought that something to break the iPhone's dominance of the market is probably a good thing.

Well, okay -- yes, I agree completely with that. (Especially as a happy Android user who wants to see that platform thrive.)

I suppose it just offends my sense of literature: it's like a story where the good guys win because the antagonist does something bone-headedly dumb, which I always find a little unsatisfying. But that's far from unusual in the history of software. (Or history, period...)

I'm used to the Android side of things, where a typical Android app has two releases *per week*,

Oh, man. My current phone is a Nokia; they have the Ovi Store. I don't know what their approval processes are like, but last week I discovered a different flaw: they don't do upgrades. (This is a limitation of the store, not of Symbian: in working on my own apps, I routinely do in-place upgrades.) In order to get a desperately needed bugfix, I had to delete the app and reinstall it. On starting up the new version, I found that the deletion had deleted my settings, too. I was pissed.


Yeah, I think that's something people are very sensitive to -- the standard Android software-upgrade screen has a reassuring "your settings and data will be retained" comment in it...

  • 1