Programmering

Hvorfor Rust-sproget er stigende

Du har sandsynligvis aldrig skrevet noget i Rust, open source, programmeringssprog på systemniveau oprettet af Mozilla, men du vil sandsynligvis på et tidspunkt. Udviklere kronede Rust som deres "mest elskede" sprog i Stack Overflow's 2019-udviklerundersøgelse, mens Redmonks halvårlige sprograngering så Rust komme inden for spytteafstand fra top 20 (ranking # 21).

Dette på trods af rustbrugere "finder [ing] vanskeligheder og frustration over sprogets meget udråbte funktioner for hukommelsessikkerhed og korrekthed."

Hvorfor er et sprog, der vides at være noget vanskeligt at lære så elsket? I samtaler med udviklere ser det ud til, at svaret kommer ned på ideen om, at Rust er "systemprogrammering med beskyttelsesskinner", som Oso CTO Sam Scott beskriver det, hvor en af ​​disse "beskyttelsesskinner" er et usædvanligt indbydende samfund.

Systemprogrammering med beskyttelsesskinner

De fleste udviklere rejser normalt ikke ind i systemprogrammeringsområdet. Applikationsudviklere har for eksempel en tendens til ikke at skulle komme tæt på den underliggende hardware. De har sandsynligvis heller ikke brug for at bygge platforme, som anden software vil køre på, et centralt definitionselement til systemprogrammering.

For de udviklere, der arbejder med programmeringssprog på lavere niveau som C eller C ++, er Rust en åbenbaring, noget jeg først dækkede i 2015. Spol fremad et par år, men Rust bliver bare bedre.

Bedt om at redegøre for Rusts største salgsargumenter, tilbyder udvikleren David Barsky følgende:

  • Performant. Rust er i stand til at erstatte C / C ++ i rum, hvor den typisk trives i. For eksempel: "For latensfølsomme netværkstjenester resulterer Rust mangel på indsamling af kørselsaffald i næsten ikke-eksisterende halen latenser."
  • Pålidelig. "Dens typesystem og lånekontrol - en statisk affaldssamler til kompileringstid - forhindrer hele klasser af fejl, der accepteres som 'normale' i Python, Java og C ++."
  • Udviklerens produktivitet. "Cargo, byggeværktøjet og pakkehåndteringen, er et af de bedste build-systemer og pakkehåndtere, jeg har brugt." Rust leveres også med fremragende indbygget dokumentation og stor, indbygget enhed, integration og dokumentationstest.

Barskys oplevelse ligner Scotts. Kommer fra programmeringssprog på højere niveau (Java, Ruby on Rails), siger Scott, at hans erfaring med C var mindre end behagelig: “C var forfærdelig, fordi jeg konstant løb ind i hukommelsesproblemer, segfaults osv. Og jeg mere eller mindre følte, at jeg kæmpede med koden hele tiden. ”

Rust var derimod "systemprogrammering med beskyttelsesskinner." Scott forklarer:

Derefter prøvede jeg Rust (den var lige blevet 1.0), og det føltes som systemprogrammering med rækværk. Alle de ting, jeg havde brug for til at lave systemprogrammering på lavt niveau, men med meget hjælp til at debugge og gøre koden sikker - som lånemaderen og kompilatoren og derefter senere værktøj som linterne ("clippy"). Det havde tilbudt mange af de kendte aspekter af funktionel og objektorienteret programmering og syntes bare at passe ind i min mentale model for, hvordan jeg ville bygge systemer.

Som medstifter af Oso kunne Scott ikke undgå programmering på lavere niveau. Oso, med en mission om at gøre back-end infrastruktur sikkerhed usynlig for udviklere og enkel for ops, ”har brug for den ydeevne, som et sprog på systemniveau tilbyder. "Vi kan ikke bruge et affaldssamlet sprog som Go, fordi ydeevnen ikke ville være konsistent nok til det, vi gør, da vi sidder på den kritiske vej for kundetrafik," sagde Scott.

Alt dette lyder godt, indtil vi vender tilbage til det potentielle problem med sourcing af udvikler talent, der er velbevandret i et relativt nyt sprog. Tilgængeligt talent kan dog være Rusts bedste funktion af alle.

Rustprogrammerere ønskede

En kritisk komponent i at lære noget nyt er, at folk er villige til at hjælpe med overgangen. Her skinner Rust. Som Barsky udtrykker det,

Rust-samfundet er fuld af lidenskabelige, venlige og intelligente mennesker. Det har en stærkt håndhævet adfærdskodeks, hvilket betyder, at uhøflig eller chikanerende opførsel ikke tolereres. Anekdotisk har det nogle af de højeste koncentrationer af LGBTQA-folk, jeg har set i ethvert teknologisamfund.

Dette samfund er en stor grund til, at udviklere ifølge Scott kan hente Rust om et par måneder. Rust ”kræver lidt tankegang,” siger han. "Du er nødt til at gøre mere arbejde i forvejen, når du tænker på ting som typer og levetid." Men når du først er der, ”betaler det udbytte langs linjen.”

Lille under, så så mange udviklere elsker Rust. Opadrettede er store, og ulempen minimeres af Rusts indbydende og inkluderende samfund.