Boris Zbarsky è uno degli implementatori di maggior rilievo di Firefox. L'intervista che segue è stata autorizzata dalla Mozilla Foundation.
- Qual è il tuo lavoro alla Mozilla Foundation?
Innanzitutto, lavoro per la Mozilla Corporation, non direttamente per la Mozilla Foundation.
Il mio lavoro si concentra primariamente sui componenti di base di Gecko, soprattutto
l'implementazione CSS e DOM, ma a volte anche quella JavaScript. A parte questo, faccio
semplicemente quello di cui c'è bisogno: performance, caratteristiche, stabilità e così via. - Ogni nuova release di Firefox ha un supporto migliore agli standard. Potresti delineare il processo
alla base di questi miglioramenti?Non sono sicuro se tu intendi "processo" nel senso del meccanismo che apporta
cambiamenti ad una nuova versione o le motivazioni alla base del miglioramento.
Presumo che tu intenda la seconda.Ci sono due aspetti al momento: il primo è il miglioramento della qualità
della nostra implementazione degli standard che già implementiamo o implementiamo
in parte. Essenzialmente si tratta di fixare bug o aggiungere nuove caratteristiche.
La motivazione che ci spinge è il desiderio di non rilasciare codice errato, di
creare nuove caratteristiche che risultino utili agli sviluppatori web eliminando
le incoerenze tra le varie implementazioni dei browser e, in una certa misura,
di superare le varie test suite associate (le test suite sono ancora difficili
da realizzare per il W3C). La maggior parte del nostro lavoro sui CSS 2.1
ricade in questa categoria.Il secondo miglioramento che di solito vedi è l'implementazione di nuove
caratteristiche o l'aggiunta del supporto a nuovi standard. Spesso questo viene
fatto prima che gli standard raggiungano il loro stadio finale, in modo da
poter fornire il feedback ai gruppi di lavoro agli standard. Tutto cià è motivato
da considerazioni generali sull'evoluzione del web; vogliamo aggiungere quelle
cose che riteniamo possano meglio far progredire il web sia per gli sviluppatori che per
gli utenti. La maggior parte del lavoro fatto su HTML5 e sui CSS3 ricade in questa categoria. - Pensi che l'eccellente supporto di Firefox agli standard sia un aspetto chiave
del suo successo?Solo in parte. Ha contribuito alla sua popolarità tra gli sviluppatori, il che
ha portato ad avere molti siti che funzionano bene in Firefox. Dubito che questo
abbia influenzato l'adozione da parte degli utenti, che in genere si preoccupano
che qualcosa funzioni, ma non del come e del perchè. Anch'io seguo questa filosofia
nel quotidiano per quello che riguarda client email, compilatori, macchine virtuali, ecc.Inoltre, mi sembra che in molti casi gli standard non esistano come isole: di fatto
essi documentano cià di cui si ha bisogno per gestire il contenuto esistente.
Certamente questo è uno degli obiettivi primari degli algoritmi di parsing dei CSS 2.1
e di HTML5. In queste situazioni, implementare gli standard ci risparmia molti sforzi
nel reverse-engineering. Naturalmente ci sono altre situazioni in cui uno standard
produce un comportamento scorretto. Di solito questo è il caso in cui bisogna aggiornare
lo standard.Credo che oggi per un browser il supporto agli standard del W3C sia necessario, ma
non è sufficiente per il successo. - Da quando NGLayout fu rilasciato nel 1998, il motore di rendering di Firefox è cambiato molto.
Quali sono gli obiettivi futuri di Gecko?Questa è una domanda molto ampia. Ci sono degli obiettivi primari:
continua semplificazione del codice e risistemazione man mano che nuove caratteristiche
vengono aggiunte, attenzione alla performance, alla stabilità , alla sicurezza e a quelle
caratteristiche di cui ha bisogno una piattaforma web per essere competitiva.
All'interno di queste macro-categorie, ci sono obiettivi più specifici a breve termine, ma non sono
sicuro che tu voglia una lista di diverse pagine. - Pensi che il modulo sul layout CSS3 sarebbe difficile da implementare? Se si, perchè?
Onestamente, non ci ho pensato molto. Questo modulo sinora ha per noi una bassa priorità .
Credo che non dovrebbe essere così terribile (nel senso che non dovrebbe richiedere troppi cambiamenti
a Gecko), ma ho solo dato una scorsa all'idea di base, non una lettura attenta.
Spesso le complicazioni sono nei dettagli. - Parlando di JavaScript, pensi che un pieno supporto a JavaScript 2.0 sarà possibile in futuro?
Non sono sicuro di cosa stai chiedendo. Non c'è ancora un "JavaScript 2.0",
ma se ci fosse dovremmo già supportarlo: il linguaggio JavaScript è tutto cià
che viene implementato da Spidermonkey.Se stiamo parlando di una futura versione dello standard ECMAScript, allora dipende
da quello che intendi (non può essere 2.0 perchè quello che i browser supportano oggi è
ECMAScript 3.0). A parte questo, non ho seguito il processo relativo ad ECMAScript.
Non so quale delle proposte sia la "prossima versione", nè quale sia il numero di versione nè lo
stato dell'implementazione. - HTML 5 è certamente uno degli argomenti più in voga oggi. Ian Hickson ha scritto che per avere un pieno supporto ad HTML 5 ci vorrà molto tempo. Sei d'accordo con lui?
Certamente, per il contesto in cui lo diceva. Ci sono molte, molte funzionalità in HTML 5 e i browser avranno
bisogno di modificare il loro supporto ad HTML (il parsing, per esempio). Per questo ci vorranno alcuni anni,
per eliminare i bug nelle specifiche e nelle implementazioni altri ancora. - Infine, cosa diresti a uno sviluppatore web che ha scelto Firefox come il suo browser di sviluppo?
Documentate i bug che incontrate! Il feedback dagli sviluppatori è la cosa più importante per aiutarci a migliorare il nostro supporto agli standard
e per fixare i bug.