Firefox 57, o Quantum, è arrivato, ed ha avuto un miglioramento incredibile. Firefox ha finalmente raggiunto Chrome in termini di velocità, l'interfaccia è molto più pulita e ci sono alcune nuove fantastiche funzionalità da avviare. Non c'è molto di cui lamentarsi insomma. Stavo solo scherzando. Su internet, c'è sempre qualcosa di cui lamentarsi....
Con Firefox Quantum, il reclamo del giorno è che alcune estensioni non funzionano più. Numerose estensioni di alto profilo, tra cui DownThemAll e Greasemonkey, attualmente funzionano con Quantum. Altri, tra cui Firebug e ScrapBook, probabilmente non funzioneranno mai più.
Questo è frustrante se sei un utente di uno di questi servizi e potresti pensare che sia in qualche modo arbitrario. Non lo è in verità. Piaccia o no, Mozilla sentiva di non avere scelta, ma di abbandonare quelli che chiama componenti aggiuntivi "legacy" (eredità) per andare avanti. Ecco perché.
Come funzionavano le estensioni di Firefox legacy
Le estensioni tradizionali di Firefox erano generalmente scritte in XML User Interface Language (XUL). Questa è la lingua con cui l'interfaccia utente di Firefox è stata creata e le estensioni basate su XUL possono modificare direttamente tale interfaccia. Questi add-on avevano anche quasi accesso completo a XPCOM, il potente modello di oggetti componenti utilizzato da Firefox.
Se ti è venuto in mente, sappi solo che: le estensioni di Firefox hanno una capacità più o meno totale di cambiare il tuo browser e hanno apportato tali modifiche direttamente. Ecco perché quelle estensioni erano così potenti: non c'era un insieme prescritto di cose che potevano e non potevano cambiare. È anche il motivo per cui queste estensioni tendono a rompere con le nuove versioni di Firefox.
Le estensioni per Chrome o Safari non funzionano in questo modo. Questi browser offrono agli sviluppatori di estensioni API specifiche che possono utilizzare, il che significa che c'è un elenco di cose che le estensioni possono e non possono controllare. Per due anni, Firefox ha offerto un'API simile chiamata WebExtensions, che ha incoraggiato gli sviluppatori ad adottare.
Le estensioni tradizionali hanno reso difficile migliorare Firefox
Firefox Quantam non è il primo aggiornamento a rompere un'estensione: questo è stato un problema in corso da anni. Poiché le estensioni di Firefox potrebbero influenzare Firefox in modo così diretto, è stato possibile persino apportare modifiche minori a Firefox stesso per rompere completamente i componenti aggiuntivi, o semplicemente introdurre bug che riducono le prestazioni.
Gli utenti di Firefox, non sapendo che le estensioni stavano causando il problema, presumevano che la nuova versione di Firefox fosse difettosa, e dal loro punto di vista lo era. Il team di Firefox farebbe del suo meglio per assicurarsi che le estensioni popolari funzionnino prima di spingere una nuova versione, ma è facile immaginare tutto questo rallentamento dello sviluppo.
L'API WebExtensions semplifica tutto ciò definendo specificamente cosa possono fare le estensioni e come possono farlo. Ciò significa che gli sviluppatori devono solo assicurarsi che l'API funzioni correttamente, e non preoccuparsi che una modifica delle prestazioni o un'interfaccia utente interrompano determinate estensioni. Il risultato dovrebbe essere il minor numero di estensioni che si interrompono nel lungo periodo, ma per renderlo possibile, Mozilla aveva bisogno di abbandonare il vecchio ecosistema di estensione.
Il cambiamento rende anche alcune delle migliori caratteristiche di Quantam possibili. La capacità multi-processo è una parte importante della velocità di Firefox Quantam. Quattro processi separati gestiscono l'interfaccia e le schede di Firefox, il che significa che Firefox può utilizzare tutti e quattro i core del processore invece di uno solo. Questa è una realtà alla quale l'ecosistema di estensione tradizionale semplicemente non è stato costruito, ed è difficile immaginare di farlo funzionare senza un sacco di strati di astrazione che inevitabilmente rallenterebbero le cose. Molte modifiche imminenti a Firefox sono state trattate in modo analogo da componenti aggiuntivi legacy, il che significa che l'ecosistema ha dovuto cambiare per consentire l'evoluzione di Firefox.
La compatibilità multipiattaforma era un problema
Una volta i componenti aggiuntivi davano agli utenti un motivo convincente per usare Firefox su Chrome. Al giorno d'oggi, Chrome è di gran lunga il leader in termini di componenti aggiuntivi, mentre Firefox può sembrare un cimitero di estensioni non mantenute negli anni passati.
Certo, ci sono alcune estensioni di Firefox che non puoi ottenere in Chrome, ma Chrome ha l'ecosistema più grande di gran lunga. La nuova API WebExtensions non risolverà la situazione da un giorno all'altro, ma renderà molto più semplice il trasferimento delle estensioni di Chrome a Firefox perché il linguaggio utilizzato per scrivere le estensioni è abbastanza simile da rendere il porting superficiale. In molti casi, sono necessarie solo alcune modifiche per eseguire un'estensione di Chrome in Firefox, il che significa che non c'è motivo per cui le tue estensioni preferite di Chrome non si possano trasferire in Firefox. Ciò dovrebbe portare a un fiorire di nuove estensioni.
Firefox perdeva già gli utenti
Alcuni potrebbero obiettare che Firefox perderà utenti a causa di estensioni non funzionanti, ma vale la pena notare che Firefox stava già perdendo utenti verso Chrome ad un ritmo allarmante, ed è stato per anni. La velocità comparativa e la mancanza di alcuni componenti aggiuntivi non stavano aiutando su questo fronte, e Firefox Quantum mira a risolvere entrambi questi problemi. C'è una possibilità che si ritorcerà contro? Sicuro. Alcune persone salteranno sulla nave di Chrome, e altre potrebbero cercare antiche forche che mantengano il vecchio ecosistema di estensione. Ma non è come se le cose stessero andando bene prima. Firefox aveva bisogno di evolvere per rimanere rilevante, ed è così che hanno deciso di farlo.
Gli sviluppatori hanno avuto il tempo di passare alla nuova API
Alcuni utenti non noteranno che questo switch è stato eseguito, poiché le estensioni con cui lavorano utilizzano già l'API WebExtension. Ciò potrebbe essere dovuto al fatto che lo sviluppatore ha abbandonato l'estensione molto tempo fa o non ha voglia di riscriverlo per utilizzare l'API. In alcuni casi, l'API non offre un controllo sufficiente per ricreare l'estensione originale, quindi gli sviluppatori stanno abbandonando i loro progetti. E in molti casi, la conversione semplicemente non è ancora finita. In ogni caso, le estensioni non si rompono perché Mozilla ha cambiato qualcosa all'improvviso. WebExtensions è stato parte di Firefox per due anni e la scadenza per l'aggiornamento delle estensioni è stata annunciata un anno fa:Manca ancora un'estensione da cosa dipende? Questo documento di Google sta monitorando diverse estensioni popolari e offre alternative a diversi standard comuni. Anche questa lista è molto utile.