mikeash.com: just this guy, you know?

Posted at 2008-08-01 17:23 | RSS feed (Full text feed) | Blog Index
Next article: Late Night Cocoa
Previous article: WWDC 08 Followup
Tags: iphone rant
Welcome to iPhone: Your Crappy Mac of Tomorrow, Today!
by Mike Ash  

Note: this post is a long non-technical rant. Please skip it if you don't want to read that kind of thing. I promise that this will be a rare event.
My employer got me an iPod Touch shortly after Apple announced the official iPhone SDK, but it ended up not doing much for a while. Due to various things beyond the scope of this post, I didn't do any SDK work with it. And since I rarely listen to music outside of my office and my car (which has no iPod hookup), it didn't get used very much for anything.

Arrival

With the release of the 2.0 firmware I started using it more. Apps like Remote, AOL Radio, and Pandora really make the thing more useful. This has also led me to use the built-in apps more frequently. It's a lot more convenient to skim through my e-mail on the iPod than it is to lug a laptop downstairs for breakfast. Having a credit-card sized web browser is also very handy. (Unless your page uses Java, or Flash, or requires real JavaScript mouse events, or....)

But as they say, familiarity breeds contempt, and after using it more these past few weeks, I've come to realize that the iPhone platform is really pretty crappy in a lot of ways. And these ways are mostly not due to hardware limitations, but rather artificial limitations put in place by Apple. And mostly these are limitations which have been put in place For Our Own Protection, and which have been, shockingly, praised from many quarters.

Counterattack

Let's take a common scenario. I want to chat with my wife in China while I check out the latest mailing list posts. I prefer to use Meebo for my IM needs, as I find the official AIM client to be too clunky, slow, and annoying (not to mention that it only does AIM). You can make this work. Open two pages in Safari, one for Meebo, the other for Gmail. They both function, mostly. Except Mobile Safari apparently doesn't run JavaScript in backgrounded pages, so I have to make sure to switch back to Meebo every few seconds, lest I get connection errors. But it works, for the most part.

So this is annoying, but usable. It works for a little while. And then Mobile Safari, in a delightful fit of absentmindedness, decides that it no longer wishes to remember my Meebo page. It clears it from memory, reloading it the next time I switch to it, signing me off, and probably losing whatever pending messages I hadn't read yet.

Alright, so I'll switch to AIM. This makes the process significantly more cumbersome when switching back and forth, but due to AIM's server-side support, at least I can be away from AIM for longer without getting any errors or actually signing off. But now, of course, Safari decides to have another fit of amnesia, and forgets the contents of the page I'm viewing, reloading it. Helpfully, this makes gmail forget my place and take me back to the inbox. Great.

So much for chatting and viewing the web. Never mind that I could do this just fine on my Quadra 610 over a decade ago, with vastly less computational power and only a slightly larger screen.

Let's try something else, like listening to music while I chat. So I hit Music, choose a track, then go off to chat. Works fine! Of course I don't bother loading much music onto this thing since it's a pain to do, so I'd rather listen to internet radio. Let's fire up AOL Radio instead. Pick a good station, then go chat. Whoops, music stopped.

Suddenly I notice my App Store icon has a badge. I have some updates! Ah, maybe an AIM update will make it suck less. A Twinkle update too. And a few others, no doubt all good. I click update. Enter my password. Again. For a bunch of free updates. They begin to download and install. Ah yes, this takes a while. To pass the time, I'll go read the latest updates on Twinkle.

Hmm, my Twinkle icon is gone. Oh, it's moved to the next page. Oh, I can't run it, because it's downloading and installing. Crap. I'll just stare at the progress bar until it's done. Waiting... it's done! It's still on the next page! Now let's pass the time by manually moving AIM, Twinkle, and the three other apps that got updated back to where they started.

Oh yeah, and not only did they all forget where I had placed their icons, but half of them just forgot everything they knew about me.

And then to top it all off, I get a receipt in my e-mail for the half-dozen free updates I just downloaded. Total charges: zero dollars.

Shake Before Using

I can't expect too much from Apple. After all, 2.0 is really a 1.0 of all the fancy new stuff, and it's only been a year since the very first release. And Apple doesn't need to do everything perfectly, just provide the framework so third parties can fill in the gaps.

Oh yeah, about that.

How about a third-party app that would let me run AOL Radio in the background? Hmm, violates Apple's terms, nuts. Maybe a third-party application launcher to replace the default one. Nope. Maybe just a Safari plugin to make it less strict about purging certain pages from memory. Ah, crap.

Wait, I have the perfect solution. Let's just write our own browser, and music player, and Twitter client, and chat client, and mail client, and app updater, all in the same application. And then we can stick a launcher front-end on it. And then, since it's all the same application, we can multitask and switch and run in the background as much as we want. After all, who needs an operating system with process management. AppleWorks showed us just how well the highly integrated application can work. Single-tasking is how it was done on the Apple II, it was how it was done on the original Mac, and by god, it's good enough for the iPhone.

Well, unless you're Apple, of course. After all, you wouldn't want "Music" to quit just because you launched Safari. Never mind that the third-party music players that I actually want to listen to can't do it.

Reprisal

After spending a month or so really using this thing, I feel like I've gone back to the dark ages. This is GS/OS 4.0. Mac System 1. But unlike those, Apple isn't letting us developers patch over their holes. There will be no MultiGS, no Switcher. No plugins, no launchers, no daemons, no services, no improvements.

Unless Apple makes them, of course.

But do you think they will?

I'm going to keep using this thing. Despite all the flaws, it's still a useful device to have, especially when I didn't have to pay for it myself. But right now, I'm only getting maybe 10% of the hardware's potential, and this is all Apple's fault.

I suppose I could jailbreak and get some of these fixes, but I don't like hacking at closed hardware, always afraid Apple will shut it down, searching for hours for the right program to crack open the device and expose the juicy goodies inside, afraid to hit the wrong button and turn it into an expensive brick.

I wish they would just let up on the thumbscrews already, let us lowly users install what we wish, and let the platform evolve naturally.

Rebellion

But my big fear, what prompts me to write this article, is that this is just a preview of bigger things to come. Specifically, I think that Apple is going to start pushing Mac OS X in the same direction as the iPhone. Maybe not today, maybe not tomorrow, but over the next few years.

There's no smoking gun that makes me say this, but there are some worrying indicators:

First, some miscellaneous things like Apple's long time pointless usage of the ptrace() call in an attempt to protect iTunes, DVD Player, and any other program that uses Apple's DVDPlayback.framework from being debugged. There are also encrypted binaries which showed up in 10.4 as part of the Intel switch.

Second, code signing. This is, after all, what Apple uses on the iPhone to deny access by "unapproved" applications. Code signing is something that can be used for good or for evil, and despite many assurances from Apple people that it's only intended for good, it appears to me that Apple has yet to make up their minds about it in Mac OS X. For example, code signing is used to avoid re-prompting the user for keychain access when updating a signed application. This is good. It's also used to give Apple applications special privileges to bypass the firewall even when the firewall is set to "do not allow anything through under any circumstances at any time ever, period" mode. This is very bad. Code signing is used pretty much only for evil on the iPhone, and it could easily shift that way in Mac OS X as well. For all we know, Snow Leopard will come with a switch that says "only allow Apple-approved applications", and it will default to On. Guess what that will do to us third-party developers.

Last, Apple's focus and attention seems to be on the iPhone, and the sentiment coming out of Cupertino is one that the iPhone is good, all of the stupid, crippling restrictions on how it works are good, and Apple always knows best. After all, what platform got basically 100% of the attention at this year's WWDC keynote, and what platform got 0% of the attention? Hint: the desktop Mac you are probably reading this post on is not in the 100% category. This is the same keynote, let's remember, where high-up Apple people ridiculed the idea that anyone would ever have a legitimate reason to run applications in the background. Unless that application is made by Apple, of course. And then they came up with their brilliant idea of push notifications, which totally replace the need for background processes, unless you're writing a music player, or a web browser, or GPS logger, or a terminal emulator, or file downloader, or....

The iPhone is not just a crappy platform. It's a crappy platform which may very well turn our beloved Mac OS X into a crappy platform too. Right now Apple has two platforms. One of them is powerful, rich with history, open to any development, and hacker friendly. One of them is deliberately crippled, difficult to use for any kind of advanced tasks, will not accept code without the Apple Official Seal of Approval, and is extremely hacker unfriendly. The latter platform also has all of Apple's love and attention right now. How long can it be until these Apple higher-ups, who talk down to us about background processes and told us that web apps were an awesome way to develop, decide that the desktop Mac OS X could use some of this closed system code signing restricted seal of approval sauce too?

Try Again

Now, before you post a comment, or write about this, or even criticize this post in your head, there are some points I would like you to keep in mind:

  1. No, I haven't forgotten how resource constrained the device is. I am concerned that a lot of people have forgotten how resource constrained their once-powerful desktop systems of yesteryear were. 128MB of RAM and a 600MHz ARM is more than enough to run a modern mobile operating system, a music player, a chat client, and a web browser.
  2. Hunting down a runaway process that's destroying your battery life sucks, to be sure. But you know what sucks more? Not being able to listen to music while I chat. You want to know why Apple doesn't have a switch in the settings that says "enable background applications"? Because everybody would turn it on as soon as they found it. Apple doesn't feel like putting in the effort to do it right. They're taking the cop-out of simply disabling it (except for their own apps, because don't forget, they know better than you), and then telling us what a great favor they're doing to all of us by destroying the functionality of our devices.
  3. Don't even think about mentioning viruses, worms, trojans, or other forms of malware. Mac OS X is an open system which will run any code you hand it, and somehow it has not been overrun with malware. The iPhone installed base is currently about one tenth the size of the Mac OS X installed base, and as such represents an even smaller target.
  4. Likewise, no talk of how rich people are going to get off the App Store. First of all, I'm doubtful that anyone will get rich. With only a few million iPhones in the world, you'd have to get an extremely large percentage of them to buy your stuff to get rich. Secondly, even if a few select developers do get rich, this has no bearing on how much Apple is destroying my user experience.
  5. And last, none of this stuff about it not being a miniature laptop. I know it's not a miniature laptop. But when a device is advertised as being able to play music and browse the web, is it too much to ask that it can do both at the same time?
  6. Yeah, I'm angry. I'm tired of being fed crap and being told that it's caviar. I'm a very long-time Apple user, and I don't think that they are going in the right direction with any of this stuff. And no, the fact that several million people are willing to plunk down hundreds of dollars for an iPhone 3G of their very own is not going to convince me otherwise.
And I think that's it. Flame away!

Did you enjoy this article? I'm selling a whole book full of them. It's available for iBooks and Kindle, plus a direct download in PDF and ePub format. It's also available in paper for the old-fashioned. Click here for more information.

Comments:

mikeash at 2008-08-02 04:36:48:
Comments are now working again. Sorry for being a moron.

charles at 2008-08-02 04:47:14:
I agree that not being able to listen to music while browsing or chatting is a big problem that they need to fix, and allowing background process on a per-app-basis should be an option left to the user (and maybe have some special track on the App Store for app that want to request the possibility to give the user the option to run in the background, thus there would be 2 levels of 'approval').

Interestingly, being unable to listen to music and browsing at the same time summarizes very well the duality of Apple's position here. There are 2 interpretations:

* Apple wants to limit the amount of resources used at any one time, to provide the best user experience. Hence limited number of processes, auto quitting,...

* Apple wants to establish a monopoly on music listening on the iPhone. And in general, wants to control who can develop for the iPhone so that they can abuse 3rd party developers at their will.

While your points are valid, I think you emphasize too much the 2nd explanantion, and dimiss the first explanantion as just an excuse from Apple. The example of Safari shows that Apple really does what it is asking other developers to do: limit resource usage as much as possible, and if necessary, quit entirely. Of course, Safari still has an adavantage over other potential 3rd party developer, since it will not *always* quit, but they go still pretty far at the risk of annoying the user. Thus, even with their own app, they do make some compromises.

Finally, about resource limitation: is it not fair to compare the Quadra 610 hardware/software and the iPhone hardware/software, or whatever older machine. Yes, the iPhone would run dozens of processes at high speed with a 5 year old OS. But OS development is traditionally done by incrementing on existing stuff, and the engineers working on it can assume the hardware will be faster and more powerful by the time they are done. For the iPhone, they started with a for-desktop system, added more stuff, and then still wanted high responsiveness. They made the decision to start with Leopard, and not with Cheetah. And then, they had engineers working on it like crazy. You can always say they did a bad job, or made the wrong design decisions (just stick to Cheetah, guys!), and that this reflects in some of the crapiness you mention, but I don't think this is what you really mean.

Seth Pen at 2008-08-02 04:55:15:
I could NOT agree more.

Steven Fisher at 2008-08-02 06:02:35:
As I understand it, those times when Safari loses your page while Safari is still open are when Safari has run out of resources and had to purge.

That doesn't mean I disagree, though. I agree.

However, I think you've weakened the post a little by ranting on both minor bugs in the user experience and fundamental design decisions that affect everything.

Minor (if frustrating) bug: Icons moving between pages when you update. Sure, it's frustrating. Really frustrating. But it'll probably be fixed at some point.

Fundamental design choice: A deliberate inability to ever multitask. Assuming this isn't changed, this rules out entire categories of applications from ever appearing on the iPhone.

I'm pretty sure 10.5 already implements some of these, but they're not required. And I really hope they never are.

mikeash at 2008-08-02 06:28:36:
charles: I disagree that I'm emphasizing the "monopoly" aspect too much. In fact, I don't discuss it at all, and I don't think it's what they're doing. (I suppose I must have implied it, but if so then it was inadvertent.) I'm not assuming that Apple is trying to protect their position, I just think that Apple believes third parties can't be trusted with things like background processes. The restriction is all the more galling because they don't follow it themselves.

I also disagree strongly with your comment about resource restrictions. Mac OS X has been getting faster, not slower. If you ported Cheetah to the iPhone it would be an absolute dog, completely unusable. Modern Mac OS X is much faster than old Mac OS X. I also think it's totally fair because the iPhone is demonstrably capable of doing this stuff with the software it's running now, Apple just doesn't let it happen.

People really need to get away from this meme that the iPhone is a fragile resource constrained flower that must be protected at all costs. The thing has a 600MHz CPU, 128MB of memory, and plenty of storage. It's more than powerful enough for serious multitasking, even with a modern mobile OS.

Steven Fisher: I understand the reason why Safari trashes my pages, although I have a tough time understanding why it can't even keep two of them open.

As for minor bugs and fundamental design decisions, I think they're both appropriate because ultimately they both go together. On the Mac, when Apple screws up minor things the response is for third parties to create a competing product which doesn't screw up. On the iPhone this is impossible. Either Apple gets it right, or we suffer, because we have no choices, because Apple doesn't allow any choices. Look at something like Path Finder, Quicksilver, or even my own App Switcher. All exist to offer something better than what Apple ships, and nothing like that could be created for the iPhone. The minor bugs can't be patched over because of these fundamental design choices.

charles at 2008-08-02 07:07:02:
Mike, thanks for clarifying about Apple's intentions. In fact, it was one of the thing that bothered me reading the post, which is understanding what you think Apple's intentions are. If their intentions are genuinely honest in keeping the user experience the best possible, then we can give them the benefit of the doubt, file bug /feature requests, and hope they release the pressure a bit if they realize they can. Then I totally understand why they locked down the iPhone, for the 'average' user. But I am like you, not an 'average' user, I want background processes. Some of the consequences of not having them are just too mind-blowing, just like you describe. And I sure really really hope they do not do that on Mac OS X.

On the other hand, if their intentions is to push some monopolistic goals, this is a problem. And to some extent, it is very possible that they still have that in the back of their mind.

And sorry about Cheetah, which I agree is a dog, maybe I should have picked 10.1 (mmm). I realize the whole discussion about resources is a bit pointless (too much 'what if'-s). All I want to say is if I had 128 MB on my MacBook, and had the choice between 10.1 and 10.5, I would pick 10.1, personally. Apple picked 10.5. What would you pick?

n[ate]vw at 2008-08-02 07:31:24:
Comments were still broken when I tried to chime in, so I took some of the ideas from my comment and turned them into a slightly more consumer-focused post over on my blog (http://www.extinguishedscholar.com/wpglob/?p=339).

But for developers, this system really stinks. I'm not talking about the NDA. I'm talking abou it's one thing to get Karelia-ed, it's quite another to never get published in the first place. If Apple tries to push these sort of feudalistic "market" dynamics onto the desktop, they're going to have to bring the water to a boil really slowly or the Web will have to open up a refugee camp for all us displaced indies jumping out of that pot.

Adam at 2008-08-02 08:01:06:
I think you completely mischaracterize the recource constraints faced by the phone. Sure, it's one of the most powerful hand held devices on the market - it's got tons of cpu. It, however, has no swap. And it runs on a battery. Take your quadra, disable swap, strap it to a battery and then try and run Leopard.

Have fun!

Just hit the forums to see people complaining about the iPod app being killed while they're browsing in Safari to see proof that the device is *very* resource constrained and even Apple's apps have trouble under that environment. Then look at the quality of apps on the store and tell me you trust each and one of them to play nicely as a background process, both in terms of CPU and memory usage.

I think Apple really is trying to do the best thing here.

Adam at 2008-08-02 08:15:09:
My above comment doesn't mean that I don't want 3rd party background processes, though! I just agree with Apple that the phone simply isn't ready to expose that ability globally. Hell, maybe the shipping hardware will never have that flexibility. My 3G's battery is short lived as it is... And safari was killed by the OS after I took a phone call, eliminating my first post half way through. The hardware constraints are definitely real and challenging.

mikeash at 2008-08-02 08:30:48:
charles: 10.5 is better in essentially every way than 10.1. To the extent that it requires more resources, it is because of nonessential services such as Spotlight and Time Machine. If I were going to pick an OS for an iPhone lookalike, I'd take 10.5, strip out all of the unnecessary stuff, and go from there. Which is exactly what Apple did.

n[ate]vw: Your comparison to Jobs's little DRM memo is great. It's highly ironic for Jobs to talk about how bad DRM is for music, then hand us a completely locked down system just a short while later.

Adam: I could dispute what you're saying in various ways, but I think the simplest one is this: the iPhone is already capable of playing music while you browse the web. But only if you use the Official Apple Approved Music Player. If you want to use a third-party music player, tough luck.

Furthermore, there is no need to trust apps to play nicely in the background. Give me a way to kill them, and let me push them off my device, and the problem takes care of itself. I've already deleted apps that crashed, froze, or were just plain useless. This would be no different.

You say, "I think Apple really is trying to do the best thing here." So do I! But the road to Hell is paved with good intentions. Just because they think they're doing what's best doesn't make it right in any way. So far the end result has been a pretty bad user experience.

And if you want real and challenging hardware constraints, try doing navigation on a 2MHz integer-only CPU with 32kB of built-in RAM. Even there I had preemptive multithreading, and it could have easily run multiple apps at once if there had been any point to it. 128MB is luxury, and if Apple is having trouble playing music while running a web browser in that much space, they're doing something really wrong.

bonaldi at 2008-08-02 08:44:46:
The sentiment is spot on, but I (hope) that there's too much intent being read into this, where actually it's just down to Apple's limitations at getting code out the door.

After all, it wasn't so long ago that we were being told from on high that webapps were all we'd need, and this was a great solution for developers. Lots of blog posts grousing about it, and six months later an SDK is on the way.

I'm half-sure background apps will go the same way.

John at 2008-08-02 09:08:57:
I understand the reason why Safari trashes my pages, although I have a tough time understanding why it can't even keep two of them open.


What's so tough to understand? It's not like it's making arbitrary decisions. It's purging in response to memory pressure, period.

Are you saying you have a tough time understanding how a Leopard-based core OS and a WebKit-based app showing a single web page can end up pressing against a 128MB memory ceiling?

mikeash at 2008-08-02 09:23:05:
bonaldi: I'm not "reading" intent into the decision to forbid any unapproved applications from running. I'm not reading intent into the fact that third parties are prohibited from improving the situation in any way. As I said in the article, I expect bugs and problems in early releases. What I don't expect is for third parties to be intentionally rendered powerless to help.

John: Yes, I have a tough time understanding how an optimized mobile OS and an optimized mobile browser can require over 128MB of RAM to hold on to two web pages at once. If you can find enough time in between being snide, maybe you can explain just why it takes such an enormous amount of memory.

Rob Terrell at 2008-08-02 13:47:02:
I totally had the same thought -- that the Mac OS would get more closed, not the iPhone getting more open.

Why the control issues? All I can guess is a fear that some app will autodial 1-900 numbers, but that was never a real fear for Treo or Windows Mobile phones. That can't be it.

It's got to be about that 30% slice Apple takes. Because there's no other rational reason for it.

bonaldi at 2008-08-02 21:22:58:
Mike, it sure seems like you're reading things into it: "Apple doesn't feel like putting in the effort", etc. These are the same things people said about the lack of an SDK, and yet here we are.

iPhone doesn't even have copy and paste yet, it's way too soon to take the limitations of the first-born SDK as set in stone. Yes, I strongly suspect code signing is here to stay, but they've just put a *tethering* app on the store, so I'm ready to be surprised.

mikeash at 2008-08-02 22:01:34:
bonaldi: It really comes down to this: if I, or any other third party, could fix the problems I'm seeing, I would not complain. But we can't. And this is clearly a deliberate decision on Apple's part. It's not a deficiency, it's not an omission, it's not a hole to be patched over in the next firmware version. Apple has decided that we're second-class citizens, only Apple gets the goodies, and they're dropping the ball with them. If the device were open you can bet that you'd see a dozen copy/paste extensions by now. Sure, they would suck, but at least we'd have the choice!

Ultimately I'm not complaining about features, but about policies. Those policies are the ultimate reason why the features have problems.

When I first started using Mac OS X and discovered a glaring omission in the system-wide UI, I wrote App Switcher to fix that omission. It was my first OS X app, my first real released app of any utility. It got my name out there, and it eventually led to getting the great job I hold today. The opportunity to do things like this simply does not exist on the iPhone. Not because Apple hasn't done it yet, not because they're taking their time. Because Apple has decided, as a matter of policy, that we don't get to do things like that.

As for that tethering app, you see how long that actually lasted. The fact that it got through at all was clearly a mistake.

bonaldi at 2008-08-03 00:27:16:
But it is a deficiency! And I don't think it's any more *clearly* a deliberate decision on their part than not having an SDK was.

I mean, there's obviously a chunk of work that would have to go into less restrictive access for apps -- including at the very least a user-side process manager of some shape, and better protections to guard apps from each other.

I guess only time is going to tell whether they keep it locked up tight or slowly loosen the kimono. But since launch it has only got more open, so I'm hopeful. Ish. :)

(The netshare app is back up on the stores, btw)

mikeash at 2008-08-03 02:55:50:
It would take no work on Apple's part to let me drag a .app compiled for ARM into iTunes and install it. From there, everything else could be worked around. But they won't let us do it. They've decided to cripple the device and not allow me to install any applications that don't have the official stamp of approval. I give them no credit for slowly opening the thing, because it's their own fault that it started out closed. The very first release could have easily had some kind of unofficial backdoor to let people install stuff. Instead they did their best to block out everything, and jailbreakers have only succeeded despite Apple's best efforts. Making a closed platform is more effort than making an open one. It's not something you do by accident, and it's not something you do because you don't have enough time.

Re: the netshare app, I sure don't see it.

Eric at 2008-08-04 09:15:36:
I definitely understand where you're coming from and have been bitten by some of the same problems as you, but speaking as a user and not a developer, I have a bit of an appreciation for Apple's lockdown in these regards. I think the buggy 2.0 update did a lot to reveal that the iPhone, while a powerful little device, is still a somewhat fragile and limited ecosystem. I'd much rather put my faith in Apple's solutions to these problems than a third-party developer's, if for no other reason than not having to crawl the App Store -- or worse, the decentralized web -- for the "best" solution. And especially since Apple STILL generally makes the best apps in any given category, both on the iPhone and desktop OS X.

The current situation is a tradeoff to be sure, and a huge one, but I think it's right for the platform in the end. Keep in mind that the average iPhone user is NOT going to understand how or why they should download a Switcher-like hack, nor why such an app might be screwing up their once-smooth operation.

mikeash at 2008-08-04 10:35:43:
Eric, I'm really confused at your argument. You say that you don't personally want to use third-party apps for these things, which is fine. But then you make some sort of leap from there to deciding that such third-party apps should be forbidden. I just don't get it. If you don't want to use third-party apps for these things, don't! You're not forced to use them, and neither is the "average" iPhone user.

I understand how you might appreciate Apple's OS or something, but appreciating the lockdown because you don't trust third-party apps is like appreciating prison because you don't like sunburn.

Moitah at 2008-08-05 03:25:01:
One thing you didn't talk about, and I read all your article with a lot of respect for the time you took to write it : Apple doesn't want a phone where the phone app, which is the most important, could become laggy and crash due to third-party apps.

You wouldn't want a phone with the phone app coming up with a 6 second delay when someone is calling you ? So Apple has to put some limitations somewhere, until they can, maybe, authorize large apps with a better memory management system !

Because reading your prose I realized it's the first thing you want on the iPhone, the phone app, and that you didn't mention it. It's more important than losing a background tab's content in Safari. It's critical.

(Maybe I didn't make a lot of sense, excuse my writing skills in English, I hope you got the idea)

jpmist at 2008-08-05 03:32:25:
I'm probably the only one who listens to podcasts, but one of my larger gripes with the iPhone is that apparently since Apple gets no revenue from offering podcasts from it's iTunes site you can't download one from there to your phone to listen to it.

Instead, you have to physically hook the phone up to a computer and sync it to iTunes. Oh, wait, both my Mac and iPhone has bluetooth don't they? Nah, no luck there either.

To Jobs, the phone is an appliance and only he gets to decide how you're going to use it. I'm praying for Google's Android to work one day, I'll ditch my iPhone in a heartbeat.

Anonymous Sofa at 2008-08-05 03:32:55:
Mike, you whine like a mule. As many others have stated, yes you could have those things but your Quadra was an 8 year old Mac OS at that point, developed, matured, and working. If you want to compare the iPhone to something go with system 6.0.8 or earlier, prior to Multifinder. You have a new OS, so to speak, with a new UI method, running on batter and very little VM ability. Does the arm even have an FPU?

First you say you want this stuff to work, then you get mad when Apple locks it down. When the iPhone is 8 (1992 - 1984 = 8) it's a safe bet it will allow similar abilities to your Quadra. You will have copy, paste, multifinder, etc. You will also have a fuel cell that can run it all.

Rome wasn't built in a day, Apple is getting stuff down at the speed of business. Its faster than government and slower than you might like.

If you picked one thing to do, Meebo, Pandora whatever, and then did it I would guess it would work perfectly as Apple has tried to ensure. If it was advertised to run both at the same time it would. Its an unrealistic expectation on your part, not malfeasance on Apples. Everything mention you will come over time. Tivo started out the same way, it is not an all or none proposition. Be patient, and enjoy what you have rather being bitter at what you don't.

-Sofa

clvrmnky at 2008-08-05 03:36:55:
I think the "resource constrained" POV might stem from the fact that this is not /jst/ a 600Meg ARM with 128MB of thises and 256K of thats.

You started out talking about the iPod Touch, but we all ended up discussing the iPhone. I think this is not a mistake!

I would bet folding money that the engineering focus for the entire platform has been "never, ever interfere with the ability of this thing to work as a phone." That is, the platform itself might have been closed off because the platform is a mobile phone platform. This is a much more challenging platform that a general purpose computing device.

I can see why putting a fence around anything that might interfere with telephony might be a deliberate choice to keep apps from bricking the primary use of the platform.

Drumbo at 2008-08-05 03:40:09:
First time reader and poster (not really that relevant tho), however your article was excellent! Nice to see a little sensibility in amongst all of the fanatism about a device that is really good, but is let down in so many ways! Had it been any other manufacturer - the negative comments over the web would be a whole lot more!

Phuul at 2008-08-05 03:43:12:
I have had some of the same frustrations. The updating the application thing is just a huge oversite.<br><BR>

But when it comes to the limitations of the platform everyone seems to be talking CPU and memory. I think another big reason, probably close to the biggest, is battery life. The ability for Apple to allow certain of their apps to run in the background is a "Do what I say not what I do" thing though. But the do seem to have limited it so, being charitable, they figure if they control which apps can potentially drain the battery they determine what the expected use will be.<br><BR>

I'm fully on board with having the ability for certain applications to run in the background, music and chat apps are the big no brainers here. I do think that there needs to be some kind of explicit authorization and warning to the user that doing this will potentially cause the battery to run dry. Probably with a "Don't show me this again option." Will Apple ever do this? No idea.<br><BR>

I do think your extrapolation for future Mac OS X versions is a bit premature. It is good to look out for that kind of thing, it just seems a pretty big stretch from a 1.0 API on a 2.0 hardware platform.

Quix at 2008-08-05 03:47:24:
Good points all, and food for thought for all those who believe Apple will crash and burn without Jobs at the helm. To the contrary, Apple may finally be allowed to truly thrive once "My Way or the Highway" Steve no longer has the wheel.

Not that I yearn for the day when Jobs leaves, but there are certainly upsides to consider.

Dave at 2008-08-05 03:51:55:
Oh my god. You can listen to music while browsing. You can actually listen to music doing virtually anything</> on your iPhone. You can get to the playback controls from anywhere in the device. But you choose to bitch about not being able to listen to AOL RADIO(seriously?).

How can you not see the logic of quarantining apps from fucks like aol?
There are currently about a thousand apps on the app store. Probably more than half of those are pure rubbish. Can you really blame Apple for not letting their new, shiny platform become a pipeline for errors and crashes?

The iPhone is Apple's baby. They have put a lot of effort into it. And they came out with the smoothest, fastest cellphone in history. And for Apple, as for the majority of iPhone owners, that means everything. Believe it or not, some don't crave for a Switcher or get pissed because Meebo doesn't like them anymore.

And it shows. That's why the only pummels the device gets are not about crashes(I guess 2.0 is still a little shaky) or slowdowns, but for the sort of shit you're complaining about.
You really can't expect Apple to care about it when 10 million iPhone users don't.

Hamilton Lovecraft at 2008-08-05 03:59:46:
I think you're severely underestimating the constraints on the system forced by depending on a compact and lightweight battery and no hard disk.

The flash memory in the phone, unlike a conventional hard disk, does have a limited lifespan in terms of number of times it can be written to. That number is high, and we can assume the OS is doing clever things to spread writes out, but it means that the system cannot gratuitously swap data out to disk when memory is overloaded without shortening the hardware's lifespan considerably. On a desktop system, when you're out of memory, things just slow down. Without swap space, when you're out of memory, you're out of memory, period.

If Apple allowed non-Apple background apps to hold on to memory, then it would be completely impossible for any foreground app to guarantee it could run at any given time. What do you do? Allow foreground apps to terminate background apps? You called that exact behavior as a bug in this very post. Prevent foreground apps from running? So I just spent $10 on a game and it doesn't even launch because you have something else running in the background. I have yet to hear anyone propose any practical solution to this problem. Apple lets their own music player run in the background because they can control how much memory that function uses. How would they do that with third party music players?

Kevin at 2008-08-05 04:01:37:
The iPhone is first and foremost a PHONE, it is not a computer. Yes, it does run a stripped down version of Mac OS X, but it is still not meant to do everything a computer can do. Personally, I feel that if the phone was capable of doing everything you wanted it to do it would last about 5 minutes on battery or have to be about 4 times bigger than it is currently. I am not saying it doesn't have flaws, the biggest being copy and paste, but the fact that it doesn't multitask as much as you would like it to is not a flaw, it is a design decision to allow it to be able to do it's primary function, and that is to be a phone.

Damien Sorresso at 2008-08-05 04:03:08:
Nice use of Marathon levels as section headers. :)

GianCarlo Pitocco at 2008-08-05 04:06:00:
I love the original Marathon-themed headings. Thank you for that. :-)

Sunnan at 2008-08-05 04:07:41:
I love this article and I agree with every word except that this would be a smaller target than desktop computers with ten times the market share. Cracking phones is very different than cracking general purpose computers and is a different kind of target for that reason.

This is a side point and I don't mean to disagree with your article or your point in anyway. I'm glad people are speaking up about this issue.

James at 2008-08-05 04:25:35:
You know, prior to OS X, Apple made things difficult for 3rd party developers, and it brought them nothing but trouble. I doubt they'll repeat that mistake on the desktop.

Also, iTunes and the DVD player? Simple, they don't want 3rd parties harassing them because they didn't take steps to prevent people from reverse engineering their DRM. If it came down to a lawsuit, Apple can point to the encrypted binaries and say it's not their fault that the DRM was broken. They *are* dealing with the RIAA, here. It's not as if those programs were open source to start with, anyway.

---

Sidenote, you need to make sure your blogging platform closes tags after individual posts. The next post after this will be in italics, unless the poster closes the tag. ;-)

rand at 2008-08-05 04:29:25:
You are seemingly forgetting that this is a phone first and foremost. It is designed for consumers, not technical minded people like us. It's designed to be easy to use, not search around and try guess what app is killing the battery life. How much joy and troubleshooting calls would that generate? It would be like using a computer all over again for some users.

This is a Phone. Apple is doing the right thing in regards to that, making the phone easy to use, and as simple as possible for the maximum number of people to use and understand. No courses in the minutiae of application controlling, just pick up and use.

I can only think of a few apps off the top of my head that 'run' in the background. The iPod app, Safari (keeps the pages there as long as the system doesn't need the memory but it's not really doing anything with them as you pointed out so I'd hardly call this backgrounding the app) and Mail. To my mind these are acceptable. Yes I know what they say about background apps for us, but these are key features to selling the iPhone / iTouch. If I typed a mail, hit send and then 'quit' to the desktop to carry on doing something else and mail stopped sending, I'd be super pissed later on in the day when I realised my mail was still sitting there. These things are needed to sell the devices, third party stuff isn't.

And you can see on various discussion boards, that the iPod app dies while surfing at times. If even apples apps have this issue, and are probably programed so much better than most of the 3rd party apps, I can see why running third party apps in the background not a feature at the moment.

Having said all that, these features you complain about may come down the pipe. It's much much easier to limit features in a release than add too many and have to retract one. You know as well as I the complaints that would spring up over that one feature that is suddenly so important to some that they can no longer use the iphone / itouch anymore. The wailing would never end. Or at least generate way more bad publicity than not having the feature in the first place.

BTW, your quadra example is flawed, it had many advantages that the iphone does not yet, the biggest one, no freeking battery life to worry about. No fantastic graphics to worry about. No real multitasking / accelerometers / GPS / Phone radios etc. Just running one or two apps at a time.

Apple has one priority in reality, to make the best experience for as many people as possible. This requires cutting some features that smaller groups would like. This is what they are doing. It keeps them in business.

Your piece would have been better served as a rational opinion, not a rant.

Dave at 2008-08-05 04:35:34:
Engineering is all about trade-offs. I happen to mostly agree with Apple's design trade-offs.

The biggest constrained resource is the battery. Kill the battery and you kill the whole phone, so everything has to be optimized for maximum battery life. That's why (along with limited RAM) that background processes aren't allowed.

Code signing has been suggested by security experts for years. Just think, if Windows required some sort of code signing, viruses and adware and spyware wouldn't even exist. Adding OS support and even mandating code signing is a good thing, not a bad thing. Why not think about the future? having your head in the sand about security is not a good thing.

Blame the movie studios for Apple disabling debugging in the DVD frameworks. They require all sorts of contortions to get a playback license for the already-broken CSS. And you think Apple is bad, read up on what Microsoft did in Vista to satisfy Hollywood. I suspect that DRM is the main reason that Apple is not selling Blu-Ray drives yet.

There are definite issues with the iPhone- some are bad decisions or bad implementation by Apple, some are forced by AT&T, and some are just a new platform that hasn't really designed itself yet. Remember that Quadra was running a 9-year-old platform when Apple released it. Give Apple 9 years and i suspect the iPhone will be a whole lot better.

julian at 2008-08-05 04:38:10:
"For all we know, Snow Leopard will come with a switch that says "only allow Apple-approved applications", and it will default to On." Right, but that's totally in your imagination right now. For all we know, Snow Leopard will come with a button that says "self-destruct" right now this is just FUD

mikeash at 2008-08-05 04:47:24:
Well well, DF links and suddenly tons of comments. I'll do my best to respond to everybody. If I can't, and don't respond to you, please don't take it personally.

And another thing for DF readers: play nice. So far nearly everyone has been very good, but I have fears of the unwashed masses. Think before you post.

Now, specific replies:

Moitah: I didn't talk about it because it's irrelevant. It's not Apple's phone, it's my phone. If I want a phone that is laggy and crashes due to third-party apps, I should be able to have it. However, the phone app is not the first thing I want on the iPhone, because I don't want an iPhone. If I had an iPhone, then you can bet that I would uninstall any third-party application that interferes with the phone functionality. And thus the problem solves itself. If you're afraid of third-party apps, don't install them. This is not a good reason to force me to not have them.

Anonymous Sofa: Better than smelling like one. You have no real idea of what you're talking about, I think. Whether the ARM has an FPU has absolutely nothing to do with whether it can do multitasking or virtual memory. An FPU is for making floating-point calculations go faster, nothing else. And the iPhone is running an OS that is older than I am. If it needs to mature before it can provide capabilities that UNIX could provide in the seventies, then we're all doomed.

clvrmnky: We all started talking about iPhones because that's what most people have, and that's what gets the press. They're essentially interchangeable, because they run the same software. As for interfering with the phone functionality, there's no real reason that couldn't be off running as another user in such a way that you couldn't break it. This has nothing to do with preventing multitasking, or preventing me from loading any code I want.

Drumbo: Thanks so much. I couldn't agree more with what you say. In my opinion, the Apple community is getting far too intolerant of contrary opinions. It's like you're not allowed to think that Apple is doing anything bad anymore. This is partly why I wrote the article (rant) above.

Phuul: And once again, your need for a long battery life should not obstruct my desire to install any code I want. If people want a nice, reliable telephone then they can avoid "mystery meat" applications. Nobody forces them to install any. And for the record, I agree that my extrapolation is premature. But I'd rather warn about it and have it not happen, than warn about it after it's already too late. In fact I'd rather be wrong about the whole thing altogether.

Dave: I can listen to music while browsing, if I use Apple's Official Music Player. But I don't want to, because I don't have content for it. I want to use a music player with stuff I want to listen to. Apple won't let me.

As far as "quarantining apps from fucks like aol", what makes you think this is what's happening? Once an app gets on the phone it's pretty much unfettered. Apple's approval process is obviously not all that stringent, and if you can sneak bad code past it then you can go nuts. No, all they do is quarantine my own iPod against "fucks" like me.

As far as it being a great phone and lots of people loving it, I really just don't care. My points are not diminished by this in any way. There are a lot of crappy pieces of user experience in the thing, and Apple appears unwilling or unable to fix them or allow others to fix them.

In fact, I want everybody to stop talking about what the great unwashed masses want, right now. I don't care. It doesn't matter. I'm talking about the things I don't like, and the long-term consequences of Apple's decisions on the matter. The popularity of the device and the desires of the general population matter not one whit. This is point #6 in my list of things to read before replying. As such, this will be my last reply on that subject.

Hamilton Lovecraft: I know all about flash memory, like how it takes years at full blast before you begin to wear out a modern flash drive. There is no problem with doing swap to any decent flash drive. There are various reasons the iPhone doesn't swap, some of them are even good, but the "it wears out the flash" reason is bogus.

As for not being able to guarantee having enough memory, why does it matter whether the background app is made by Apple or not? If Apple's music player can safely run in the background, then any music player can.

As for a practical solution to the problem, easy: set aside a 512MB swap partition.

Kevin: This is nonsense. Running a music player in the background doesn't require different hardware. As proof, run the official music player in the background. Hey, it works! Now, tell me why Apple won't let me do that with a music player I actually care about.

Damien Sorresso and GianCarlo Pitocco: I'm glad somebody finally noticed!

James: How did Apple make things difficult for 3rd party developers prior to OS X? I understand why they lock down iTunes and DVD Player. That is irrelevant to my point, however. And I fixed the comment software to close tags at the end of each person's post, so they can't destroy the next ones.

rand: I'm not forgetting anything. I am complaining about deficiencies. What other people want out of the device is irrelevant.

Dave: What exactly prevents virus writers and adware writers from getting a code signing certificate?

julian: It's not in my imagination at all. Apple is already shipping one computing platform that only allows Apple-approved applications, and it's not even a switch you can turn off. Having them expand that to their other computing platform is a bit of a leap, but it's hardly "in my imagination".

The comments are coming way too fast now. (Several more appeared just while I was writing this!) So I'll only be replying to select ones after this.

emock at 2008-08-05 05:22:16:
Boy, I'm glad you'll never developer something my mother would use. Sure _I_ would love to be able to run apps in the background and be able to kill them when they go bad. However, my mother (and my wife) would wind up just getting pissed that their battery died after an hour.

Oh, yea, I can run apps in the background because I was smart enough to jailbreak my phone. I'm sure you are too. If you're smart enough to monitor system resources and kill apps, you're probably smart enough to jailbreak your phone. Or maybe not.

Mike at 2008-08-05 05:30:32:
Wow. Have you *tried* using another cell phone lately? Motorola RAZR? Blackberry? Any of the Windoze smartphone monstrosities?

The iPhone isn't perfect, but it's a damn sight better than the current "competition".

mikeash at 2008-08-05 05:34:21:
emock: I tried jailbreaking when I first got it. Spent a couple hours at it. Nothing worked. Gave me a couple of scares when I thought I had destroyed the thing. I have not had the courage to try it since.

Mike: The usability of other cell phones has absolutely no relevance whatsoever to deficiencies with my iPod Touch. Please try again.

GQB at 2008-08-05 05:38:04:
"In fact, I want everybody to stop talking about what the great unwashed masses want, right now. I don't care. It doesn't matter. I'm talking about the things I don't like, and the long-term consequences of Apple's decisions on the matter"

Well, not to put too fine a point on it, its really all that matters.
Its easy when spending a lot of time on forums such as this to delude ones self that this is still a day when the niche cravings of ubergeeks matter at all.
The iPhone/touch is a consumer device. I'm sure you'll enjoy the Google vaporware when it appears, hobbled by its need to run on lowest common denominator hardware.
As both an ADSk holder and touch/iPhone user, I applaud Apple's approach to this.
My .02.

mikeash at 2008-08-05 05:50:32:
GQB: I don't care what matters. This is not a "I want to change the world" post. Nor is it a "You should listen to me because I am telling you what's important" post. I'm venting. Ranting. Complaining. I am telling you about the things that I do not like. In this context, the opinions of the masses could not possibly matter less.

As for why you think I'd enjoy Google's offerings, I have no idea. I made no such indications in my post. This is just another example of the fundamental sickness of the current Apple fan community: if you dislike something that Apple made, it must be because you're in the pocket of some other manufacturer.

Warning to future commenters: any further comment which hinges on how bad other phones are or how deluded I am for thinking my opinion matters will be deleted, not replied to.

Kevin at 2008-08-05 06:13:40:
You're right it doesn't require different hardware to run a different music player. But look at it this way. If you are keeping the Radio music player running in the background then you are constantly accessing a wireless connection (Edge, 3G, Wi-Fi) and the iPhone is most likely cacheing some of this in order to keep it from skipping, so you have constant memory access and you have decoding taking place. Now I understand that the constant memory access and the decoding happens even if you use the Ipod feature of the iPhone, but not the constant wireless access. So while you are listening to the music your battery ends up dying after only 4-5 hours of use and now you can't make phone calls, which is what the iPhone is for, making phone calls, it is in the name. And all I was trying to say earlier is that this device is first and foremost a phone, not a computer. If you need a computer, buy a computer not a phone.carb

gopi at 2008-08-05 06:41:53:
I've been astounded at how many of the reviews on the App Store have complained about how Apple could expect people to pay so much for this or that app.

Except, none of the apps being complained about were written or, obviously, priced, by Apple.

People who find their iPhone experience poor will likely think of that when they are choosing their next phone. Some of them will be so clueless as to not realize who wrote an app, some of them won't understand that choosing an app that communicates a lot will, in fact, reduce battery life. But most of them will remember that they were unhappy with their iPhones - and very few of them will blame _themselves_ for this. People often find ways to blame others.

That being said, the argument that "It's not meant to be a computer" is a ridiculous argument to support the *intentional* disabling of a feature. It's an OK argument for not putting effort into something, but it fails to justify the active denial of anything.

I find Safari on 2.0 to be a very frustrating experience compared to 1.1.4. Safari sucks way more memory, it seems, and blows away web pages much more quickly. Using Google News, half the time it purges Google's page before I finish reading the linked article.

Doing a quick test, Google news is under 100kB of data. When I click on the "more stories" link twice, it's still only 230kB. My device has 128MB of DRAM. Why are we hurting my experience so much to save so little memory?

I'm speculating, but my guess is that MobileSafari doesn't have any code in their to optimally reduce memory usage while keeping enough data to allow the page to be re-rendered. They didn't include the ability to just purge the rendered display elements and processed bitmaps, but keep the small amount of actual text around. That would, I think, fix the problem. Also, preserving not just your current link but your browser history would also be nice...


Clayton Nash at 2008-08-05 06:43:22:
Sadly I have some sympathy for your viewpoint. I love my iPhone and my MacBook Air. But it's a worrying trend to see Apple essentially 'do evil' which has been their approach since the beginning with the iPhone. Those petty little ringtones updates to iTunes just ingrained the message. Not only was Apple forcing us to update to stop us using our own ringtones, like a petulant child, but it was to stop us using a horrifically engineered piece of software functionality.
There's a simple way around apps using too many resources and it's already built in to most modern Unices - I assume its either in or would be simple to add to OSX - process quotas. Simply give a process a hard or soft limit on memory usage. Guarantee the phone interface's memory and renice it to hell and gone and you have no more problems with runaway apps. If that was the problem they were trying to solve this would have been sorted years ago. The key driver of battery use is the radio so why is the iTouch constrained in the same way as the iPhone? Why doesn't Apple simply block access to the radio API for background apps? Or give them a radio quota?
Because that's not the problem they're trying to solve. I don't know what problem they are trying to solve, but it doesn't feel like one that benefits me.

Jeff McNeill at 2008-08-05 06:44:43:
I see you are weathering the faithful's loyalty backlash. I was afraid of this on the version 1.0. I went with a Nokia N82 with the S60 Symbian. That is a smokin OS, though not perfect. I do get the 5mp video camera as well, but I don't get the big screen and touch interface. Wah.

Thanks for this, I appreciate the real user experience being blogged about.

Mo at 2008-08-05 07:24:39:
A relatively minor point, but... if the iPod touch and iPhone are like every other iPod, they do their audio and video decoding in hardware, not software. All that Apple's music player application needs to do is shuffle bytestreams off the Flash and into the hardware decoder, which can be done in a tiny amount of memory. I will concede that the obvious argument is that other applications should be able to do the same thing. However, the way to solve the problem without making it such that the device sucks for the vast majority of iPod touch and iPhone customers is a special testing/approval process in the AppStore, not a simple "I'm an expert" switch in the OS: everybody's an expert when an OS or application asks them.

On the Safari front: I don't know if you've profiled WebKit (or, indeed, any modern browser's rendering engine) running a scripting-heavy page for a while. I have, at least on a superficial level. They all suck, especially memory-wise. 128MB of RAM is a pittance, especially when only a fraction of that is actually available to the browser. It's a marvel it can render what it can, let alone keep track of what you were doing in more than one page at once.

I'd love to see, say, Firefox 3 or Safari 4 backported to run on your old Quadra. I guarantee that it'd make MobileSafari seem like an absolute dream in comparison.

You were given an iPod touch: that's a bit of an exception to the rule. Generally, people have gone out and bought them on its merits. Yes, iPhone OS 2.0 buggy and disappointing in places, but it's all fixable given sufficient time, and most people aren't disappointed because they weren't expecting anything more than they got (indeed, OS 1.x customers weren't even expecting what we've ended up with).

PS: This form doesn't handle non-ASCII characters. Very very odd. MySQL has a rather ungraceful hissy fit at me.

ixpah at 2008-08-05 09:57:07:
I agree with you Mike for the most part. The lack of background task support and the requirement that all apps must go through the App Store is just inexcusable. My BlackBerry Pearl 8120 has fewer resources and is "a phone first" and yet can still run many many apps at once (including media playback) as well as install any old MIDP app or BB specific app I come across on the internet. Anyone who says the reason we can't do these things on an iPod Touch/iPhone is "resources" should just look at the competition. They can do all these things and more and the sky hasn't fallen on em. Oh, and my battery life rocks even with background tasks.

Your comparison of the iPod Touch to a Quadra 610 is a bit hyperbolic (id like to see a Quadra 610 access Gmail and Meebo at the same time, esp since the Quadra was discontinued a year before JavaScript 1.0 was even released), but I appreciate what you are saying. Many times improved hardware makes for lazy programmers and so we end up with MS Word requiring a state of the art computer to do the same things I was doing with it back on my old Mac SE/30.

Finally, I would like to respond to your comment @John (w/o being snide):

"John: Yes, I have a tough time understanding how an optimized mobile OS and an optimized mobile browser can require over 128MB of RAM to hold on to two web pages at once. If you can find enough time in between being snide, maybe you can explain just why it takes such an enormous amount of memory."

The two pages in question (Gmail and Meboo) are some of the most resource intensive webpages out there. Just loading up GMail in Safari 3.1.2 takes a solid 30MB RAM (wired, not virtual or swapped) on initial load, and that number quickly increases to over 50MB as more and more AJAX calls are made and more state is loaded by GMail. And those numbers are what is used just for the page (not the browser as a whole). Granted, a mobile version probably has better optimizations, but even at 50% less memory, its still a lot. Some quick profiling suggests that most of this memory is being used up by the JavaScript interpreter (and the resulting parse tree) and the CSS2/3 rendering engine (:hover and such). I am sure Meboo is similar. If you load up static pages on your iPod Touch, such as this post (which uses about 5MB in Safari 3.1.2), you will find that you can have 5 or 6 windows open and switch between them w/o content loss. At least that is my experience on my iPod Touch. 128MB RAM is just not that much for a modern browser (with JavaScript and CSS2/3 support), since a modern browser is almost an OS unto itself. This is not meant as an excuse, just as an explanation.

mikeash at 2008-08-05 12:08:44:
Kevin: You may be right, but I have an iPod, and if the battery dies it's not a big deal. Furthermore, Apple shouldn't be playing nanny to me; if I want to run my battery down, it's my business. Lastly, Apple already lets you do things like watch H.264 videos being downloaded live from YouTube, which I can only believe would be vastly worse.

gopi: Apple has only themselves to blame if people are complaining to them about App Store prices. It's only natural, given that the only place to get apps is through an Apple-branded official store. I agree with you about Safari not gradually reducing memory usage. I also get the impression that it's all-or-nothing with these pages, and the "all" is considerably more hefty than it would have to be.

Mo: Other applications are able to access the hardware decoders. There's an API for it and everything.

As for a special testing/approval process in the App Store, replace "iPhone" with "Mac" in your sentence and suddenly it becomes ridiculous. Why is that, exactly? I maintain that it's ridiculous all the time. Why should Apple need to do special testing and approval for an app that I want to use? It's stupid.

I'll freely admit that overall it's a pretty nifty device. I'm just not one of these people who feels a need to put up a wall of political correctness around any criticism. This post is about what I don't like, not about what I do like. I doubt that I would buy one on my own, but that's mainly because I have little opportunity to really use an iPod beyond it being an amusing toy around the house.

As for the non-ASCII characters, I went out to fix it. And... I couldn't. Nope! Won't go. Python plus MySQL plus Unicode whatever configuration my web host uses appears to be an intractable problem. The best I could do was to get it to replace all non-ASCII chars with question marks, or to cut off the post at the first non-ASCII char, depending on what bits of magic I used. Since these are less than ideal, I decided to go back to how it was and show the evil error. If anyone has good advice on this subject, I'd love to hear it.

ixpah: I don't think my comparison is hypocritical. It may be unfounded or wrong, but I'm hardly professing beliefs that I do not hold.

As for the ridiculous RAM requirements, I guess that would explain it. I would have thought that they would have put more effort into optimizing RAM usage on the iPhone. And just a nitpick, I don't think you mean "wired" memory here, as wired memory is memory that is forced into physical RAM at all times and cannot be moved out. It's mainly used in the kernel for things that must be present in physical RAM at all times, such as tables relating to the management of regular memory. It's occasionally used out in userland for things like buffers for realtime audio playback, but there's no reason to use it for web pages. If you're looking at the RSIZE or RPRVT, that's just resident memory.

Anyway, it could all be solved with a little swap! It would work fine, and would be much faster than constantly reloading purged pages. Oh well....

Harvard Irving at 2008-08-05 12:10:51:
I think your memory is failing. Back when we had machines with only 128MB of memory, we didn't tend to multitask much. We would vigilantly shut down any applications that weren't strictly necessary, or didn't need to run in the background.

Even then, with only ONE application open at a time, those applications ran sloooowly. No surprise that Apple wants to discourage multitasking. Users would be furious if iPhone apps ran any slower than they currently do.

mikeash at 2008-08-05 12:42:08:
Harvard Irving: Maybe you should consider the possibility that other people didn't always have the same work habits you did before you start accusing people of having failing memories.

For example, here is a screenshot I just happen to have lying around of my workspace, circa 2000:

http://www.mikeash.com/pyblog/ibookworkspace.png

That's an original iBook, which shipped with 32MB of RAM. I most likely expanded it, probably to either 64MB or possibly 96MB, but here my memory really does fail. I'm quite sure I didn't expand it above 128MB at this point, as I didn't really have a huge amount of money then.

As you can see, I was running seven applications when that screenshot was taken, not counting the Finder. This was typical at the time. Much of the work was offloaded to other computers (see the telnet and X11 windows), but much was local too. And I can assure you that this old iBook performed just fine doing all of this, although surely not quite as well as my 7GB Mac Pro handles things today.

My first introduction to multitasking was on my Apple IIGS which had a grand total of 3.125MB of RAM. It had lots of problems as you might expect but it was possible.

Later on I got that Quadra, and multitasking got a lot better. RAM Doubler helped a lot. Yeah, it was slow, but everything was slow anyway. I could certainly do something like run Netscape and NewsWatcher simultaneously with no trouble.

Next was a PowerCenter Pro. I think this one shipped with 16MB, probably later upgraded to something a bit bigger. It had no trouble with doing plenty of multitasking, which I did constantly.

So no, I don't think my memory is failing at all. It just doesn't happen to agree with yours, because you seem to think that your experience must have been everybody's. Certainly my current computer does a better job of it than the ones I owned in years past, but that's just because it does a better job of everything.

If you don't want to multitask, don't. But please don't think that I should be prevented from doing it because you don't like it.

JadedConsumer at 2008-08-05 13:42:17:
My impression of UI responsiveness on the iPhone makes me convinced that the device is pretty resource-constrained even without third-party applications. Maybe future OS development will make this better, just as later versions of MacOS X ran faster on my PowerBook Firewire. Things could get better.

In the meantime, limiting applications that run at the same time has some value. I think the real problem is that Apple didn't solve the problem with the elegance that it might have. Apple didn't create a funnel for the audio and let you pick which music app would get it, then let that app do non-GUI work in the background. Apple made its own app the music app and told everyone else to bugger off -- unless they wanted to run a music app as a single-tasking application in the foreground. u-u-u--gly

Picking some tasks the phone should be able to handle and allowing users to pick things that can go in those slots might be a way to handle the problem, and keep too many apps from trying to do the same thing. (How many apps need background access to the speakers at the same time, other than for notifications?)

Ironically, there are posts urging that Apple should have vetted App Store submissions more thoroughly, and should be called to task for apps that "sucked" for various reasons. Folks are bound to disagree on all kinds of things. I think Apple's desire not to be on the list of security alerts for Trojans and the like makes it choose -- at least initially -- to use single-source applications and code signing to prevent unintended code launch. Yes, Apple goes overboard. On the other hand, is this surprising? Apple didn't want third parties developing for the phone at all ...

The eventual system we'll have on the iPhone will no doubt be different than at launch. Apple's seen other developers suffer black eyes over the difficulty to find apps and the prevalence of malware, and it's unsurprising to see Apple get hamfisted in the effort to solve this. Why iTunes can't access internet radio like iTunes can on the desktop is a total mystery. Why third parties can't be trusted to run music players is also a mystery, although third-party players presumably can't access the iTMS DRM.

With 265bps MP3s, Amazon's music store is fairly attractive, particularly for tracks Apple doesn't offer DRM-free. Does Apple fear this kind of competition on iPhones? Does Apple care about anything other than multitasking of its few preinstalled apps?

Apple hasn't been very good at preventing quality issues in a number of recent launches. I'm unsurprised about this kind of issue. On the other hand, given the performance I've seen on software 1.x and 2.0, I'm also unsurprised to see Apple convinced fully that this kind of performance protection is critical to ensure folks don't think the phone is just too weak for use. The result is, of course, a phone that is crippled to the point of infuriating developers who would care about fixing the problems properly.

It'll take time to sort out -- and maybe more than just time. Does AIM maintain connections while in the background? Is this solved with push notifications?

Crazy,

mikeash at 2008-08-06 00:54:36:
UI responsiveness seems largely fine to me. Two exceptions to this. One, certain third-party apps seem to have placed speed as a secondary priority. (And I don't blame them at all for that, it's perfectly reasonable.) Two, Safari loves to block the UI for seconds at a time when loading pages, which causes all sorts of hilarity.

As far as I'm concerned Apple can place as many restrictions as they want as long as I can turn them off. If they think multitasking is bad for my health, fine, just let me bypass it. All I want is to be able to hack the device.

I also think that Apple should have vetted App Store submissions more thoroughly. Who needs five flashlight apps? But the problem is that the App Store is the only way to get software for the thing. If the App Store was just one way, and it was possible to download and install apps through other venues, then I'd have no problem with that. But since they've set themselves up as the sole source for software, they've deliberately put themselves in a tough position.

AIM does not maintain connections in the background (it is killed like any other third-party app) and it does not use push notifications (which aren't available yet). AIM uses a clever solution of simply telling the server to pretend like you're logged on for a few minutes after you quit. If you relaunch AIM in that time, it reconnects to the server and downloads all of the pending messages you were sent in that time. So it functions as though it stayed open in the background, as long as you check it every few minutes, except that it can't notify you of new messages when it's not open.

Leo M at 2008-08-06 01:39:32:
Mike, I am 100% agreed with you. I *started* to learn more programming but when Apple started this [continued] stupidity with the AppStore I continued learning the 'toolchain'. You know, the goodies Apple doesn't want you to have. At any time I'm running: sshd, afpd, ScrobbleD, all via Erica Sadun's UIctl.

I also use Instintiv Shuffle, *and* play music *and* do VNC stuff via TouchPad Pro.

So, in the midst of all these claims of 'limited resources' I just roll my eyes.

Here's a pic of my touch:

http://flickr.com/photos/leoofborg/2584185414/

If Apple is going to behave in a monopolistic fashion then the only thing users will be able to do is tie software to hardware, as in 'optimized for firmware 1.1x'..

Which is what I've already started do. You wouldn't know the plist or settings for iTunes to:

defaults write stop.bugging.me.about.buggy.firmware.2.Apple true

..would you?

NDPTAL85 at 2008-08-06 08:30:54:
1 quick note, with the latest iPhone update Safari doesn't forget what page you had loaded anymore.

As for your rant, your right its certainly your opinion. I've been seeing this trend from hardcore techies in regards to Apple lately. I'll even coin it the "Bonfire of the Geeks". Your right Apple is locking things down. I even speculate that it won't be long till there's an AppStore on the Mac itself.

Do your opinions matter? To you they certainly do.

From Apple's perspective though the developer isn't the most important person in the equation, the customer is. The non-geek customer seeing as how Apple's entire business philosophy is to build machines for "the rest of us". Other platforms that cater to developers or even bend over backwards to them suffer in the UI realm for the users. Linux for example is free and open and completely accessible. So why does Ubuntu make me cry as a user? Windows Mobile while not free software is a lot more accessible than the iPhone OS is yet there's no contest as to which one I'd rather use as a user. It would be awesome if both sides could be completely happy but if you have to pick a side as a company Apple is going to pick the users every time.

Your rant just told us how you and many other developers hate what Apple is doing. Let me tell you how I as a user feel about it.

I love it.

I don't know why something like the AppStore wasn't thought of sooner. I used to be a Palm OS smartphone user for 5 years. Three Treos and two Kyocera smartphones. I can remember what hunting for apps was like back then and the 6-7 steps it took to install an app. The end result is most smartphone users don't install third party software on their own unless their IT department or their geeky friends/neighbors do it for them. I convinced nearly my entire office to get a Treo and only like 3 ever installed 3rd party software on their own. Why? Because you had to

1. Google for the app.
2. Go to the website.
3. Purchase the app.
4. Download the app.
5. Put the app in your hotsync manager.
6. Sync your phone
7. Pray it worked.

With the iPhone and AppStore you just have to

1. Open the AppStore
2. Find your App
3. Download.

Based on this incredible simplicity the iPhone will in about 2.5 years have more users using third party apps then Symbian, Windows Mobile, Palm OS and Blackberry COMBINED. Now I'm not a math whiz but that sounds like a huge potential market for developers. More than worth it to put up with some code signing and walled garden tactics from Apple.

Since the AppStore is taking off so well this will encourage Apple even more to bring it to the desktop. Once they do its only a matter of time before they (say 5 years from now) start to prevent non-AppStore application installs. I don't have a problem with it.

As for alternatives, I can totally see Microsoft adopting a similar scheme as they've been trying to head this way for the longest time anyways. So if MS adopts it and Apple is already there what does that leave you with as a developer who likes to tinker and hack just for the fun of it? Linux? Sure Linux will always be open. But whats a developer without users/customers?

This isn't a mindless fanboy defense of Apple. I totally acknowledge they're fucking over a certain class of developers. That can't really surprise anyone though, Apple's never afraid to piss anyone off if they see a bigger return from it down the road. Take a look at their retail operations, when they started with the Apple Stores 3rd party Mac retailers were pissed. Some sued. None of it matters. The Apple Stores were a smashing success and are helping to grow the company marketshare. Apple was right then and they're right now.

As for your reply to GDB you totally misread his suggestion in regards to Android. He wasn't accusing you of being in Google's pocket. He was saying you'd be happier with Android since you like to tinker and since Apple doesn't care about tinkerers in the least on the iPhone.

mikeash at 2008-08-06 09:12:15:
NDPTAL85: Funny thing about your comment. You keep saying developer this, developer that. But the whole point of my post was that it's about my experience as a user of the device. Nowhere do I complain specifically about Apple hurting me as a developer. Rather, I complain that Apple's hobbling of the third party applications I use impacts me as a user.

I also find it rather bizarre that you feel a need to lecture me on how Apple works or what they do. I've been an Apple user for two decades now. This is, I would wager, considerably longer than 90% of the people replying to me. I am intimately familiar with how Apple does business.

And then you go and talk about how gread the App Store is, and somehow decide that this necessitates locking down the system. And the best part is, you don't even address that part. You don't even mention it. You just gloss right over it, as if the distinction didn't even exist.

You know what would be really great? If I had the option to either download from the App Store or install apps manually. I simply don't grasp why so many people have a problem with this idea. If you love the simplicity and the perceived security of the App Store, nobody forces you to step outside of it. But for people like me, who prefer not to have Big Brother decide what I can and cannot use, we'll be able to make our own decisions. Everybody wins!

To put it another way: I feel like this whole situation is extremely unequal, and that people on your side are being extremely unfair. I just want everybody to be able to do what they wish. I want people like you to have an App Store where they can get vetted applications. I want people like me to be able to install software with no controls. You, on the other hand, want everybody to be like you. You want software to only be available through vetted channels. People like me can, apparently, just go hang. Why is this considered to be even remotely acceptable? How is requiring it a good thing for users in any way? I've never heard an answer to that.

Once again, from my perspective as a user, if and when Apple decides that they will allow only vetted applications on the Mac, I will jump ship. I enjoy far too many third-party applications to be tied to such a platform. I hope that this will never happen, and I hope that my prediction in the post is wrong. But if it does, I'm gone.

And as a developer, nothing could be worse than to have to pass my products through Apple before being "allowed" to sell them. I can't tell you what I'll do for that end; I may hold my nose and soldier on, I may not. I have no plans to do any really serious iPhone development. If Apple ever releases an iPod Touch with GPS support that may change; I have a particular application in mind that I would love to make for that. But for the most part, no real desire.

About GQB, you're wrong. Read the entire sentence:

"I'm sure you'll enjoy the Google vaporware when it appears, hobbled by its need to run on lowest common denominator hardware."

This is sarcasm. He's pointing out that, in his mind, Andriod must be worse than the iPhone because it has to accommodate lots of different hardware, and simultaneously ridiculing my perceived love for it. He's most certainly not saying I'd be happier with it: nowhere did anything like that ever get said.

n8 at 2008-08-07 01:36:16:
I have to say, the idea expressed in several comments above that "geeks" are irrelevant to popular culture is beyond clueless. And on this very topic! It's hard to think of more clear-cut evidence that technophiles are driving modern culture than the iPhone frenzy. But if people want to dismiss the opinions of those at the forefront of that culture, they can go right ahead being contented consumers until Apple changes course (because, usually, they are no fools) or a product from some other company becomes the cool thing that everyone must buy. The market-following non-geeks can be just as shocked by that event as their sudden need to purchase a well designed MP3 player in 2004.

NDPTAL85 at 2008-08-07 03:44:19:
I assumed incorrectly that you were speaking as a developer as thats where most of the anger towards Apple AppStore's policies come from. I apologize for that.

As to glossing over why it has to be the AppSore and no other way to load apps I'll go into details on that.

There are other platforms out there that do allow people to install whatever apps they want as you are well aware. Windows Mobile, Symbian, Palm OS. The problem with allowing it, even the choice of using either the AppStore or free range apps as I'll call em is that the free range apps end up representing your device. The vast majority of those third party programs for those other platforms are crap. Apple doesn't want the same legacy for the iPhone that those other platforms have. So Apple is locking down the platform to try to establish a floor for quality. This is why we can't have it both ways.

As for things being "unequal". This is a software platform, not a civil rights issue. If I have to pick sides I want a platform that's user centric not developer centric. It would be great if we could both be happy but at the same time even if you are not happy you are are just you. There are other developers who are just fine with the AppStore and they'll happily take the place of those who decide to not 'play ball'

And in reply to 'n8' geeks aren't irreleavnt to popular culture. Its just if you cater to geeks you usually do so at the expense of the much larger non-geek market. I dispute the notion that technophiles are driving the iPhone frenzy. Regular people are. Thats why the iPhone is such a big deal. Its a smartphone for "the rest of us".

mikeash at 2008-08-07 10:18:22:
n8: I have to disagree with you at least partially. Geeks may or may not drive the market, but if they do, I'm not in that market-driving group. I've only bought one iPod (and it goes largely unused), I don't have an iPhone, and in general I lag behind these trends by quite a while, if I follow them at all.

I do think that the geek crowd punches above their weight, though. Simply because geeks have lots of non-geek friends and family, and their expertise is sought for recommendations when purchasing. Apple's recent success is largely due to good design and intelligent marketing, but a significant part of it is also due to moving their OS to a solid UNIX foundation and attracting the geek segment.

NDPTAL85: Your argument for an exclusive App Store falls flat with me for two reasons:

1. On open platforms such as desktop Macs, the crappy free software never represent the device. When I think of what software represents the Mac, I think of Safari, iTunes (which is crappy and free, but hardly the sort of thing you mean), iPhoto, NetNewsWire, Adium, and all the top-flight software that people actually use. There's no reason to think that this would suddenly change just because the screen shrank to the size of a credit card.

2. Even with the exclusive App Store, Apple clearly has no real desire to limit the supply of crappy free apps. Just go look through the dregs of the App Store for a bit. There is no quality floor. If Apple were really trying to establish some sort of quality control there wouldn't be five different flashlight apps, hundreds of individual Project Gutenberg apps, or a thousand-dollar app whose stated purpose is only to show off how rich the owner is.

As for fairness, I don't think it matters what kind of issue it is. As far as I can tell, my desire (to be allowed to load code onto my own device) does not harm you in any way. But your desire harms me with no benefit to yourself. Unfair, mean-spirited, whatever you want to call it, I just don't understand it.

I just want to be able to load programs onto this thing without going through Apple. How does preventing me from doing this help you in any way?

n8 at 2008-08-07 10:51:37:
Really, NDPTAL85? How do you think this phone got to be in existence for everyone to buy at the same time? The company almost went out of business, several times, while the geeks you dismiss were trying to convince their friends and family that yes, you could run Microsoft Word on a Macintosh. The degree to which the purchase of a massively popular product can "drive" that product's multi-year development is exactly zero (time travel being unavailable). But if it makes you feel better, your eagerness to follow and uncritical endorsement of company policy is driving one thing: complacency and eventual decline. Go ahead, laugh at that impossible idea. The masses that lined up to buy Windows 95 (it too was a lifestyle news story) would have laughed if given an accurate prediction of Vista's current popularly and reputation.

n8 at 2008-08-07 11:12:20:
I don't know, mikeash, maybe you are just too sensible. The iPod never made much sense unless you live in a city and either walk or take transit. (Eventually the Mini and flash versions were good for exercising.) But the product understandably caught on in cities (first with longtime Apple fans or "geeks", most definitely), and from there exploded into all markets so that now, regular people can sit in front of their computers listening to a separate device decode and amplify mp3s.

I didn't mean to apply anything you personally, but to the general nonsense that technical people are too technical to have any influence on this technical revolution of culture.

ryan at 2008-08-07 20:05:52:
Um, viruses and worms are background processes aren't they? I'm certainly not disappointed about the lack of those on the iPhone/iPod Touch platform...

mikeash at 2008-08-07 23:50:33:
Ryan, that may well be the least intelligent thing anybody has said in these comments so far. If you can't be bothered to read through the points that I explicitly asked you to read before posting (point #3 says straight out not to talk about viruses and worms) then don't bother posting a comment.

David Zatz at 2008-08-08 01:25:06:
Hi, Mike. Good article - gotta agree with you. Apple does move from pole to pole but Steve Jobs being a control freak is a constant. He doesn't seem to realize there isn't One Good Way to do things. I mean, this IS the guy who got furious with Wozniak & Co. for putting an expansion port into the original Macintosh - a port which would have done wonders for their market share.

You can add to your list. 10.5 breaks the rules for many UNIX programs. Simple things users have been demanding for years are not added; instead we get half-baked Time Machines that apparently can never be completely shut off from the user interface. I'm wondering when we'll lose Terminal.

Easy at 2008-08-08 03:29:28:
My intention with this reply is not to defend Apple, but to defend the concept that an consumer electronic device CAN have limitations imposed and better fulfill it's function because of it.

I think the interesting thing here is that the IPod touch/ IPhone is being considered in this piece more as a portable computing platform rather than a consumer elctronics device. Certainly, the progression of such devices has been blurring these lines for a couple of years now, but with the IPod 'worlds are colliding' and an honest discussion on the pros and cons of convergence can really take place. Computers are an open platform, but necessarily complicated and relatively unreliable as a result. Consumer electronics tend to be more straightforward and reliable, but inflexible. It seems to me that you can trace people's reactions to this article back to which side of the fence they want this particular device to be.

Gaming consoles, cars, phones, etc are now starting to incorporate a more computer-like infrastructure in order to increase their flexibility but along with it many consumers have begun feeling that they are occasionnaly beta-testers for hardware (in the way that they frequently were with software in previous years on computers). Sure, the potential improvements in features are real, but it becomes tedious for most people to deal with installing firmware patches for formerly simple devices like cameras, receivers, etc. I'm not sure that all users feel this is a step in the right direction.

So, to get back to your article, I understand why you say that (for example) allowing the aquisition of software outside of the app store doesn`t preclude the majority of users from using the app store. Allowing bad software doesn`t make users install it. etc, etc. Problem is, once you open the pandora`s box of a full fledged computing platform, you inherit all the good and bad that comes along with it. You are probably comfortable with those trade-offs, but that doesn't necessarily make them appropriate for every device. I don't think that it's unreasonable to expect that most people aren't willing to face the problems that are associated with computers with everything from their remote controls to their cameras and cars. Apple wants this to be perceived as THE MOST AWESOME CONSUMER ELECTRONIC DEVICE EVER, the IPod(please note that Apple's definition of what an IPod is grows with time. Currently, it's a portable Itunes player, a phone, a movie player, a photobrowser, an internet browser, a contactbook, and calendar, and a platform for a number of internet utilities). It is NOT marketed as is a computer,a nd I doubt that's an accident. It's an appliance for a seemingly interminable amount of things that could previously only be done on a computer. The difference is subtle but important.

If they open the door, many of the characteristic problems will make their way into the device, wanted or not. An important software company will release their app solely outside of the app store, and users who really like that environment will be forced to use the other route. Users who just want a phone, or an IPod, will install an app which will drag down the device and they will have to learn about uninstalling apps, killing background processes, etc. The idea of such an appliance is admirable (in my mind), but Apple is having a certain amount of difficulty succeeding with this vision despite the limitations they've imposed. I'd rather they tightened up the restrictions, not loosen them.

You mention that the user experience, for you, is worse than it should be. You cite certain good examples of this. However, implicit in your argument is that you feel Apple released a device that can be anything, and that it should be allowed to be anything. According to what I've read from Apple, they released an Ipod, and it can do other stuff, too. Your main criticisms have little to do with the device as an IPod, but rather as a platform for your choice of music player, chatting, etc. Those programs are hobbled by the device's focus as an Apple IPod.

As an aside: You cite that in the past, developers would simply patch this kind of hole. That's true in the world of computers, but not for any other category of device. For a consumer electronics device, users would purchase a device that did most or all of what they wanted(if it existed) or live with the limitations until a better device came out. Not that I'm saying I want to go back to those days, but at the same time I don't blame Apple for making some decisions that attempt to preserve some of the stability and predictability of those devices. It's an IPod (or IPhone) first. It needs to do what Apple has promised this device can do. Their not selling it as a computer, and regardless of the fact that there are not necessarily any software or hardware limitations to prevent it from being one, the expectations are different. Additional apps will come about to make it do different things, but it needs to be reliable in it's original function. For every other device you name which has the abilities to swap music programs or have background processes, I bet you could find concessions that have been made, or a negative repercussion, that has been brought upon the device due to that flexibility (a more complicated interface, worse battery life, whatever). In other words, there are trade-offs inherent in deciding what type of device you are trying to make... adding something often means making something else worse.

If you know of another device which is both an open computing platform AND a great consumer electronics devices AND does all the things you want exactly the way you want them AND works well then I would suggest you ditch the Ipod touch and buy that device. I doubt that such a perfect device exists, however, and imaginging that making these decisions to allow the things you want will not have negative repercussions on the device is not realistic. I wouldn't normally be so harsh, but in your responses you've frequenly made allusions to the fact that adding what you want would not negatively impact the device in any way. I don't beleive that is true. With the increasing trend of most devices being simply front-ends for internet enabled computers, I hope manufacturers DO make decisions that continue to make sure their devices do what they are supposed to do first, despite the fact that the underlying technology could allow them to do otherwise.

Easy at 2008-08-08 03:51:29:
I'd also like to add that managing consumer expectations is an important aspect that Apple has to consider when introducing this type of device. Previous products that have attempted to do to many things that people don't normally expect that device to do (early convergence devices) have failed in part because they were difficult to market. Apple has chosen to start with a music player and slowly build on it's capabilities as people grow accustomed to the idea. I don't think the reason behind this progression has been purely technical limitations... I think in this instance Apple just understood consumers better than their competitors did. I bet this plays a part in the limitations you discuss above. The Ipod could eventually do all the things you ask, but only after the concepts have sunk into the general population's consciousness and their addition didn't seem to be creating a needlessly complicated experience. I bet if Apple had released the IPod touch first instead of it's original IPod, there is a good chance the device would have bombed because people didn't 'Get' it.

Jeff Craig at 2008-08-08 05:13:00:
Mike, I just want to thank you for an excellent post on this subject. I share all your opinions, but only from the perspective of someone who has not used the hardware or software for an extended period of time.

It's nice to know that I was correct.

I can't figure out why any developers are excited about this platform, since it is one of the most restrictive platforms I have ever seen. Palm, Blackberry, Windows Mobile, etc. are all infinitely more open than the iPhone. Not as sexy maybe, but more exciting platforms to develop for because the options are so much higher.

Ultimately, I'm waiting for Android (http://code.google.com/android/). The HTC Dream seems to have all the sex appeal of the iPhone (and then some, possibly), and Android is so much more exciting of a platform than the iPhone is.

JoeR at 2008-08-08 06:05:55:
Apple's approach to the iPod Touch is much like the movie "TRON" released back in 1982. I know that dates me, but I started programming via punch cards on an IBM/360.

The MCP (Master Control Program) is reincarnated in Apples use of iTunes to control distribution. Just as the corporate view of personal computers (or government) has reined in the use of applications which were most useful to the employee. Back in 1983, I got my hands on the first IBM PC in the office. We ran numerous BASIC and other small applications to improve employee productivity.

But today, corporate MCP's control the applications most employees can run. Some, like my last full-time employer, finally realized even the Seattle-based OS word processing system could cause harm and turned off macros. Apple is trying to be careful, but given the effort apparently put into the 2.0 release, not too careful. Too many bugs.

Write Apple the "old fashioned way" via snail mail. It works!

PS: Look how Apple handles the iPhone or Touch on its own web sites. Not a pretty sight.

mikeash at 2008-08-08 06:57:53:
Easy: I agree about limited electronics. After all, you'll never hear me complain about my inability to load my own code onto my iPod Shuffle or my car stereo system.

But I also don't think it's terribly relevant to the discussion at hand. My complaints about the iPod Touch are valid whether the limits are reasonable or not. There are things I want to be able to do, that any normal person might want to be able to do, that the hardware can do, that the software can do, that Apple won't allow. This isn't related to making it a consumer electronics device in my eyes because the capabilities are already beyond that point. The fact that simply opening the platform would solve many of the problems just makes it all the more painful.

To put it another way: I have no expectation of being able to install my own software on my car stereo because it's simply not built for it. But an iPod Touch is built for it, it just has artificial limitations added after the fact to force me to do so under Big Brother's watchful eyes.

As far as Apple's reasons, motivations, and justifications: I don't want to be mean about it, but I just don't care. It doesn't matter to me if Apple is doing this because they're evil or because they think that it's the best way to save the world and make everyone happy. Actions matter, not intentions. It makes no difference to me whether the iPhone is locked down because Steve Jobs sits in his office cackling every day or because Steve Jobs sincerely believes that he's going to make the best possible device that way.

You say that developers don't patch holes in consumer electronics devices. This simply isn't true. There is a thriving community of third-party firmware for Canon digital cameras, for example, not to mention the more obvious stuff like all the open source firmwares available for various wifi routers. It seems that all a company needs to do is to release a decent product and not bend over backwards to prevent external development, and third parties spring up to fill in the gaps, even when the product is absolutely not designed for it.

Lastly, your comment about the perfect device not existing strikes me as completely irrelevant. The whole reason I wrote this article is because I want such a device, and don't have it, and can't get it. The best way for me to get it is to agitate for change for the closest thing that exists right now.

NDPTAL85 at 2008-08-08 07:27:49:
mikeash: My argument for a closed AppStore doesn't fall flat at all.

The iPhone is a brand new platform. Its not established yet. The Macintosh is established and people are already used to the current way we install software on it. That doesn't mean it can't change but the fact that people are used to the desktop way does not mean its not justified on the iPhone.

As I have stated before the benefit is a less hectic system in regards to apps. Yes there's some crappy apps on the AppStore but Apple can and actually has removed the really ridiculous ones like the $999 "I AM RICH" app. How would Microsoft or Nokia prevent similar idiocy from taking place on their respective platforms?

Preventing you from loading your own programs outside of iTunes protects all iPhone users, while pissing off a small minority. Its an acceptable loss for an incredible gain.

n8: I've been a Mac user since I was in the 6th grade. Started out with Mac IIcs running system 6.0.7. I know how dedicated the Mac faithful are. Apple is smart enough to realize however that they need more people than just the Mac faithful. 50% of the people who walk into Apple Stores were never Mac users. Thats tremendous growth and Apple gets that growth by keeping things simple.

It is comical that you accuse ME of complacency and decline when you are advocating bringing that very same sentiment to the iPhone. The freedom to install any application you want is one of the main reasons why Windows Mobile and Symbian and Palm OS suck so badly. There's no standards for the apps. Some are great, most are horrible. The reputations of the platforms have suffered because of this.

Jeff Craig: The reason why so many developers are excited about the iPhone is because thanks to the AppStore they'll be able to make money. Like real genuine cash money. That stuff that developers of Windows Mobile and Palm OS apps would like to get in return for all their hard work. Are there some limitations? You betcha. What do you think the iPhone developers are going to do, return the money because the OS isn't free enough?

Android is a great platform for developers. It remains to be seen how great it will be for users. Users are the customers for developers, the lifeblood. Without them developers are just writing apps for themselves, which is ... cool and all but it doesn't pay the rent.

I really do see a schism developing, one I don't have a problem with where the more libertarian, freedom on the brain, mountain men/militia type users and developers abandon the iPhone for more open platforms. Have at it. Good luck and I hope you enjoy the new platform. Meanwhile the money making developers and the USERS will be using the iPhone.

Again I'll re-iterate that due to the ease of installing apps from the AppStore that within two years there will be more third party program users on the iPhone than on Blackberry, Windows Mobile, Symbian and Palm OS combined. How do you make a logical argument for ignoring an eventual iPhone user base of that size from a developer point of view. Because you can't install software outside of the AppStore?

Seriously?

Jim at 2008-08-08 19:28:50:
Hi Mike, I'm a long time Mac fan but I have to agree that this iPhone OS is crap.

I'm not a developer, I'm a user, and I do love the iPhone WHEN IT WORKS (grrrr I've performed about 10 Restores on this thing because it keeps rebooting and getting stuck at the Apple logo).

I can't help but think if Apple just allowed people like yourself who have a passion for developing/hacking/making the device better access to the whole OS, then my iPhone would work a lot better than it does now.

I'm considering returning my iPhone because it is so buggy. At least with another phone from, say, Sony Ericsson, I can actually make calls on it - at the moment I'm in my 3rd hour of 'Backing Up' my iPhone. Let's hope it finishes the backup before it decides to crash again.

Peace brother.

Owen Williams at 2008-08-08 22:11:40:
NDPTAL85: The 999$ "I am rich" app can exist *only* because the App Store is the only place to get applications. Otherwise, any idiot could make an app that displays an image of a gem and put it on their website. There'd be no point to an "i am rich" application.

Actually, I think the "I am rich" app was probably meant more as a statement, as in -- what application can you possibly imagine for the iphone that would be worth that much? So, why is that the upper limit on the price of an app? Why not make the maximum 50$? Or even 100$ (although I still can't imagine paying that much).

Besides, if Apple had better customer service they would have a way for that one idiot who bought that app to get his money refunded quickly. Instead he has to make a blog post begging for his money back.

Moitah:
If Apple doesn't want their phone app to be laggy and crash, they can give it realtime priority. That's what it's there for.

I think the apologists need to face facts: none of the limitations that Apple is imposing are technically necessary. And even assuming that there is some technical basis for them, I'm still hearing a lot of complaints that an iphone with apps installed crashes and reboots constantly. So even with all these restrictions, the damn thing isn't stable. "Oh but it could be so much worse!" Uh huh, ok.

Easy at 2008-08-08 22:50:13:
Mike,

I hear what you are saying. It may very well be true that there is no technical limitation for the restrictions. I'm just saying that pretty soon there won't be technical limitations for anything to run on anything, so the responsibility for making a product that does what is advertised is with the manufacturer. Obviously, if the limitations imposed aren't to your tastes, things will get frustrating for you and you might want to look elsewhere. That's a lost sale to the manufacturer, and they have to weigh that against gained sales made by those same decisions. Because of the current state of consumer electronics, Apple seems to feel that a semi-closed system will attract the most consumers... probably because it makes it easier to tell people what the device is for, and why they should buy it.

I know that for you, that's not relevant. Because you are aware of the fact that Itunes is just another music app and that it should be replaceable, you want to be able to do that. I'm not sure why you feel differently about your Ipod shuffle, though. Done a little differently, you probably could load a different software on it that might allow the shuffle to not pause when the earphones where taken out, for example.

Anyway, I think the Iphone will eventually have the capabilities you want it to (though maybe not with any more freedom to play around with the innards than it currently has). It will just take time for Apple to feel that the consumer is ready for such a uber-flexible consumer electronics device, and that they can market it effectively. I also don't know whether their intentions are good or evil, but with the product at the stage it is, I'm happy with the decisions that have been made because I think it's a fantastic device (I just wish it was more stable).

Jeff Craig at 2008-08-08 23:01:33:
NDPTAL85: I am certainly sympathetic to the idea that developers are going to follow the platform with the users. However, users are also going to follow the platform with the best capabilities. Today, this is the iPhone. By the end of the year, I'm not convinced that it will be.

I have not bought, nor ever will, an iPhone because of the restrictions Apple has placed on it. I think the people whom I know who've bought it have wasted their money, but that was their choice, and I certainly don't hassle them over their decision.

I understand why the iPhone is such an attractive gadget, particularly now with the App Store. I don't think it's going to stay that way, and Google has already indicated that they're thinking about something like the app store for Android, but unlike the iPhone that will never be my only option to put apps on my own damn phone.

NDPTAL85 at 2008-08-08 23:29:21:
Jeff Craig: Yeah I'm aware of Google's plans to include a 'Marketplace' AppStore like app on their Android phone. I wish them all the best with it and Android in general. They're going to need it because there's still no overall design philosophy in regards to the UI, and with the free range apps folks will be able to install things are going to get hairy fast.

When you say 'users are going to follow the platform with the best capabilities' I'm not quite sure what you mean there. If you look at the iPhone in a straight up feature comparison it actually comes up lacking. No MMS, no cut and paste, no BT tethering...etc yet folks are still buying it in droves. So if you are alluding to folks stampeding over to Android or any other device because it has a few features the iPhone lacks then I think you miss the point of the iPhone's success, after all Windows Mobile, Palm OS and Symbian already exist and already have those features that the iPhone lacks.

The reasons for that success would be Apple's insistence on a great user interface and a solid encircling ecosystem that is centered around iTunes and the AppStore.

As for Android, things aren't all rosy on the other side of the fence. Google's been jerking around the smaller developers by not giving them access to the updated SDK that they've been giving out to "special" people. Seems the carriers don't want Android to be as open as Google had intended and its causing a lot of frustration. As it stands its easier to get cracking with Apple's iPhone SDK than with Google's Android SDK. Whether it will remain that way is unknown but I wouldn't get my hopes up.

http://arstechnica.com/news.ars/post/20080715-googles-android-platform-not-so-open-after-all.html

Jeff Craig at 2008-08-09 02:50:49:
NDPTAL85: I'm not saying that folks are going stampede over to Android, and I certainly don't think that iPhone owners are going to lead the way there, they already have too much invested in the iPhone platform, by and large.

And I agree that Google has been mismanaging the Android program since the Developer's challenge top 50 were announced in May. I think the Ars article goes a bit far, but I've publically agreed with it's overall sentiment. (http://blog.foxxtrot.net/2008/07/all-quiet-on-the-android-front.html)

And I'm not necessarily saying that Android will definitely be the Phone Platform of the Future, but I do think that it's better positioned for that than the iPhone is, due to the advanced capabilities, and the ability of software vendors to wholesale replace applications on the phone.

The iPhone UI is impressive, I'm not arguing against that. However, just about every user I know has some major issues with some part of the iPhone UI. Whether it's the tendency of the keyboard to weight keypresses based on predictive text making spelling things like proper names more difficult, the difficulty of answering calls without actually looking at the device (that unlock slider is nearly impossible to use without seeing it), among other things. The UI is good, but the lack of tactile feedback can make the overall user experience negative. But that's more of a design issue with the phone not the platform, though the two are indistinguishable on the iPhone, that is not the subject of Mike's post, so I'm not going to dwell on it here.

The real reason for the iPhone's success, particularly when compared to Windows Mobile, Palm OS and Sybmian isn't features, it's marketing. WiMo, Palm, and Symbian were all originally targeted at the Business market, and due to that these platforms have never really been suitable for the average consumer's use. The stock applications aren't what they need, and since they were never marketed at consumers, there was never any demand for consumer-grade applications.

The iPhone is the opposite story. The iPhone was not intended for business use. Certainly, 2.0 implemented Exchange integration, but that was only because those business users wanted iPhones, not because Apple specifically targeted those Business Users.

Android took the stance of initially targeting the developers. The stock UI Google provided is pretty slick overall, though admittedly not as good in some respects as that on the iPhone, but the difference is that the UI can be completely replaced, if I so choose. If the iPhone interface doesn't work for me, then I can do nothing.

The iPhone is an impressive gadget, but the choices that Apple has made to artificially cripple it's capabilities are going to be the downfall of the platform.

mikeash at 2008-08-09 11:17:48:
NDPTAL85: Read more closely: I said that your argument falls flat with me, and this is simple truth. People simply don't judge a platform based on the crapware available. It doesn't happen with the well established platforms and it doesn't happen with the new ones. It happens when the crapware is also the top-flight apps, but that's an entirely different scenario.

I don't think that it makes sense to discuss removing "I Am Rich" as if it were a good thing. If people want to spend that kind of money on a program they should be allowed to. Apple may not want to carry it, but they shouldn't prevent it from being sold in other venues.

How does preventing this kind of external loading "protect all iPhone users"? How does it protect me, for example? (Assuming you're including iPod Touch users in that statement.)

Lastly, your smugness that the iPhone will make lots of money for developers but developers for all other platforms are and will remain poor is quite annoying. Please cut it out. Developers are quite capable of making money with a wide variety of platforms, including completely open ones like the Mac OS X platform which pays my salary.

As for ignoring the iPhone user base, it's really easy. I can ignore it the same way I ignore the Windows userbase, which is approximately one hundred times larger. If people can ignore Windows (and believe me, many do, and successfully so) then ignoring an upstart smartphone with a few million users is no problem.

Owen Williams: Little known fact about the App Store. Apple takes their 30% when the user buys the app. When the user gets a refund, by whatever mechanism, Apple keeps their 30% and takes all 100% of the refunded amount from the developer. So once this clueless customer realizes that all he needs to do for a refund is call his card company and dispute the charge, the I Am Rich developer will be out a cool three hundred bucks on that transaction.

You talk about the limitations not being technically necessary. This makes me realize something. Obviously, a lot of people have been arguing that the limitations are technically necessary, thus the debate. But, as far as I can recall, I have not heard one single such argument from an expert in the field. There are lots of people who are saying that the restrictions are necessary and helpful and so forth, but those people are universally "merely" technically literate. The actual top-flight developers I've seen discuss the issue universally say that there is no technical need.

Easy: There is an enormous difference between designing a device to do something, and restricting a device to only do something. The former is normal, the latter is asinine.

Devices have been hacked and repurposed since the dawn of time. It's hardly new with computers, or even electronics. Many light aircraft, for example, fly with repurposed automobile engines. The only thing that's new with computers is that the manufacturer is capable of adding explicit restrictions against such repurposing, and they're doing this more and more. If you want to design a phone to just be a phone, fine. But you shouldn't put in time and effort to prevent me from hacking it any more than an engine manufacturer should add additional parts to make the engine explicitly unsuitable for aircraft use.

More and more, an object's identity is defined by its original purpose. I think that this notion is dangerous and wrong and should be resisted when companies try to enforce it.

Easy at 2008-08-10 10:04:20:
Mike,

I agree with you that there isn't much to gain by preventing grey market modifications. However, I wouldn't want to confuse that with offering legitimate secondary ways of doing things. To me, the fact that the Iphone is getting hacked to be jailbroken means this is already happening, but I see that you want more. You want the operating system functions and priorities to be hackable. That would be fine with me, and I suspect that it's only a matter of time before it happens, if it hasn't already (though I'm not a programmer, or interested in jailbreaking the Iphone, so I really have no idea). Good luck on your search.

NDPTAL85 at 2008-08-10 12:27:05:
mikeash: You are able to ignore Windows because there are enough Mac users (who actually install third party software) to make developing for the Mac a livable endeavor. Due to the inconvenience of installing third party apps on Windows Mobile, Symbian and Palm OS most developers are going to weigh the time investments vs the rewards for developing for those platforms vs the iPhone. Will all developers abandon those other platforms? Of course not.

What you call smugness to me sounds like denial. With developing for Mac OS X over Windows there's an "underdog" feel and a gain in usability. With developing for WinMo/PalmOS/Symbian/Blackberry over iPhone OS where's the gain? Whats the incentive other than pigheadedness? Maybe being counter-culture for counter-culture's sake? Thats why www.anythingbutipod.com exists afterall.

mikeash at 2008-08-11 08:48:01:
Easy: Jailbreaking doesn't count in my eyes because it's apparent that Apple is trying to stop it. Every time there's a new firmware, these guys have to re-break it. The OS already is hackable, I just can't get the software inside to hack it without either getting Apple's permission or doing a difficult end-run around them by jailbreaking.

NDPTAL85: I wish people would quit talking about Symbian and Palm and RAZRs and such. I just don't see the relevance of them to the discussion, I never brought them up, and I've never developed for them. Why would you compare developing for the iPhone to developing for Palm? I'm a Mac developer. iPhone development, to me, gets compared to Mac development, not one of the legions of other cell phones. How hard or easy it is to develop for Symbian, how much or how little of a market Android will create, how restricted or unrestricted Windows Mobile is, all of these questions I really could not possibly care less about. If I ignore iPhone development then it will be to concentrate on Mac development (until Apple locks it down and kicks us out, which I really hope will never happen).

NDPTAL85 at 2008-08-11 22:44:23:
mikeash: If you were just talking about yourself then why did you say: "Lastly, your smugness that the iPhone will make lots of money for developers but developers for all other platforms are and will remain poor is quite annoying. Please cut it out. Developers are quite capable of making money with a wide variety of platforms, including completely open ones like the Mac OS X platform which pays my salary."

When I was talking about other platforms I wasn't talking about any desktop platforms. I, and most other folks compare the iPhone to other phones not to the Mac itself. I can't put my Mac Mini in my pocket and my MacBook doesn't take calls. I wasn't saying Mac developers wouldn't be able to make money, I was saying other phone platform developers would find it easier to make money on the iPhone then those other platforms. Any other reasonable person would have gotten the comparison correct. I think you are just going out of your way to be obtuse/different/counter-culture just to set up strawman conflicts that wouldn't ordinarily exist if you weren't comparing unorthodox things like iPhone to the Mac instead of iPhone to 'insert other cell phone platform here'.


Jeff Craig at 2008-08-12 02:41:52:
mikeash: I find myself in the position where I'm agreeing with NDPTAL85. You really must compare the iPhone to other smart-phone products because that is the space where the iPhone is competing. Plenty of non-Mac users are buying iPhones. It's a different part of the user experience.

Of course, as I understand it, iPhone development is very similar to Mac developer as you know a fair number of the APIs already, so certainly Apple is using the iPhone as a 'gateway' platform to bring developers to the Mac, and the Mac as a 'launching' platform for Mac developers to go iPhone.

It is unclear if the kind of code-signing requirements, limited distribution model, and remote kill switches would ever migrate to Mac OS X. It's not outside the realm of possibility however, there has been discussion for several years about this possibility, largely centered around DRM and Windows, but even discussing hardware that contained such locks.

The iPhone sets dangerous precedents, and these are precedents that simply don't exist on other platforms (save for gaming consoles). In the long run, such restrictions always hurt the consumer, unfortunately most consumers are so ignorant of the path that they're starting down that it's very, very hard to say if things will change.

mikeash at 2008-08-12 03:25:23:
Well, here's my perspective on it.

As a user, for me, the iPhone is not an alternative to any of those other platforms, simply because it costs too much (and most of them do too). I make calls on my RAZR. I do most of my mobile computing on my PowerBook. If I hadn't been given a Touch then it would be all, rather than most.

As a developer, the iPhone is not really an alternative to anything. It's a potential addition to the other platforms I work with. Whether it's worth my time will depend a lot on just how possible it is to do the things I want to do with it.

For the developer community as a whole, all of these other platforms which allow third-party apps, both desktop and phone, have communities of developers who make a profit in that space. The size of the market may vary, the size of the profits may vary, the capabilites, diversity, restrictions, and many other things may all vary, but the iPhone brings absolutely nothing fundamentally new to the table. The App Store is not some amazing revolution in software distribution that magically enables developers to make money in this area where nobody ever could before. In this respect the iPhone isn't doing anything new at all, it's just doing it to new people.

NDPTAL85 at 2008-08-12 21:24:16:
When you say "The App Store is not some amazing revolution in software distribution that magically enables developers to make money in this area where nobody ever could before" you are technically correct because you went to great lengths to exaggerate the case to make your statement correct. Yes other people are currently and have been for some time making a profit in the mobile software space.

Nor is the AppStore the first central repository of mobile software. Take http://www.handango.com/ for instance. Its been around for years and also has a split with developers for revenue. I think its a 60/40 split instead of Apple's 70/30 split.

What makes the AppStore different though is that already more people have probably used the AppStore than all the folks who have ever used Handango over all the years of its entire existence. How many people even know Handango even exists? Handango itself has to do advertising. The AppStore comes pre-installed on every iPhone and iPod Touch sold and as a software update to all pre-existing iPhones and iPod Touches. It also is on every person's iTunes software. So this means in addition to a developer not having to deal with hosting their own website or maintaining their own billing system and customer data base (services they get from Handango as well) they get FREE advertising. I'd call that revolutionary. Then there's the fact that using the AppStore is a lot more easy than using Handango. Ease of use = more frequent and lasting use.

Its funny in a way. Lots of people like to point out that X company or Y company wasn't the first to do feature Z whenever such companies hit it big with whatever it is they're doing. Doing it first is cool, in a limited way. But if you are unable to capitalize on being there first its as bad as not doing it at all. Apple itself learned this lesson when it created the PDA market with the Newton and then killed it leaving the market entirely to Palm for a few years till MS and Symbian got on the scene. Apple went back to the drawing board and perfected it and came back to the market with the iPhone. The rest is history.

Mateo at 2008-08-13 04:14:29:
Mikeash: Congrats on all the links - I've stumbled on this post half a dozen times in the last few days.

Disclaimers: I'm not a programmer, and I haven't read the entire comment thread above.

I believe Apple to be capable of doing the wrong thing by its users - intentionally - when driven by the bottom line. I wish they'd take a longer-term "do no evil" -ish approach to making boku bucks... but that's another comment for some other day. I can't imagine the next Mac OS eliminating background tasks, as some here fear (who the hell would buy a computer that can only do one thing at a time??), but I do perceive an alarming lock-it-down trend.

I was upset when I shelled out twice as much for an AirPort Express as I would've for any other basic small home office wireless router, because of Airtunes' ability to stream music to external speakers -- only to discover it ONLY streams output from iTunes. No other audio output whatsoever, so if I want to watch a DVD, or listen to audio content from the web, I'm either stuck with my MacBook's built-in speakers or I must schlep my external speaker set away from its place near the AirportExpress and plug in all the cables all over again... My built-in speakers are fine for their intended purpose, and happily my speakers are fairly portable, but this isn't at all what you'd expect from an expensive router given the promise of AirTunes, or wireless networking more generally.

Thing is, the technology is built in to the software, so it would be possible to extend AirTunes' functionality. (Rather than build the interface into iTunes, build it into System Prefs, perhaps with a spiffy shortcut in the menubar next to the AirPort network menu, instead of building it into iTunes...)

But no. There's another Apple product that does nearly what I'm describing called AppleTV. The only conceivable reason, to me, that AirTunes doesn't output any audio its users want is that it would reduce the need to purchase this other Apple hardware package. In this instance, hardware is clearly not the limitation (I can run photoshop + three browsers + stream music wirelessly without taxing the system too much). So here's a less ambiguous instance of Apple's music business betraying monopolistic motivations.

mikeash at 2008-08-13 12:28:49:
NDPTAL85: I don't see where I went to great lengths, or indeed where I exaggerated anything. Yes, the App Store is enjoying success considerably greater than these others. But that does not mean that you should talk about other mobile platforms as if nobody ever made money from them.

But again, I don't really care about all that very much. Fact is that the iPod Touch user experience sucks. This, in turn, is a direct consequence of the fact that the iPod Touch developer experience sucks. And this, in turn, is because Apple wants it to suck.

Mateo: I'm intimately familiar with Apple's AirPort Express, having done significant work on Airfoil 2 and the majority of the work (including the full protocol reworking) on Airfoil 3.

First, let me say that not making AirTunes system-wide is actually a very reasonable move on Apple's part. Low-latency network audio is incredibly difficult to achieve. AirTunes has a two-second delay. This makes it worthless for games, difficult for video (you need a special video player) and in general bad for audio in general.

However, I also don't think that AirTunes should be closed the way it is. Airfoil only works because the protocol was reverse engineered. Maybe it shouldn't appear as a standard audio device, but neither should it be closed and available only to iTunes. I have to admit that this restriction did open up a nice market, though.

But again, there's this difference in intentions. AirTunes is really only closed because Apple didn't do the work to open it. They created a protocol, they created some software to work with it, and that was the end of the story. This is very different from something like the iPhone where they built the system, did the work to open it up, and then added restrictions after the fact.

Mateo at 2008-08-13 15:28:25:
Huh... I suppose that you're right about the latency aspect of AirPort Express - I was forgetting that. It also sounds from the description of Airfoil on rogueamoeba.com like Apple TV doesn't work quite the way I understood it did. I really can't appreciate how difficult it would be to do that extra work to open the Express up, as you say -- but it still peeves me to know that it could be done and wasn't. Given the premium price for the device, it continues to strike me as a bad value.

In any case, I see your point about this being different than opening up and then adding restrictions, as in the case of the iPhone.

The big take-away for me is the fact that Airfoil exists. Fantastic! Wondering why it's never come up in my searches for Airport Express hacks before today...

::goes to get piggy bank to buy Airfoil::

Denilson at 2008-08-13 16:10:34:
Just a note: I *can* listen to music and browse the web on my not-powerful Sony Ericsson K750i. It has 1MB of available heap memory for Java midlets, and we know that Java (even the J2ME) has a noticeable impact on performance.

So, there is no technical reason to not let iPod/iPhone do the same.

Of course, because the point of this rant is not that the device can't do something, but that "someone" doesn't want to let the device do it.

mikeash at 2008-08-14 08:42:01:
Mateo: Not sure what you're referring to with the Apple TV, but it works "both ways" as it were. It does both push and pull. You can use your remote control to make the Apple TV pull files from your computer (or files stored locally on its hard drive), and you can also use the Apple TV with AirTunes to push files from your computer.

Denilson: Thank you, that's my point exactly. Music playback just is not that intensive, especially when you have a hardware decoder like the iPhone does. The CPU cost is essentially negligible, as is the memory cost. A 5 second buffer (for streaming audio) of CD-quality sound costs less than one megabyte. If you buffer the compressed data instead then it's 10-20 times less than that. Even the poor embattled iPhone ought to be able to spare a couple percent CPU and 80kB of RAM in the background.

Drunken Economist at 2008-08-19 14:07:58:
Mike if this ipod is off the table for development, then you really ought to:

* Jailbreak it to firmware 1.14,

* Move the /swap/ off that dorky 300 meg /var/private/ partition to /var/

* Install a messenger app from Installer.app or Cydia.app.

You would be *amazed* how much your ipod screams once you do this. If I didn't know better I'd think that the Apple Devs know VERY LITTLE of *nix internals. Given what you've written I can't believe we own the same device. My is quite snappy.

And, for the record, I have no desire to cripple my rig with firmware 2.x. Also, FWIW, I cite your article--

http://gizmodo.com/5038586/an-in+depth-video-tour-of-android-09-an-almost-great-almost-os#c7295276

--in my own diatribe.

S Pas at 2008-08-25 01:49:14:
Mike,

I agree with your comments wholeheartedly.

I own a Palm Treo 755p, and while this OS is a bit dated, and doesn't have the grace of the iPhone, I enjoy the fact that I can develop and install anything I want, and can use background processes. The Treo has memory limits, and I find that if I try to run streaming audio (through pTunes) and my Garmin MobileXT software at the same time, it can just barely do it... but receiving a phone call at the same time will cause the phone to completely reboot.

Probably not the user experience Apple wants their customers to have, but they should leave it up to the customer to decide. :)

SP

mikeash at 2008-08-25 03:31:52:
Jason: I'm confused. If the battery lasts five hours with constant use, how would it suddenly last only two hours? Multitasking does not increase the maximum potential power drain, it only potentially increases the average, maybe, depending on exactly how the user uses the thing. But an iPhone running one application full-tilt will be using just as much power as an iPhone running two, because the two will just end up sharing the available resources.

chris hollander at 2008-08-27 01:01:23:
first, I apologize if I'm beating a dead horse here, but I wasn't able to make it through all of the comments before posting this.

second, the point I'm about to make isn't about how great "Option B" is- we can all agree that the iPhone is a wonderful device, at least conceptually. That being said...

I was able to do just about everything that you wanted to do on your iPhone (simultaneously surf the web, listen to music, check email, and use IM) over five years ago on my smartphone.

http://web.archive.org/web/20040723001950/objective.mine.nu/archive/2004/3/10.aspx#when:16:05:09.9445600

If it was possible then, there's no excuse for it to be impossible now.

Eimeck at 2008-09-12 08:20:50:
Mike, i'm afraid I'm not quite clear as to what exactly you're complaining about.

You don't want a phone from Apple (and you dont want to discuss phones), fine. So you have an iPod. A device meant first and foremost to consume media content on, preferably and by design in conjunction with iTunes. You don't like iTunes either, OK fine, and prefer something else (never heard of that thing before, but the letters AOL in its name do not exactly inspire confidence in my book). You basically try to use the device like a desktop computer and it wimps out on (as I understand it) technically demanding websites that emulate functions not covered by built-in or 3rd-party apps.

What exactly did you expect? What did that iPod fail to do that Apple promised it could? Did they advertize a pocket computer that runs circles around G3 iBooks? No, they sell a media player (or, of late, a gaming platform). Your talk of "crappy platform", "thumbscrews" etc seems totally out of line to me. Would you try the same stunts on a Zune?

Just because Mobile OS X is related to/derived from the desktop OS doesn't mean Apple are under any obligation to make it accessible to any nerdy hacker out there (no offense intended). Apple's art has always been to design for simplicity and ease of use, and if lagging in sheer performance is a price for that they are willing to accept that. To forfeit that proven approach with the software for their probably most important strategic product still in its infancy might prove disastrous in the end. So they clamp down on it and they have every right to do so (at times poor communication notwithstanding). More so as the product is already quite unique.

You say the thing is "mine" to do with it as you like. Of course it is - if you hack and modify it yourself. If you want a ferrari with six seats and a forklift, don't expect it from the manufacturer.

The other thing ("My big fear - what makes me write this article") is certainly food for thought and I gained quite som insight from the discussion, but it would have fared better as a separate post.

mikeash at 2008-09-12 09:17:53:
Could we all please quit talking about "obligation"? I never mentioned any sort of thing. Of course Apple is free to do whatever they want with the thing. That doesn't magically make my complaint invalid. People seem to think that there are all sorts of conditions on complaining which just make no sense. I'm complaining because I want them to change, not because I think they're required to.

This is the essence of my complaint: Apple put in extra effort to cripple this device beyond what it would otherwise be capable of. If Apple had done less then I would be able to do more. If it were just a music player then I wouldn't care. But they went through the trouble of giving it a fully capable operating system, and then took the time to put in specific prohibitions so I can't do what I want with it.

All the stuff I complain about could be fixed by third parties if Apple would let them. Since Apple won't let them, the responsibility shifts to Apple.

Also I have to say that I think it's hilarious that wanting to chat while reading e-mail and listening to music qualifies as using it "like a desktop computer". Maybe you use your desktop computer in such a trivial manner, but my desktop typically has 30+ applications performing all kinds of tasks. Doing three things at once hasn't been "like a desktop computer" to me for at least a decade.

Joey at 2008-09-12 20:56:33:
I completely agree with Mike.

By specifically restricting third-party apps to run in the background, Apple is inherently stating that their application suite provides all the background functionality users would want; this is clearly false.
Also, saying that allowing third-party applications to run in the background would deplete the battery and crash the system is rubbish. Nobody would be forced to run any third-party application. It would simply give us the option of running non-Apple but useful programs natively in the background (like an AIM client), which could use up less resources and perform faster than a JavaScript app running in Safari.

I would never switch to a 'smart phone' platform that denied me functionality that it was technically capable of having simply because the manufacturer decided to say 'No, you can't do that, because I am smarter than you, and doing that will be bad for your phone.'.

Ravi at 2008-09-14 07:56:55:
NDPTAL85, I don't think you have much experience installing applications on a Treo. I have a Treo 650 and I hardly ever HotSync because I use Linux and I didn't find the Linux syncing software I tried terribly useful. Nevertheless I've installed plenty of third-party software on my Treo (ssh, IM client, Google Maps, etc.).

This is how the process goes:

1. Google for application (on Treo).
2. Go to website.
3. Click on "prc" file to download.
4. Accept into Applications (at which point it is ready-to-use).

Now that might not be as slick and integrated as the App Store (since we have to look for the software first), but it doesn't seem that terrible.

I'll also add my favorite other feature: Free (custom) ringtones since 2005 (I just needed to email myself the music clip in the right format and open it in VersaMail).

For all that the iPhone is slicker and prettier (and has a few features I like - like integrated Wifi) I can't help but feel it is a significant step backwards.

alpinista at 2009-03-28 03:53:25:
As an iPhone developer (although a rank beginner), I read your article and the resulting thread with great interest. I find myself chafing at the restrictions imposed by the SDK and Apple's HIGs, by the crazy complicated code signing process and delays in getting app approval, etc. But I don't think any of my complaints or Mike's will make any impact in the continued popularity of the iPhone.

Ask 100 iPhone users if they miss the ability of their apps to run in a background process and 99 of them aren't likely to know wtf you are talking about. They don't worry that they are, for the most part, limited to doing one thing at a time. For them, that's just the way it is. Look at the way iPod crushed all competition to become the market leading media player, even while there were many other devices that had better feature sets (FM radio, recording) and were not tied to a monopolistic music store/desktop app. The success of a consumer product is driven more by the emotional connection to the brand than by the the technical features of the device. And it doesn't hurt when the media acts as if Apple just invented the thing.

Of the subject, but Mike... I'll trade you a ride off the Washington coast in my sailboat for a ridgerun in your sailplane!

mikeash at 2009-03-29 08:40:57:
alpinista: Deal! But, when you say Washington, you mean the one with all the politicians or the one where it rains all the time? Because if you mean West-coast Washington I'm afraid that's a bit of a long haul for me....

Wade at 2010-11-11 12:06:14:
Well this post is 2 years old.

Unfortunately I have a 3Gs and I can't say it has really changed any.

Wade at 2012-03-23 03:51:04:
Well 4s is out and 5 on the way.

Still the same


Comments RSS feed for this page

Add your thoughts, post a comment:

Spam and off-topic posts will be deleted without notice. Culprits may be publicly humiliated at my sole discretion.

Name:
Web site:
Comment:
Formatting: <i> <b> <blockquote> <code>. URLs are automatically hyperlinked.
Hosted at DigitalOcean.