Perché Firefox ha dovuto uccidere la tua estensione preferita
Firefox 57, o Quantum, è qui, ed è un enorme miglioramento. 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 qui.
Stavo solo scherzando. Su internet, c'è sempre qualcosa di cui lamentarsi.
Con Firefox Quantum, la denuncia di viaggio è che alcune estensioni non funzionano più. Numerose estensioni di alto profilo, tra cui DownThemAll e Greasemonkey, attualmente non 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 è. Piaccia o no, Mozilla sentiva di non avere scelta, ma di abbandonare quelle che chiama componenti aggiuntivi "legacy" per andare avanti. Ecco perché.
Come funzionano le vecchie estensioni di Firefox
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 componente 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 garantire che le estensioni popolari funzionassero prima di spingere una nuova versione, ma è facile immaginare tutto questo rallentamento dello sviluppo.
L'API WebExtensions semplifica tutto ciò specificando 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 preoccuparti che una modifica delle prestazioni o un'interfaccia utente interrompano determinate estensioni. Il risultato dovrebbe essere il minor numero di estensioni irrompe nel lungo periodo, ma per rendere possibile tutto ciò, 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, ad esempio, è una parte importante del potenziamento 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 in modo che Firefox si evolva.
La compatibilità multipiattaforma era un problema
C'era una volta, i componenti aggiuntivi davano alle persone un motivo valido 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 possano venire a Firefox ora se chiedi allo sviluppatore abbastanza bene. Questo dovrebbe portare a una marea di nuove estensioni in un ecosistema che potrebbe usarlo francamente.
Firefox perdeva già gli utenti
Alcuni potrebbero obiettare che Firefox perderà gli utenti a causa di estensioni non funzionanti, ma vale la pena notare che Firefox stava già perdendo utenti su 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 la nave su 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 evolversi per rimanere rilevante, ed è così che hanno deciso di farlo.
Gli sviluppatori hanno avuto il tempo di passare alla nuova API
Alcuni utenti non si accorgono che questo switch è mai accaduto, perché le estensioni con cui lavorano utilizzano già l'API WebExtension. Altre estensioni non sono passate.
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:
Entro la fine del 2017, e con l'uscita di Firefox 57, ci sposteremo esclusivamente su WebExtensions e smetteremo di caricare qualsiasi altro tipo di estensione sul desktop.
Manca ancora un'estensione da cui dipendi? Questo documento di Google sta monitorando diverse estensioni popolari e fornisce alternative a diversi standard comuni. Questa lista è anche utile.