Downloads
Overzichten van artikelen en software
Handigheidjes
Gerelateerde sites
blog  iphone
De iPad: waarom multitasking niet nodig is
Printer vriendelijke versieDownload artikel als PDF
Door Maurice op 29 januari populariteit:
Als software designer probeer ik bij het ontwerpen van nieuwe software zo min mogelijk aannames te doen. Soms sluipen die er toch in. Ook bij ontwerpers van besturingssystemen gebeurt dat: waarom toch steeds de aanname dat het zou moeten kunnen multitasken. Apple deed het bij het ontwerpen van het iPhoneOS anders: door multitasking juist niet te ondersteunen hebben ze een goede zed gedaan.

Iedere bezitter van een telefoon-anders-dan-iPhone (Windows Mobile, Android...) begint steeds weer over het feit dat de iPhone geen multitasking ondersteunt, en dat dat (even geciteerd uit real life discussies) 'slecht' is, want dan kun je 'geen twee dingen' tegelijk doen...

Het juiste perspectief

Eerst wil ik even benadrukken dat multitasking vanuit verschillende perspectieven bekeken kan worden. Vanuit de gebruiker ondersteunt het iPhoneOS klaarblijkelijk geen multitasking, of in ieder geval beperkt: er kan maar 1 applicatie tegelijk actief zijn (met uitzondering van bijvoorbeeld de iPod applicatie waarmee je op de achtergrond muziek kunt luisteren).

Vanuit het perspectief van het iPhoneOS zelf wordt wel multitasking ondersteund: een mail komt bijvoorbeeld gewoon binnen als de mail applicatie niet draait. Maar hier hebben we het nu niet over, het gaat over multitasking vanuit het perspectief van de gebruiker.

De voordelen van... singletasking?

Maar heeft het niet ondersteunen van multitasking eigenlijk wel voordelen? Jazeker, wel degelijk:

Door geen multitasking te ondersteunen heeft Apple het zichzelf makkelijk gemaakt en het iPhoneOS in recordtijd kunnen ontwikkelen. Geen multitasking betekent minder afhankelijkheden in je software, minder uitzonderingssituaties: geen twee applicaties die tegelijkertijd dezelfde resources willen benaderen (wat als je in een multitasking omgeving bijvoorbeeld twee GPS-applicaties draait... daar hoeft Apple geen rekening mee te houden). Simpel dus.
Geen multitasking betekent ook dat de processor (naast wat besturingssysteem taken) zich alleen maar druk hoeft te maken over die ene taak. Dit zorgt voor veel minder context-switching en context-switching is wat tijd kost bij een processor. Kortom: geen multi-tasking = een vlotter systeem.

En de iPhone, en zeker ook de iPad, is snel! Vergelijk eens hoe snel de multitouch bediening is op Windows 7, vergeleken met de iPad. Hoewel het eerste filmpje zeker niet traag werkt, zie je dat het op de iPad toch echt een stuk vlotter gaat.


Packard Bell Butterfly Touch laptop met Windows 7



iPad met iPhoneOS 3.2


Daarnaast heeft het ook nog een positieve invloed op de accu-duur. Simpelweg omdat er geen (slecht geschreven thirdparty) applicaties op de achtergrond draaien die stiekem processortijd, dus stroom, vreten.

Persistency als oplossing

"Waarom zou je
een applicatie
niet afsluiten" Niemand kan twee dingen tegelijkertijd doen (behalve vrouwen, die kunnen praten plus een andere taak uitvoeren), ook een processor niet. Daarvoor is context-switching nodig: de processor doet een stukje van taak A, een stukje van B, stukje van C, stukje van A, etc... Achter elkaar, niet tegelijkertijd dus.

Windows-achtige omgevingen geven echter de indruk van multitasking omdat er meerdere windows tegelijkertijd open kunnen staan. Toch kun je maar in 1 window tegelijkertijd werken , namelijk het window dat de focus heeft. En ja, een programma window hoeft geen 'focus' te hebben om toch taken uit te kunnen voeren zoals bijvoorbeeld een DVD branden, maar hoe irritant is het als het window na het branden de focus weer opeist? Maar goed, dat is een andere discussie.

Omdat het scherm van de iPhone te beperkt is, is het niet nuttig om twee windows tegelijkertijd open te hebben. Daar wordt het overzicht niet beter van. Ook onder Windows Mobile gebeurt dat bijvoorbeeld niet. Maar waar Microsoft bij het wisselen van applicaties er voor heeft gekozen om de applicatie gewoon te laten draaien (wat kostbare processortijd kost), heeft Apple er voor gekozen om de vorige applicatie af te sluiten.

En dat hoeft niet slecht te zijn. Bij een goed ontworpen iPhone/iPad applicatie wordt alles waar je mee bezig was (bijvoorbeeld het invullen van wat invulvelden) weggeschreven en de volgende keer wanneer je de applicatie start wordt dit weer ingelezen. En wanneer dit snel genoeg gebeurt geeft dat voor de gebruiker hetzelfde gevoel van multitasking! Dit wordt persitency genoemd.

Waarom zou je een applicatie namelijk niet afsluiten als het naar de achtergrond verdwijnt als het toch maar een fractie van een seconde duurt om weer opnieuw op te starten?

Komt er geen multitasking dan?

Oh jawel hoor. Ik denk dat in een nieuwe versie van het OS (iOs 4.0?) zeker multitasking voor thirdparty applicaties ondersteund gaat worden, maar in wat 'beperkte' vorm. Bepaalde applicaties zoals twitter clients zullen op de achtergrond kunnen blijven draaien en de gebruiker op de hoogte stellen bij updates. Dit zal in de iOS SDK aangeboden gaan worden. Gedeeltelijk als uitgebreide functionaliteit op de push notificaties en gedeeltelijk als nieuwe functionaliteit voor het op de achtgrond afspelen of streamen van audio. Maar goed, dat is maar een voorspelling van mijn kant.
Copyright © 1999-2009 Maurice de Bijl. Dit artikel is gepubliceerd op 2010-01-29 in blog  iphone

Was dit artikel nuttig voor je? Help mij dan door met behulp van de toolbar hieronder het artikel te tweeten, een eKudo te geven of toe te voegen aan Hyves, Facebook, Delicous, Digg of andere site. Bedankt!

Printer vriendelijke versieDownload artikel als PDF

Reacties op dit artikel
Er is 1 reactie

Versleuteld IP-adres: 210231118
Versleuteld E-mail adres: cdcqtkdmaepd
Klik voor meer details  2010-02-11 12:54:21 geplaatst door Maurice

Ik ga eens reageren op mijn eigen artikel. Overal zie ik weer die multi-tasking discussie opduiken... Maar steeds zie ik weer dat die discussie door 'techies' gestart is die denken dat ze 'multi-tasking' nodig hebben.

Echter zouden ze moeten zeggen dat ze 'snel tussen programma's' willen switchen. Multi-tasking is in het iPhone OS gewoon anders geimplementeerd dan men gewend is...

Reactie toevoegen
Een reactie toevoegen is simpel en registratie is niet nodig!

Je IP-adres wordt gelogd, maar niet gepubliceerd, alle reacties hebben een E-mail bevestiging nodig en worden stuk voor stuk gemodereerd. Misbruik wordt niet getolereerd.
Naderhand wijzigen van je reactie is niet mogelijk

Naam:
E-mail adres:

E-mail wordt alleen gebruikt voor bevestiging en zal niet gepubliceerd worden.

Reactie:

Reacties a.u.b. in taal van artikel (Nederlands).
HTML is niet toegestaan, BB-code wel.

 Populaire tags 
Klik om dicht te klappen
 Zoek trefwoord 
Klik om dicht te klappen
 Volg ons 
Klik om dicht te klappen
 Spreuk van de Dag 
Klik om dicht te klappen
 Webwinkel 
Klik om dicht te klappen
 Getwitter 
Klik om dicht te klappen
Copyright ©
1999-2009 Maurice de Bijl
462 page requests
Gegenereerd op 14-03-2010 14:13:40 CET in 73.73 msec op srv010106.webreus.nl rev# 1:23M