Zašto Firefox je morao ubiti svoje najdraže proširenje
Firefox 57, ili Quantum, je ovdje, i to je veliki napredak. Firefox je napokon sustigao Chrome u smislu brzine, sučelje je puno čišće, a postoje i neke nove nove mogućnosti za dizanje. Ovdje se ne može mnogo žaliti.
Samo se šalim. Na internetu se uvijek može nešto žaliti.
Uz Firefox Quantum, pritužba de jour je da određena proširenja više ne rade. Brojna proširenja visokog profila, uključujući DownThemAll i Greasemonkey, trenutno ne rade s Quantumom. Drugi, uključujući Firebug i ScrapBook, vjerojatno više nikada neće raditi.
To je frustrirajuće ako ste korisnik neke od tih usluga, a možda mislite da je to nešto proizvoljno. Nije. Svidjelo nam se to ili ne, Mozilla je osjećala da nemaju izbora nego da napuste ono što naziva "naslijeđenim" dodacima kako bi krenuli naprijed. Evo zašto.
Kako su funkcionirali naslijeđeni Firefox proširenja
Tradicionalna proširenja za Firefox općenito su napisana u jeziku XML korisničkog sučelja (XUL). To je jezik na kojem je izrađeno korisničko sučelje koje je Firefox izradio, a proširenja koja se temelje na XUL-u mogu izravno izmijeniti to sučelje. Ovi dodaci također su imali potpuni pristup XPCOM-u, moćnom modelu objektnog objekta koji je koristio Firefox.
Ako je to prošlo preko vaše glave, samo znajte ovo: Firefox proširenja su imala više ili manje ukupne sposobnosti da promijene vaš preglednik, a te su promjene izvršile izravno. Zato su ta proširenja bila tako snažna: nije bilo propisanog skupa stvari koje su mogli i nisu se mogli promijeniti. Također je razlog zašto su se ta proširenja razbijala s novim izdanjima Firefoxa.
Proširenja za Chrome ili Safari ne funkcioniraju na ovaj način. Ti preglednici nude specifične API-jeve programerima za proširenje koje mogu koristiti, što znači da postoji skup popisa stvari koje proširenja mogu i ne mogu kontrolirati. Već dvije godine Firefox nudi sličan API zvan WebExtensions, koji je potaknuo razvojne programere na usvajanje.
Tradicionalna proširenja teško poboljšavaju Firefox
Firefox Quantam nije prvo ažuriranje kojim se prekida proširenje: to je bio problem koji traje već godinama. Budući da proširenja Firefoxa mogu tako izravno utjecati na Firefox, bilo je moguće da čak i manje izmjene samog Firefoxa potpuno prekinu dodatke ili samo uvedu greške koje sapunjavaju performanse.
Korisnici Firefoxa, koji ne znaju da su proširenja uzrokovali problem, pretpostavili su da je nova verzija Firefoxa neispravna, a iz njihove perspektive bila je. Tim tvrtke Firefox učinit će sve da osigura da popularna proširenja rade prije nego što pokrenu novu verziju, ali lako je zamisliti sve to usporavanje razvoja.
WebExtensions API čini sve ovo lakšim tako što specifično definira što ekstenzije mogu učiniti i kako to mogu učiniti. To znači da programeri trebaju samo osigurati da API funkcionira ispravno, a ne brinuti da će promjena u izvedbi ili promjena korisničkog sučelja prekršiti određena proširenja. Rezultat bi trebalo biti manje prekida proširenja na duže staze, ali da bi to bilo moguće, Mozilla je morala napustiti stari ekosustav proširenja.
Promjena također čini neke od najboljih značajki Quantama mogućim. Mogućnost višestrukih procesa, na primjer, veliki je dio povećanja brzine Firefox Quantama. Četiri zasebna procesa obrađuju Firefox sučelje i kartice, što znači da Firefox može koristiti sve četiri jezgre vašeg procesora umjesto samo jedne. To je stvarnost za koju tradicionalni ekosustav proširenja jednostavno nije izgrađen, i teško je zamisliti kako bi on funkcionirao bez mnogo slojeva apstrakcije koji bi neizbježno usporili stvari. Mnoge nadolazeće promjene u Firefoxu na sličan su način zadržane zbog naslijeđenih dodataka, što znači da se ekosustav morao promijeniti kako bi se Firefox razvio.
Cross Platform Compatibility je problem
Jednom davno, dodaci su ljudima dali izuzetan razlog da koriste Firefox preko Chromea. Ovih dana, Chrome je daleko najveći lider u pogledu dodataka, dok se Firefox može osjećati kao groblje nepromijenjenih proširenja iz prošlih godina.
Naravno, postoji nekoliko Firefox proširenja koje ne možete dobiti u Chromeu, ali Chrome ima daleko veći ekosustav. Novi API za WebExtensions neće to riješiti preko noći, ali čini ga mnogo lakšim da se proširenja preglednika Chrome prenesu na Firefox jer je jezik koji se koristi za pisanje proširenja dovoljno sličan da bi portiranje bilo površno. U mnogim slučajevima potrebno je samo nekoliko izmjena za proširenje preglednika Chrome u Firefoxu, što znači da nema razloga da vaše omiljene Chromeove proširenja sada ne mogu doći u Firefox ako dovoljno dobro upitate razvojnog programera. To bi trebalo dovesti do poplave novih proširenja u ekosustavu koji bi to iskreno koristili.
Firefox je već izgubio korisnike
Neki bi mogli tvrditi da će Firefox izgubiti korisnike zbog neispravnih proširenja, ali vrijedi napomenuti da Firefox već gubi korisnike na Chrome-u uz alarmantnu stopu, i to već godinama. Usporedna brzina i nedostatak određenih dodataka nisu pomogli na tom frontu, a Firefox Quantum nastoji riješiti oba problema.
Postoji li šansa da će se to obiti o glavu? Naravno. Neki će ljudi preći na Chrome, a drugi će možda potražiti stare vilice koje održavaju stari ekosustav proširenja. Ali nije tako stvari išle dobro prije. Firefox je trebao evoluirati da bi ostao relevantan, i tako su odlučili to učiniti.
Programeri su imali vremena za prebacivanje na novi API
Neki korisnici neće primijetiti da se taj prekid čak dogodio, jer proširenja koja već upotrebljavaju koriste WebExtension API. Druga proširenja nisu zamijenjena.
Razlog tome može biti to što je programer odavno napustio proširenje ili ga ne želi ponovno pisati da bi koristio API. U nekim slučajevima API ne nudi dovoljno kontrole za ponovno stvaranje izvornog proširenja, tako da programeri napuštaju svoje projekte. U mnogim slučajevima, pretvorba još uvijek nije gotova.
U svakom slučaju, ekstenzije ne prekidaju, jer je Mozilla iznenada promijenila nešto. WebExtensions je dio Firefoxa dvije godine, a rok za ažuriranje proširenja najavljen je prije godinu dana:
Do kraja 2017. i izdavanjem Firefoxa 57 prebacit ćemo se isključivo na WebExtensions i prestat ćemo učitavati sve druge vrste proširenja na radnoj površini.
Još uvijek nedostaje proširenje o kojem ovisi? Ovaj Google dokument prati nekoliko popularnih proširenja i nudi alternative za nekoliko uobičajenih proširenja. Ovaj je popis također koristan.