Five rational arguments against Apple's 3.3.1 policy
37signals.com
37signals.com
That's bad news for all us pissed off developers since Apple's new platform will continue to be extremely popular in which case devs are forced to develop for it.
Google seems to be inching towards being a real threat but they also seem extremely unfocused. Does anyone really need a toaster running the latest version of Android?
Apple needs some competition in this space and Android-based mobile devices seem like a really distant second. It's time for Google to kick it up a notch.
If my toaster did run Android, that wouldn't make the HTC EVO any less appealing. The apparent lack of focus on the Android front isn't because Google's unfocused -- it's because there are a lot of companies besides Google working to make Android happen (Sense UI in particular has been great for Android).
With the rapid releases of Android 1.5, 1.6, 2.0 and 2.1 in the past year, I'd say Google has been kicking it up a notch. The problem is that the carriers wait for way too long to push the updates out to their users. What use is progress if many Android users still can't check out Google Goggles?
Yes consumers have no idea what any of this means. But that actually works in favor of Apple's competitors. When an average consumer looks at the smartphone market, Apple may stand out, but the iPhone is still just one among hundreds of smartphones. There is tons of competition on features and price.
Finally, Google doesn't need to kick it up a notch. Android is doing extremely well. Keep in mind that Google doesn't need Android to make money. Google doesn't care if Nexus One sales are sluggish. They are in the market to change the game. And I'd say they are succeeding with that.
There is tons of competition on features and price.
That's exactly the problem. Apple does not compete on features and price, they compete on user experience.What's truly difficult is reduction. Removing "features" and simplifying the product. The success of the iPad and iPhone is not about what it-- it's about all the things it doesn't do.
If you want to believe there is nothing that can truly compete with the iPhone because of its magical UI or lack of features or whatever I can't prevent that. Yes, it's true, the iPhone is the only iPhone in existence. But in that sense nothing can compete with Android either. Nobody else is producing an open-source smartphone os even close to its quality. If you get specific enough, everything is in a category of its own without any competition.
My original comment has nothing to do with whether Apple has produced the perfect mobile os by reducing and removing features. It has to do with the statement that Apple has no real competition.
Of course. The problem the parent is describing is that the smartphone market, the person on the street with an iPhone, who doesn't have a clue what "objective see" is, has his/her own specific criteria for buying a phone, and so far they seem to line up with Apple's criteria pretty well.
Android can compete on features, price, openness, open-source, goat-teleport-count, or any other metric they can find. It won't be "real competition", in this sense, until ordinary people find reasons to actually buy it in large numbers.
http://industry.bnet.com/technology/10005344/android-unit-sa...
+1 for openness.
If you read the rebuttals to the complaints, you'll see that there are several practical, quality-oriented reasons why 3.3.1 was a smart move. It's just one of hundreds of quality-improving measures that Apple has done to make the iPhone "have no real competition".
No, you're not.
This is what I don't understand from all of the developer "outcry" over this: you're not forced to develop for this platform. If you don't trust it anymore, then stop developing for it.
There were ways to make money as a developer before the iPhone came along. There are still plenty of ways to make money as a developer that don't involve dealing with the iPad or the iPhone.
These counter-arguments sound so much like the web developer hatred for IE 6 years ago, where everyone was bemoaning having to develop code specifically for IE 6, and everyone was saying that they had to keep developing code for IE 6, because that's what the users are using. But, years later, it has finally become OK to abandon IE 6 altogether; it could have happened a long time ago if developers had just quit supporting garbage.
Android/Google are looking for good applications developers. Go work with that instead.
Otherwise, it's just noise.
Apple's new policy won't cause their developers to leave immediately, the market is just too big. What they have done is sent a clear message to developers that if they don't want to do it "the Apple way" then they should be keeping their eyes open for other opportunities. Apple has essentially made a huge gamble that they can be the smartest guys in the market forever. I think that's unwise.
And they have a big marketing machine ready ... its competitor (Orange) has been shipping iPhones for a while, but I haven't seen many around (mostly because people haven't jumped on the smartphones wagon).
And I think it's the same situation in the rest of Europe. It's the carriers that make it happen ... and Vodafone is a huge player.
I imagine Jobs might reply, 'for business it's about more than just developers'. Adobe's proprietary attempt at creating a cross-platform layer is thwarted. And Apple counts on having enough developers for new apps who already have a background in (or are willing to learn or relearn) Objective-C, C, C++ and JavaScript. It's simple and pragmatic.
That said, I'm a developer and I generally only use FOSS products for software. But I give Steve Jobs and his advisors more and more credit for business intelligence.
A lot of these comments are about Android. Could be that Apple learned from Sun's mistakes, whereas Google wasn't old enough to be around for the full cycle of that. I love Lua and Scheme. I wouldn't be surprised if senior engineers at Apple also love various different VMs, etc. And yet they would fully support this strategic move by Apple.
Why? Steve Jobs' genius has less to do with his douchey presentations and more to do with seeing the big picture dozens of business quarters before everyone else. When you've been seeing that far ahead for three decades, and have all the experience and confidence from succeeding with that like fourteen times, controversial decisions like with Section 3.3.1 aren't as difficult. They are one of 50 decisions that you've made 6 months ago with many different things in mind that won't be released to the public for quite some time -- many of them involving hardly black-and-white tradeoffs (see the Wikipedia entry for Jobs quoting Wayne Gretzky).
Apple has a model that works for them. And free software, free digital rights management, openness -- if it gets in the way of their business strategy, by default they're going to plan around it.
If you really want Apple to change their policy, get the CEOs of businesses who develop apps to voice concern to Jobs. Show that Flash and Lua and Mono or whatever are mature enough technologies from a business standpoint. Make the argument that it's too much of a gamble for the iPhone/iPad 3GS to be without flash support with other tablets on the rise. (Apple is of course betting on HTML5 pretty heavily.)
I guess my point is that: 'Five rational arguments against Apple's 3.3.1 policy' is a good start. But those are mostly developer-based arguments. As a developer whose not in the embedded space, I have no idea what the business strategy arguments would be. But as a developer, I know when a client's use of a library's interface is slighty off. Or something like that. Maybe I don't even know that. Anyhoo.
The only real argument that makes sense is that long-term, enough developer goodwill will be lost that they will go flock to a better platform and eventually tip the balance against iOS. That certainly will not be for the next 3-5 years, which is an eternity in tech.
I am not an iOS developer nor do I own Apple stock, so I'm just calling it like I see it. In short, it's a great business decision for them and I really doubt developers will make them pay for it, either short or medium term.
What everyone is furious about is the complete lack of respect for the platform's developers.
Yes, Apple has every right to do that if they want, and developers have every right to get furious about it too.
This is hardly a strong argument, as the main "intermediary of discovery" is Google, and most internet users are all too ready to give up their banking information to websites which have an official looking header on the page. Just because it worked for the web doesn't mean it'll work for Apple's AppStore.
The internet--and the real world in general--can host a million restricted marketplaces, each designed for specific interests--and still be free in general.
Your reductio ad absurdum is suggesting that the presence of a gated community in the Hamptons means that every neighborhood ought to be gated.
#1: Don't agree. Apple has 180,000 apps in their App store, maybe a good time to remove incentives for a new influx of non-programmer-written apps straight from Flash? Oh, they're getting rid of other stuff that also encourages people to use other tools than their own? I think they can live with that.
#2: They're not. Tell me where and when Apple said: "You will be able to develop for the iPhone using any and all tools of your choosing." They didn't. They're simply clarifying what's been their position all along, that XCode/Cocoa is the environment in which you create iPhone apps. Sure, other stuff have been able to sneak in stuff, but hardly with an Apple seal of approval. If you're using one of those tools without a suspicion Apple might not like it even before this, I'd say you're a bit naive.
#3: Irrelevant. Apple has told developers which tools they can use from the get-go. I imagine the existing cross-platform products have been too small to have been a priority, but here comes Adobe with something that creates iPhone apps straight from the desk of a designer. Yes, did you see the CS5 presentation? "Create iPhone apps without writing any code!" Sounds like great apps to me.
#4: Of course it's unfair. But there isn't any better way to enforce their rules. Naturally there'll be apps that fall through the cracks. But a "Aw, why can't I when that app could?" whine sounds very 7-year-old to me. They're putting up rules, if you follow them you should be fine. If someone does something that might be within the rules, but they're not sure, they might get rejected. If someone else tries the same thing, they might get rejected, regardless of whether the first guy was caught or not.
#5: Not sure this ia a very good argument either. For me, I develop for Apple products because I love the platform, and I think there are quite a lot of other apps that have been hanging around with Apple because we feel that is the best platform in the world. Not perfect, but best. And I like it when Apple says that what we've learned during the years of sticking by the company because of that conviction, rather than some sense of duty, is going to pay off. Sure, Apple could release the platform to any and all languages out there, implement C#, Java and whatever else might be popular right now. But that would seem to me to cater to the populist crowd, rather than the faithful, so to speak. And those programmers are the same programmers that will move away from the platform when something else catches their fancy. I think Apple wants people like Omni Group rather than the "Oh, lord, another device, another language, who cares? I guess I'll _have_ to learn it, then."-crowd.
This seems to me to make you unqualified to counter rational arguments.
And I'm saying that Apple has a point in supporting the faithful, as in the people who are convinced this platform is the one they want to work with, because that group of programmers will probably stick around even when some new other thing comes around.
"They're putting up rules, if you follow them you should be fine."
The big issue is that they are changing rules. They are. There isn't anything you can say that changes this. So even if you did follow the rules, you are still stuck with an unsure situation.
However, when introducing the iPhone SDK, they clearly said (about XCode) "This is where you'll be developing all your apps." I'm saying you could consider this a change in legal language to more clearly adhere to the spirit of the premises of that SDK.
The fact that people have been able to use products in a grey area to sidestep this, doesn't mean that the rules have been changed, just that they haven't been enforced before. Apple never said: You can develop in any IDE you want for the iPhone, and then changed their mind again. None of these tools that are affected have been approved as developer tools by Apple before, and people using them know or should have known that.
What has happened is that Apple is starting to clearly stress that Xcode is the only approved developer tool. The major change is that unapproved tools now clearly are marked as unapproved, which in itself isn't a change from before. They've always been unapproved.
Now, as far as enforcement, that might be just the same as before, since we haven't seen any rejections based on the new policy. Most people, including me, seems to be guessing on that this will mean some kind of enforcement as well, but we're just going to have to see what's going on there. Either way, if you've been using Apple approved development tools before this change, nothing has changed, and therefore there is nothing more to worry about after than before this change in stance.
That's one way to look at it. Of course, then the question becomes one of a permissive development platform. You are only allowed to use what they say you can, and if they don't say you can use it, you shouldn't. And even then, they've proven in the past that even this isn't reliable. You can follow their rules, and it still not matter.
This isn't the first time they've done this. Just because they say you can do something now doesn't mean they won't pull the plug later. This is a volatile situation to be in. Now, I won't argue whether they can do it legally. Nor will I suggest that other companies can't do it. But Apple seems to be rather blatant about it.
As for the second points, I don't recognize what you're describing. What I can say is that I don't consider letting an app through into the App store itself is a seal of approval for whatever technique or tool that app is using, but rather a sign that they're not checking for whatever it is they're doing. If other apps get rejected for stuff others have been accepted for, or even earlier versions have been accepted for, that's a refinement of the approval process to me.
And yes, to some that might feel like a volatile situation. I'm suggesting that non-controversial app development (as in using approved tools, not writing apps that are in a grey zone when it comes to what they approve, and not using private APIs) is cutting down on that volatility in a big way, wouldn't you agree?
I concede that I might have missed your point totally, but since you're not giving examples I'm looking forward to a more verbose rebuttal in that case. =)
With 3.3.1 Apple is trying to control the overal UX. They can't reject bad music from the iTunes Store, but they can enforce basic encoding standards, so the music doesn't sound like crap for reasons other than the artistic content.
When they removed the "sexy" apps they were using a rule that could be made specific and enforced consistently. The picked adult content because of the peculiar standards that humans (and especially Americans) have when it comes to sex.
Or maybe it's really difficult to phrase a definition for "college humor".
Come to think of it, so does every headline I've ever seen about an app store rejection.
Clearly, though, the fact that the app store is already flooded with low-quality applications is indicative of the fact that Apple hasn't been doing that, which makes that justification seem totally bogus: if they really cared about low-quality applications, they could have done something about it long ago without restricting cross-compilation techniques. And if they wanted to put a stop to it now, they could still do it without restricting cross-compilation.
So to extend your analogy: if you want to weed the garden, then pull the weeds already. No need to have this strange level of indirection that will result in removing only a small number of the weeds while also eliminating plenty of flowers.
People say "oh but it will keep the already crap x-platform apps out" to which I say "Yes it will keep the would-be flashy x-platform POS games/crap apps out, but it will also keep out the apps that let me do my business better that run on Android / WebOS / iPhone because the developers of the TOOLS had to cater to a larger market share."
If I am making a tool that takes pictures and uploads them to my website for special needs of people running on the BlackBerry, Android, WebOS, iPhone because it has to be a compliment to my web tool there is no reason why I can't write it with minimal effort and use the iPhone store to distribute it for free with that exact goal in mind! Its not about making a wonderful iPhone app, its about doing my damn business and giving a business process convenience using the iPhone.
Not every iPhone app has to be a super innovative new way to run the world, sometimes its just a piece of crap complimentary tool that's just needed to do some grunt work easier.
Since the days of the Mac, Apple has always been about maximizing control. MS won because the 'settled' for the OS, whereas Apple wanted to control both the OS and the hardware. We probably wouldn't have things like Linux and FreeBSD easily available if that sort of locked-down environment had prevailed.
A key thing to understand here: the existence of a platform controlled in this way increases diversity, since there are several other prospering platforms that do things differently.
I'm sorry, but the undiluted denial-of-reality from the more extreme Apple apologists is making me dizzy.
Apple prioritizes the end user experience over the developer's experience and aren't shy about rubbing that in. More than that, Apple prioritizes having control over its own fate, and if developers using intermediary layers have to suffer for Apple to retain its relative autonomy then so be it.
Microsoft's philosophy has the logic: if we have all the developers, then the end users will flock to us, so we're going to cater to the developers. Apple's philosophical logic is: if we make something that 'just works' and that all the end users lust after, the developers will come to us, so we have to retain our ability to push things forward.
I'm not sure which philosophy, if either, is better overall. But it seems pretty clear which one angers developers more.
Of course, I firmly believe this is as it should be.
But you expounded on my point nicely -- Apple and MS have different philosophies about developers.
The moral: Never forget that people really do like using shiny things a lot better in many cases.
2) Marketers, 3) Users
3 is 2. The hype about iPhone and iPad was there before Apple said a word about these products.Nice work DHH!
He said "fuck you" in a presentation on Rails where he tried expressing that Rails is opinionated and that if Rails doesn't suit your style you're better off choosing something else instead of trying to convince core devs to switch directions (or something of the sort).
Say what you will about the guy, but he's a great salesman.
His merits are that he's a contributor to an open-source piece of software that changed people's perceptions and he's also a founder of 37signals, a small business that's quite profitable (which is a lot more than I can say for myself).
By the way, IP is far from being the only cost involved in building an ecosystem around a platform (as ESR has explained ad nauseum). So the "Rails is OSS" argument doesn't really apply here.
Apple surely acts like it's having a special license to address this market (whatever that means).
So I don't know why we are having this conversation. Being opinionated doesn't mean you need to be a jerk that prevents others from playing on the same beach.
Some innovations, when developed via a proprietary approach bring huge costs and risks (and couldn't be done otherwise) and patents exist to protect the innovators from free loaders.
Now, that's how it should work in principle. If Apple is trying to game that model, it is not up to me to decide. There are courts for that.
And, as I said before, IP is far from being the only important cost when creating a new platform.
"Ruby on Rails" is copyrighted to its creator. So what? Why is it so? Isn't that an "asset" within the economics of OSS? It is, and there's absolutely nothing wrong with it being copyrighted.
Anyway, my point is that none of this justifies the fact that the Rails guy is simply being utterly hypocrite, period.
I even say (sic) DHH enter the fray, which is absurd hypocrisy, given that the first time I ever saw this guy, he was putting a giant "Fuck You" slide on a screen and explaining how he wasn't going to add features to Rails that he didn't agree with, because it was his framework, and he didn't believe that anybody who disagreed with him on that merited any other response but "fuck you". What kind of response does he think he merits from Apple?
http://gilesbowkett.blogspot.com/2010/04/its-his-platform-no...
However, if you develop a proprietary product, you are not entitled to do as you please with it and must accommodate the needs of those who want to do something else with it and are unable to do so because of your licensing terms.
Is that what "git clone rails" amounts to suggesting?
You can't just clone the iPhone and it's OS.
Therefore I don't understand the claim that DHHs comments are hypocritical.
And nobody is disputing that Apple is entitled to do with their iPhone whatever they want. They are just not entitled to people being happy about it.
And we're all entitled to post our opinions about it, but you should maybe try and give the opposing views a little more respect. :)
I didn't realize that quoting Giles was considered disrespectful of either of these opinions. It was an interesting take. I like what I know of David, and consider myself an awfully opinionated guy as well. That doesn't mean I don't think it's worth pondering whether this particular bit of criticism is... Um... "interesting," nor do I predict he would be outraged at Giles' comment or my quote of it.
If I thought you, David or anybody else wrote something that they were not entitled to write, I would use the flag feature, not a comment. To me, a comment is intended to provoke thought and debate, not to suggest there is something that should not be said.
Now to clarify what I intended when I quoted Giles. I didn't think of it as a "David shouldn't have said that," rather I thought of it as a "If it's right for Rails it just might be right for iPhone!"
I still think that even though David gives Rails away and Apple does not give iPhone away. iPhone is an opinionated product, and people are correct when they say that Apple is saying "Fuck You!" Apple is saying that in exactly the same sense that David said it, even though no you can't fork iPhone.
Your clarification makes sense, but it's not the message I got the first time. I do think putting a relatively arbitrary restriction in place is vastly different from just refusing to do something a specific way, though. One is actively restricting a personal preference, the other is simply not bowing to an idea/method you disagree with. :)
Ahh, just as we favour "Convention over Configuration," we also believe in the power of "Discussion over Dismissiveness." This exchange of view is great, thanks.
:-)
Well for starters let me say I admire your perspective on Rails development greatly. And speaking as someone who is greatly enamored of code generation, I am not a fan of restrictions on "original" programming languages.
My only question about your response here is your choice of comparison. The choice of text editor does not appear to me to parallel the imposition of an entire cross-platform compatibility layer like Flash.
I realize that in a certain sense it seems to be about dictating tools for self-expression, but where things like Flash compilers are concerned it also very much about proprietary companies attempting to control developers by owning the platform.
So... If I had to draw a lesson from Rails it would be that if we developers find ourselves having to choose which behaviour we want from a proprietary platform vendor or choosing which proprietary platform we are beholden to, maybe we should step back and ask ourselves whether we really want to be beholden at all.
Maybe what we really ought to be doing is sucking it up and developing for web standards where "Worse is Better."
Your earlier comment seemed to indicate (and I believe you have clarified it below in this thread) that if there's a valid business case for Rails doing something, then maybe that business case is valid for the iPhone OS as well.
I don't believe that comparison holds because
a) refusal to add new features is not the same as tightening the terms of service.
The equivalent would be to release a new version of rails that prevented (by technical or legal means) using any 3rd party ruby packages that are not approved by dhh.
b) Even if dhh did something like this, one could clone rails and be on their way. So the effects of this new policy are somewhat mitigated by the fact that the code is Free.
Of course you are entitled to do what you please. You may make your product less useful, or even eliminate it. The point is, your customers have no alternative between keep consuming and stop consuming.
To reify the point: Apple should be worried about the latter.