David Walsh è uno sviluppatore ed evangelist per la Mozilla Foundation. In quest'intervista gli abbiamo chiesto le sue opinioni sul futuro di JavaScript, dei browser e notizie sul suo lavoro.
Secondo te quali sono le prossime novità che possiamo aspettarci in JavaScript dopo i recenti sviluppi nello standard ECMAScript?
Credo che potremo essere felici dei nuovi sviluppi ma penso che i framework JavaScript saranno ancora popolari e richiesti. Sono entusiasta dei valori predefiniti degli argomenti delle funzioni, dei Maps e delle altre caratteristiche fornite da ECMAScript, ma dato che sono uno sviluppatore che ha sempre vissuto dal lato client non sono mai troppo entusiasta delle nuove caratteristiche di ECMAScript perché ci vuole molto tempo per implementarle. In generale però sono sempre felice di vedere arrivare queste nuove caratteristiche.
Secondo te i browser obsoleti hanno rallentato lo sviluppo di JavaScript tanto che gli sviluppatori hanno ora paura di usare le nuove tecniche perché alcuni browser non le supportano?
Sappiamo bene che IE6, IE7 e IE8 erano tutt'altro che spettacolari, così non offenderò Microsoft ma penso che aver abbandonato lo sviluppo di Internet Explorer per un decennio abbia davvero rallentato lo sviluppo delle Web app.
Ogni sviluppatore era entusiasta delle caratteristiche offerte da Firefox, Chrome, Safari e Opera ma allo stesso tempo era spaventato dai risultati in IE. Oggi accettiamo di più alcune differenze tra i browser soprattutto grazie al mondo mobile, ma cinque anni fa non riuscivamo a risolvere i problemi derivanti dalla mancanza di supporto di un browser agli standard. Non vedremo più un'era di stasi come quella di IE, ma se anche dovesse esserci sapremo come gestirla.
JavaScript non era il solo standard a soffrire: avevamo problemi con le immagini PNG e non avevamo proprietà CSS come
opacity
. Internet Explorer era un disastro. Dobbiamo ringraziare persone come Valerio Proietti per averci aiutato in quel periodo.
Pensi che librerie JavaScript come jQuery, Prototype e MooTools abbiamo dato una spinta al bisogno di avere un supporto JavaScript migliore nei browser?
Certamente. Penso che i framework JavaScript abbiano mostrato cosa si poteva fare con JavaScript in quel periodo e quindi abbiano continuato a far avanzare il limite man mano che i browser implementavano le nuove caratteristiche.
Col passare del tempo i framework hanno implementato funzionalità di cui avevamo bisogno e hanno dato dei suggerimenti ai curatori delle specifiche e ai produttori di browser. I creatori dei framework JavaScript hanno mostrato ciò di cui c'era bisogno ma c'era comunque la necessità che i produttori di browser lo implementassero nativamente per una questione di performance.
I framework JavaScript hanno giocato un ruolo fondamentale nella storia dei siti Web e di JavaScript. Oggi si parla meno di questi framework e sebbene lo dica con una certa nostalgia, sono contento del fatto che ora queste caratteristiche CSS e JavaScript siano state implementate in modo nativo.
La Mozilla Foundation crede negli standard del Web. Quali sono le maggiori difficoltà che hai incontrato nel tuo lavoro come evangelist?
Ricevo alcuni commenti ricorrenti. Il primo è che preferiscono i Chrome Developer tool e credo vada bene nel senso che ognuno ha i suoi strumenti preferiti. Ma devo anche dire che i developer tool di Mozilla siano migliorati moltissimo e in alcuni casi sono migliori di quelli di Chrome. Conosco i membri del team dei Dev tool e so che lavorano senza sosta per migliorarli. Sono orgoglioso di lavorare con loro.
Il secondo commento è che Firefox OS non va ancora bene o non è ancora pronto è che iOS gli è superiore. In questo caso penso che si stia perdendo di vista il punto della questione: questo sistema basato su HTML5 sarà la prima esperienza mobile
che avranno milioni di persone. Firefox OS si rivolge ai mercati emergenti, così sarà facile da avere per lo sviluppatore, poco costoso da acquistare e facile da usare. Una vittoria per tutti.
Ora possiamo dire che la guerra dei browser è finita. è vero o siamo solo entrati in una nuova fase?
Siamo entrati in una nuova fase in cui i protagonisti principali sono gli sviluppatori. La spinta maggiore è negli strumenti di sviluppo e non più nelle caratteristiche proprietarie.
Il senso è: migliori tool, migliori app sviluppate e migliore user experience per gli utenti di un dato browser. Da qui più utenti adotteranno quel dato browser. Man mano che gli utenti acquisiscono esperienza,
e nuovi utenti acquisiscono una consapevolezza nella scelta del browser, i browser a loro volta cresceranno. Oggi poter scegliere è una realtà per gli utenti del Web.
Sono uno sviluppatore desideroso di progredire in JavaScript. Cosa dovrei fare?
Qualsiasi cosa tu abbia fatto per imparare altri linguaggi come CSS, MySQL, PHP, Ruby o altro. Le persone imparano in modi diversi: libri, tutorial, corsi, conferenze ecc. Io imparo sperimentando. Creo un documento HTML vuoto o vado su un sito e uso la console JavaScript. Niente è meglio per imparare che giocare col codice dal vivo. Farai degli errori ma questi sono importanti se sai trarne insegnamento.
Il mio consiglio è quello di fissare un obiettivo da raggiungere col linguaggio che vuoi imparare. Crea qualcosa che abbia un valore per te. Quando ho imparato PHP e MySQL mi sono creato un sito per gestire i miei DVD. Potevo aggiungerli, modificarli, rimuoverli, ordinarli per titolo, genere ecc. Dato che il sito aveva un valore per me ero più propenso a imparare PHP e MySQL. Lo stesso vale per ogni linguaggio di programmazione. Lo consiglio a tutti gli sviluppatori.
Pensi che lo slogan "da vedersi col browser che vi pare" debba essere sostituito dalla più realistica filosofia della "graceful degradation"?
Certo. Sappiamo che alcuni siti e app non verranno resi bene in tutti i browser, specialmente app molto avanzate. Quindi non dovremmo cercare di far funzionare ogni sito in ogni browser perché non è un obiettivo realistico.
Dovremmo invece far sapere all'utente che il suo browser non supporta una data caratteristica e al contempo rendere il sito ancora usabile. Si tratta di un equilibrio difficile ma si può fare ed è questa la differenza tra un buon sito e un ottimo sito.
Il supporto ai browser dipende anche dalle risorse a disposizione. Non sempre è possibile sistemare tutto, ma non ci saranno problemi se riusciamo a farlo sapere all'utente.
Quali sono i tuoi prossimi progetti come sviluppatore ed evangelist?
Dal punto di vista professionale continuerò ad aggiungere miglioramenti al Mozilla Developer Network. Abbiamo fatto un redesign di recente e vogliamo renderlo più user-friendly. Continuerò anche il mio lavoro di evangelist sulle app HTML5 e Firefox OS (sono appassionato di questi argomenti).
Dal punto di vista personale continuerò a condividere le mie esperienze sul mio blog. Vorrei anche continuare a sviluppare rapporti di amicizia con gli sviluppatori incontrati online.
E spero anche di creare codice per più progetti open source.