One of the biggest complaints for iPhone OS is the lack of multitasking-you have to close the foreground app before you run another one. By "close" I mean literally stop it, not just minimize its window. This is bad - imagine you are uploading pictures to picasa while receiving a Skype call. Your picture upload task will be paused.  

The new iPhone OS 4.0 now supports multitasking - for applications such as VoIP, background audio, location service, photo uploading etc. As Steve Jobs said,

"It's easy to do this in a way that drains battery life, and a way that reduces performance of the foreground app. If you don't do it right, your phone will feel sluggish."

 

We know other mobile operating systems usually have a Task Manager where you can kill an app (a process, in Computer Science terms). Why do you need this? Well, this is because usually on mobile devices an application will not be terminated when you taps the "Close" button-the process is still there, the window is minimized, and its threads are either suspended or keep running. When you run many apps, and each will consume system resources, and the device will become sluggish. Thus clearly there is a need to terminate some apps completely to free up some resources such that other apps can run smoothly. The operating system may have a smart algorithm to select and skill some "bad" apps for you, in which case you don't need to run your OS task manager or an OEM utility to do that.

 

So really it is about creating the best user experience on a mobile device. To average consumers, it is kind of difficult to guide her to Task Manager where she can make a choice and terminate an app when the device becomes sluggish. The OS should either

  1. build an app framework that prevent this from happening, by offering limited multitasking capabilities to apps; or
  2. offer full multitasking but figure out a smart and non-intrusive way to manage system resources and free up whenever needed

Looks like iPhone and Windows Phone 7 is taking Approach #1. And Android and Windows Mobile 6.x are using approach #2. It is hard to say which approach will work best on today's smart devices. But one thing is for sure, it is definitely stupid and dumb to clone a desktop experience (thus the way to managing multitasking) to mobile devices: when your PC becomes slow, you "Exit" from WORD or Outlook, "Close" your 10+ IE windows, and "Stop" your P2P file download, and sometimes you just reboot the PC, wait 2 minutes until all the craps are settled down.

On mobile devices, however, you need Instant Access to phone functions, to web browsing, to turn-by-turn navigation, and so on. To average users, the device has two states: it is ON that you can do things; or it is OFF that nothing is running. It just requires a quick button press to switch between ON and OFF. No worries about 'power it off', or 'suspend and resume', and things like that.