Programmering

Mozilla binder Firefoxs skæbne til Rust-sproget

Mozilla var altid beregnet til, at Rust kunne bruges til at opbygge nøgledele i Firefox-browseren. Nu forpligter virksomheden sig til denne vision på en væsentlig måde.

Efter version 53 vil Firefox kræve, at Rust kompilerer med succes på grund af tilstedeværelsen af ​​Firefox-komponenter bygget med sproget. Men denne beslutning kan begrænse antallet af platforme, som Firefox kan overføres til - for nu.

Rust, Mozilla Research's sprog til hurtig og sikker programmering på systemniveau, er på tærsklen til en ny udgivelse. Rust 1.15s mest bemærkelsesværdige nye funktion er et moderniseret build-system skrevet i Rust og bruger Rusts native Cargo-pakkehåndtering. Tidligere blev Rust bygget med makefiler; med denne ændring kan Rust bygges ved hjælp af Cargo "kasser" som ethvert andet Rust-projekt. Det er et af mange skridt, som Rust har taget for at blive sit eget økosystem, ikke afhængig af stykker bygget af andre.

Da Rust er modnet og stabiliseret, er det blevet lettere for Firefox-udviklere at flytte mere af browserens kritiske infrastruktur til dette sprog. Men der er en ulempe: Enhver platform, hvor du har til hensigt at opbygge og køre Firefox, skal bruge en arbejdsudgave af Rust-kompilatoren.

Rust er beregnet til at være på tværs af platforme, så dette skal være muligt. De praktiske implikationer er imidlertid mere komplekse. Rust afhænger af LLVM, som har sine egne afhængigheder - og alle skal understøttes på målplatformen.

En diskussion om Bugzilla-trackeren til Firefox rejser mange af disse punkter. Andre bekymringer boblede også op: Hvad med korrekt support til Linux-distributioner med langsigtet support, hvor de tilgængelige værktøjer på distroen ofte er frossne, og hvor nyere Rust-funktioner muligvis ikke er tilgængelige? Hvad med support til Firefox på "ikke-tier-1" platforme, der udgør en mindre andel af Firefox-brugere?

Mozillas holdning er, at smerten ved overgangen i det lange løb vil være det værd. ”Fordelen ved at bruge Rust er for stor,” ifølge vedligeholder Ted Mielczarek. ”Vi går normalt ikke ud af vores måde at gøre livet sværere for folk, der opretholder Firefox-porte, men i dette tilfælde kan vi ikke lade mindre brugt platforme begrænser os fra at bruge Rust i Firefox, ”skrev han.

De platforme, der mest sandsynligt vil blive påvirket af denne beslutning, ifølge en diskussion i Bugzilla-tråden, er ikke-skrivebordsarkitekturer som IBMs S390. Som et resultat er det muligt, at de, der sender Linux-distributioner til disse arkitekturer - som Red Hat gør med Fedora - simpelthen vil droppe Firefox-support til de builds, der endnu ikke fuldt ud understøtter Rust.

De fleste Firefox-brugere vil ikke blive påvirket af dette. Det bedste håb for dem, der er, er at marskal bestræbe sig på at opbygge de platforme, der har brug for ruststøtte - samtidig med at det udvikler både Firefox og Rust.

Konventionelle Firefox-brugere er dog mere interesserede i slutresultatet - en lovet foryngelse, der vil holde browseren hurtig og funktionskonkurrencedygtig - og mindre om teknologien, der bruges til at opnå det. Presset er ikke kun for at flytte til Rust, men for at bevise, at flytningen var det værd.