Today we take multi-tasking for granted. Right now, as you read this you probably have a browser window open, perhaps email, instant messenger, your music player, perhaps anti-virus software running. If you had to run one, and only one application at a time I think we can agree that it would significantly affect your productivity. I have a difficult time even imagining computing without the ability to multi-task. However, the importance of this core computing concept seems to be called into question with new appliances.
When you look at a computer, it is very different from an appliance, such as your game console, your DVR, or your smartphone. One could argue that each type of electronic device has a purpose, and constraints that interfere with achieving this purpose. In the case of a video game console, the purpose is entertainment. A console’s constraints are the need to be consistent, and offer high performance with limited hardware. With a DVR, its purpose is to manage scheduled shows. A DVR’s constraints are optimal playback quality, and near real-time schedulers. With a smartphone, its purpose is to keep people connected while on the go. A phone’s constraints are probably the most severe with extremely limited hardware, coupled with short battery life.
In devices where performance is a key factor, such as video game consoles, and DVRs, I believe you are likely to see less control given to a user. This is to keep the running environment “pristine” and prevent non-core applications from adversely robbing the limited hardware of CPU cycles, and resources. This is the dreaded scenario of any computing device – some process (that the user may not even be aware of) is affecting the performance of the entire device.
To my knowledge, the iPhone was the first smartphone that really encouraged the installation of applications onto the device by the user. This would mean that since users have choice to modify the software running on the phone, the performance of these applications running could affect the performance of the entire device. In order to work with the extreme constraints of the device, Apple made the decision to remove multi-tasking from their OS. This has been a controversial decision, however one that has not affected the success of this device.
Now other appliances are following the paradigm of no multi-tasking. Microsoft recently announced the Windows Phone 7 OS, and it is rumored to not have multi-tasking support. While this rumor may be unfounded, the Apple iPad device also offers no multi-tasking. The success of this device, and the market that this device will fill is yet to be determined, but the inroads to daily computing without multi-tasking can be seen. A tablet device has a purpose, and constraints parallel to that of a smartphone.
Video game consoles have never offered multitasking until recently, and even now it is very limited. Coupled with smartphones, and tablet devices, the perspective of multi-tasking on the computer seems to be the exception, and not the norm. It can almost be argued that no multi-tasking is a feature that boosts the performance of a device.
Is this how the world will fix the “slow device” problem? Hardware and batteries are constantly improving, but we never seem to get ahead of the curve, since applications become more complex at roughly the same rate. “What Intel giveth, Microsoft taketh away.” Eliminating multi-tasking sure gives devices an unconventional speed boost, but is it seems like a step backwards? Can the human mind truly multi-task anyways?
One final note: it would seem to me that perhaps a solution lies in the UNIX solution of prioritizing process by “nicing” them.
What are your thoughts?