Complaining iOS Developers are missing the point: Apple puts users first
geekblog.vodpod.com
geekblog.vodpod.com
Recent news and dissent from developers has been largely around political moves and gestapo tactics to keep its property exactly as it wants it. Consider a number of issues in which it isn't putting its users first
* taking 30% of all subscription fees, effectively a pass-through tax or killer-of-app in some cases (think Pandora)
* not allowing you to pay for digital forms of physical manifestations with in-app purchases (think concert tickets)
* not allowing you to run unauthorized apps even if you sign your life away that you know the risks
What's most sad about the loss of potential is that we never know what we're missing out on because it's too much of a business risk. There are many companies that are still looking at the App store with trepidation - beautiful, useful, life-changing things are inevitably lost (won't come to market through the App Store) and nobody will ever know what they "could" have had. That, in my opinion, is the saddest of all the injustices.
It's the same thing about the app store - the problem is not, that there is an app store or that the app store sucks. The problem is that you, as a dev, have no choices.
Apple is taking away choices and that is why I would never, ever make them profit through my work. They don't make the world a better place for me, even though they could easily.
This article is highly misleading: he talks about minor problems and ignores the big ones and drags the discussion to a level where Apple might have a stand.
And much more than trying to apologize for Apple's policies, I was trying to explain the philosophy behind those policies because I think it's a useful thing for developers to understand. And to the extent that someone is arguing with Apple directly ('Letter to Steve Jobs'), then they're arguing philosophy and they may as well save their breath.
I don't do the latter. However, I do note that a lot of Mobile Web apps and a lot of Android phones have pauses and stutters when scrolling. From everything I've seen, not having GC on the iPhone is exactly the right contextual decision for its time and place, and this is from a long-time Smalltalker and GC advocate!
Things like Grooveshark make it also clear that Apple doesn't care about its user, but cares about its music sales on iTunes.
Then there was the time they rejected Google Voice, the time they rejected cross-compiled Apps and recently the whole new subscription policy. the list goes on and on.
But consumers? There's a lot of people with iOS devices, but are they buying apps? If the top fifty apps on the app store are crap, and people can't find the good apps, they'll buy fewer apps, and that bites into Apple's revenues, unlike alienating a few spam-inclined developers, which doesn't.
The author writes "Embrace the Constraints" and, of course, you gotta do so in every situation. But you don't have to consider the constraints "features". On the two main points:
"The missing GC is a feature" is a statement that's looked increasingly silly over the last 10 years. Having a GC in Java does not mean that you get to be sloppy with memory, just that 80% of the work is done for you. Also, a 500MHz + 512MB machine is not a "limited device". Apple should include a GC and then not approve any app that peaks at more than X incremental and Y full GCs per second. Also, I've never heard my wife or her business partner say _anything_ about pauses on their phones, so this fear is mostly devs group-thinking.
I have a hard time seeing how the App Store is designed for users. It seems designed for Apple's business interests, to minimize Apple's support costs _and_ to maximize user enjoyment of a constrained system.
OTOH, the article certainly does convey how successful Apple has been with their "everything we do, we do for the user" marketing message, though.
Note: I could write a similar list of gripes about Android, so, while I'm a fan of Android and of its direction, I'm not a fanboy...
However, Apple might have good reasons taking garbage collection out of iOS. Here is my speculation. From financial and technical point of view, it is not worth to drain their manpower in writing good garbage collector and handling consequent complexity in this device. It gains no better user experience. If garbage collector goes wrong, the user experience is hellish. Everyone will blame Apple instead of application developers.
On the other hand, writing Objective-C code is not particularly hard. The key is to return memory to system as soon as possible. Once adapted to class pattern, coder is easy to manage memory because the memory alloc/release cycle is very structural. Just keep it in designated place. Also, Apple does not inhibit coders to use autorelease. And, XCode have some tools to detect possible memory leaking code.
I have worked on Adobe Flex for years. Flash player has garbage collection. But in fact, an application consumes lots of memory easily but there is no way to control it. Garbage collection is good, but only when there is a good garbage collector.
I am optimistic that some years later, garbage collector will eventually on iOS, as MacOS X now. Mobile processor and battery are expected to be more powerful.
From my experience, Apple does not really care about memory leaking of my application. (Or I never exceed their limit. Or it is hard to distinguish from other consumption.) Apple concerns more on application design and its content.
More interestingly, Apple puts Apple first by aggressively trying to pursue policies they believe will make their end customers happy. At least for the last decade, it seems to be working pretty damn well. You can hate or love their actions, but I'd argue at least they seem to have a pretty consistent strategy and real direction when compared to say, Microsoft. Nobody really gets exercised about MSFT much any more, because they don't really seem to have much of a consistent personality you can get excited over.
Really? What about Apple banning an Android magazine app? The user must be shielded from alternates for their own good so that they won't get tempted to shift to an inferior device?
http://tech.fortune.cnn.com/2010/11/26/apple-bans-android-ma...
And what about a prototyping app like this one? http://blog.robrhyne.com/post/1015614125/google-voice-says-h...
Those are just the tip of the iceberg. Taking a year to judge a Google voice app? Good for the user!
>: the App Store is oriented towards exposing and supporting great apps, not just apps in general. It’s a philosophy that says “What users need is 50 great apps, not 10,000 average apps”.
Taking a 5 minute look at a few of the 300K apps in the app store is enough to dispel this, Apple approves trite apps all the time.
Google > advertisers > strategic partners (e.g. open handset) > search users > search targets > Adsense partners
Microsoft > application devs > enterprise IT > small business IT > users
>And this I think is where the genius of Apple comes in. They aren’t trying to hide those limitations from the developer.
How can Apple even hide these limitations? I fail to see their genius here. All I see in the "article" are Gruber-ish vacuous arguments and justifications about how 'Apple can do no wrong'. Regardless, this post will get lots of upvotes because there are a lot of Apple fans around that will upmod based on the title of the post.