Text

Il mito del multitasking

Prendo spunto dalla baraonda immancabilmente giunta, come per l’iPhone, riguardo l’assenza di Multitasking sull’iPad.

Come già fatto in altri post, sono costretto innanzitutto a fare chiarezza tecnica:
il termine Multitasking o Multithread  si riferisce alla possibilità, per un computer, di eseguire più processi (threads) contemporaneamente. Con processo si intende un’intera applicazione ma anche una sotto-parte di essa, come ad esempio una routine di calcolo.
iPad, come iPhone, utilizzano un sistema operativo basato, ad eccezione  dell’interfaccia grafica, su MacOS X, che a sua volta si fonda su UNIX*, un sistema operativo che arriva da lontano (anni ‘70) con solide basi strutturali in termini di IO (input/output) e di Multithreading/Multitasking.
Ergo, iPad e iPhone sono Multitasking a tutti gli effetti. In realtà, durante il normale utilizzo, questi dispositivi mantengono in esecuzione diversi processi e applicazioni, una ventina circa nel caso dell’iPhone. C’è inoltre da sottolineare che, all’interno della stessa applicazione, è non solo possibile ma persino consigliabile realizzare più processi eseguiti in contemporanea.

Chiusa la parente (come direbbe Totò), torniamo al misfatto.
iPad e iPhone, non consentono quindi l’esecuzione di più applicazioni in contemporanea. E’ una scelta di design non un limite tecnico.

Quali le ragioni di questa scelta?

  1. Nel caso di iPhone, ma forse anche di iPad, il mantenimento dei consumi della batteria. L’esecuzione di più processi contemporaneamente mette sotto sforzo i sistemi di un dispositivo mobile, come il processore ma anche il bus dei dati e la memoria, quindi ne aumenta il consumo energetico, esaurendo anticipatamente la carica della batteria.
  2. Essendo la maggior parte delle applicazioni presenti in questi dispositivi realizzate da terze parti (140.000 al momento), c’è il rischio abbastanza comune negli ambienti desktop, che un’applicazione in esecuzione blocchi parzialmente o totalmente le altre a causa di intensive elaborazioni o solo per una parte di codice scritta male.
  3. L’obiettivo di rendere il dispositivo il più semplice possibile per l’utente medio.

Ad eccezione del primo punto, risolvibile solo dal progresso tecnologico, gli altri volgono sull’esperienza di utilizzo dell’utente. Infatti, benché il punto 2 faccia capo anch’esso ad una questione tecnica, si ripercuote sull’utilizzabilità, portandoci al punto 3, cioè alla scelta per motivi operativi.

Checché ne pensino gli esperti, ed io esperto lo sono credetemi, l’esecuzione di più applicazioni non è mai stato un vantaggio per l’utente.

  • Il primo Macintosh (1984) eseguiva una sola applicazione per volta.
  • Windows disponeva della funzionalità sin dalla prima versione ma  solo con la (mitica) versione 95, grazie anche ad un desktop simile al Mac, ha reso questa caratteristica realmente fruibile.
  • MacOS X tuttora fornisce un opzione legata al Parental Control che consente di abilitare, per un determinato utente, l’utilizzo del Finder semplificato: una modalità che consente una sola finestra documenti, una sola applicazione,  nonché  l’assenza di icone sul desktop. Benché questo possa sembrare banale, tiene conto della difficoltà di molte, moltissime persone nell’affrontare un ambiente “desktop”.

iPhone e iPad non sono ambienti “desktop” per l’appunto. Il primo addirittura è un telefono, mentre il secondo è un dispositivo pensato per il “consumo” di contenuti, siano essi filmati, libri, siti, mail e quant’altro. Se quindi lo scopo è la fruizione di contenuti, va da sé che  l’utente è focalizzato sul contenuto stesso e non sull’applicazione, quindi il passaggio rapido (fast switching) tra applicazioni non è in alcun modo una priorità.

Ciò che Apple ha fatto per le proprie applicazioni e chiesto per quelle di terze parti, è il mantenimento dello stato. Cos’è?
In pratica è la memorizzazione del contesto in cui l’utente sta utilizzando l’applicazione nel momento in cui viene chiusa, di modo che rientrando si ritrovi nella stessa condizione. Ad esempio nello stesso paragrafo di una lettura o nello stesso punto di inserimento di una mail, ecc. La sensazione per l’utente sarà che l’applicazione non sia mai stata chiusa, ma solo messa in sospensione.

Secondo l’esperienza mia e di tanti utenti iPhone di mia conoscenza, questa “limitazione” non è mai stata un problema. Anzi, per alcuni è un vero e proprio vantaggio: quello liberarsi dal concetto della chiusura di un’applicazione. Non ci credete? Chiedete a chi, sui dispositivi Windows Mobile, quindi telefoni per lo più, dedica periodicamente parte del suo tempo a verificare quali applicazioni sono aperte e provvedere alla loro chiusura. Su un telefono!

Va poi aggiunto che iPhone e iPad dispongono dell’ingegnoso sistema di Push Notification, dove un’applicazione può ricevere notifiche anche se spenta. Utile nel caso di servizi come IM (Messaggistica Instantanea), fornitura di notizie, mail, ecc.

Si potrebbe continuare con valanghe di parole, considerazioni tecniche e filosofiche, ma riguardo all’impostazione scelta da Apple mi sento di trarre una sola conclusione: va bene così.

Text

Ancora su Flash e iPhone/iPad

Partiamo dal principio che Flash è una piattaforma di ausilio agli sviluppatori, non agli utenti. La quasi totalità dei siti realizzati in Flash potrebbero esserlo in HTML/JS; all’utente in fondo interessa poco, se il risultato è lo stesso. Con gli attuali framework JavScript e con HTML5 il risultato può essere lo stesso.

Flash, inoltre, è un componente (plugin) da installare anche nei sistemi desktop, e questo in molte realtà aziendali con blocchi amministrativi o di rete è un problema, portando la questione allo stesso livello della mancanza su iPhone e  iPad.

Di questo ero convinto in tempi non sospetti, molto prima dell’iPhone, e ora più che mai.

Aggiornamento: Ad ulteriore conferma di quanto scritto sopra, guardatevi questovideo player scritto interamente in JavaScript/HTML5. Nessun plugin richiesto, solo un browser decente.

Text

iPhone e l’essenza del software design

Riporto le citazioni di un amico caro, da qualche giorno passato all’iPhone, dopo anni di militanza con apparecchi Windows Mobile.

Rispetto al mio vecchio HTC l’iPhone non fa praticamente nulla di più. Lo fa soltanto meglio.

La citazione rispecchia un comune concetto, evidente solo agli utilizzatori di tecnologie Apple.
L’essenza dei loro prodotti non sta solo nell’indiscutibile valore estetico, ma soprattutto nel meno apparente design funzionale, il che equivale a funzioni dirette, immediate e presenti solo se indispensabili, fatto ancor più importante se si pensa al dispositivo in questione: un telefono.

Che cosa bellissima l’assenza di multitasking.

L’affermazione è di quelle pesanti. Se la facessi io passerei per un invasato.
Fatta da un utente comune, invece, pone seriamente la questione sull’opportunità di avere applicazioni eseguite simultaneamente, su di un telefono poi.

Utilizzando apparecchi Windows Mobile, il buonsenso porta ad una domanda logica: “un telefono col task manager?”.
Certo, portare ad esempio WinMobile è un po’ come sparare sulla Croce Rossa. Ci sono altri sistemi operativi mobili (Android e WebOS) che implementano il multitasking in modo certamente più elengante, ma credo non abbastanza.

Ricordate gli strali lanciati su Apple per la mancanza del copia-incolla sulle precedenti versioni dell’iPhone OS? La risposta al perché delle scelta arrivò da Apple stessa, quando fornì la funzionalità nella versione 3.0: solo quando una soluzione è elegante, pulita e funzionale si può darla in pasto agli utenti. È in fondo la regola d’oro del software design, ma troppi sviluppatori spesso la dimenticano.

Sto dicendo che il multitasking sarà presente su iPhone/iPad solo alle seguenti condizioni:

  1. Il consumo energetico dei dispositivi non sarà più un problema (in questo forse i nuovi processori Apple saranno d’aiuto)
  2. Apple individuerà un’implementazione bella e funzionale

È bene comunque sottolineare che iPhone OS è pienamente multitasking o multithreading, cioè in grado di eseguire più processi in contemporanea, cosa peraltro caldeggiata da Apple stessa verso gli sviluppatori di applicazioni*. Ciò che è inibito è l’utilizzo di più applicazioni contemporaneamente da parte dell’utente, dimostrando pertanto la tesi della scelta orientata al design funzionale.

Grazie ad Andrea per lo spunto alle considerazioni.

* Alcune delle applicazioni Apple presenti nel dispositivo (Telefono, iPod, Mail, ecc) così come diversi processi di sistema, vengono eseguite in modalità multitask.