Ci sono due cose a cui gli utenti ordinari si preoccupano:
-
Esperienza utente ¹,
-
Caratteristiche ².
A loro non importa:
- La lingua utilizzata da un'app,
- Se utilizza schemi di progettazione o no,
- Indica se il codice è leggibile,
- ecc.
Ma ...
... ma un linguaggio di programmazione può avere un effetto minore sull'esperienza utente. Un'applicazione che utilizza Java richiederà l'installazione di Java sulla macchina. Questo non è sempre un compito facile per gli utenti senza background tecnico. Lo stesso vale per C # se utilizza versioni più recenti di .NET Framework sulle versioni di Windows che hanno versioni precedenti.
... ma alcuni utenti, come ad esempio:
-
Geeks ,
-
Sviluppatori che desiderano creare prodotti software interoperabili con la tua app³,
-
Amministratori di sistema che devono distribuire l'app nel più breve tempo possibile, in modo automatico, su migliaia di computer,
saranno tutti interessati dalla tecnologia che utilizzi, e la scelta di una lingua diventerà una funzione .
Esempi
-
OkCupid, un sito di incontri, usa C ++. Dato che si tratta di un sito Web, non importa quale lingua venga utilizzata per gli utenti finali. Sarebbe stato Ruby on Rails o JSP, nessuno vedrebbe la differenza, non appena l'esperienza utente e le funzionalità rimarranno le stesse.
-
Il compilatore di Google Closure richiede l'installazione di Java e Python. Ciò influisce sull'esperienza utente per una persona come me che vorrebbe installare il compilatore Google Closure su un server e quindi creare un servizio per usarlo da altri computer sulla rete locale, dato che l'installazione di componenti come Java sul server è fuori questione nel mio caso.
Nota a margine: perché ci preoccupiamo delle lingue?
Se le lingue non contano dal punto di vista dell'utente, la scelta di una lingua è ancora importante. Scegliere la lingua giusta in un dato contesto e le competenze fornite dalla tua squadra significa avere meno bug, essere in grado di correggere i bug più velocemente, migliorare la creatività, usare un mucchio di strumenti per migliorare la qualità dell'applicazione, ecc.
Una delle sfide di un project manager è scegliere gli strumenti e le lingue giusti per garantire che il prodotto possa essere consegnato nei tempi previsti entro un determinato budget.
¹ Le prestazioni non sono menzionate nell'elenco, poiché è già all'interno dell'esperienza utente. Un'applicazione che risponde abbastanza velocemente fornisce una buona esperienza utente. Un'applicazione che ritiene lenta e non risponde fornisce un'esperienza utente negativa. La scelta di un linguaggio ha un impatto minimo o nullo sul rendimento percepito . Qualsiasi buon interaction designer direbbe che ci sono molti modi per migliorare le prestazioni percepite senza fare il profiling e l'ottimizzazione del codice.
² Dato che l'esperienza dell'utente conta molto più delle funzionalità, dal momento che non vi è alcun vantaggio dal mettere centinaia di funzionalità se nessun utente ordinario può usarle o addirittura trovarle. Ciò spiega anche la tendenza attuale a concentrare eccessivamente gli sforzi sull'esperienza utente, riducendo al contempo il numero di funzionalità originariamente proiettate.
³ A meno che non si tratti di un'app Web o un'applicazione che fornisce un'API che può essere utilizzata da quasi tutte le lingue.