Programmering

Hvorfor Rust-språket øker

Du har sannsynligvis aldri skrevet noe i Rust, åpen kildekode, programmeringsspråk på systemnivå opprettet av Mozilla, men du vil sannsynligvis gjøre det på et tidspunkt. Utviklere kronet Rust som sitt "mest elskede" språk i Stack Overflow's utviklerundersøkelse i 2019, mens Redmonks halvårlige språkrangering så Rust komme innenfor spytteavstand fra topp 20 (rangering # 21).

Dette, til tross for at brukere av Rust "finner vanskeligheter og frustrasjoner over språkets svært fremhevede funksjoner for minnesikkerhet og korrekthet."

Hvorfor er det kjent at et språk er noe vanskelig å lære så elsket? I samtaler med utviklere ser det ut til at svaret kommer ned på ideen om at Rust er "systemprogrammering med verneskinner", som Oso CTO Sam Scott beskriver det, med en av disse "vaktlistene" som et eksepsjonelt imøtekommende samfunn.

Systemprogrammering med rekkverk

De fleste utviklere reiser normalt ikke inn i systemprogrammeringsområdet. Programutviklere har for eksempel en tendens til ikke å trenge å komme nær den underliggende maskinvaren. De trenger sannsynligvis heller ikke å bygge plattformer som annen programvare vil kjøre på, et sentralt definisjonselement for systemprogrammering.

For de utviklerne som jobber med programmeringsspråk på lavere nivå som C eller C ++, er Rust en åpenbaring, noe jeg først dekket i 2015. Spol fremover noen år, og Rust blir bare bedre.

Bedt om å detaljere Rusts viktigste salgsargumenter, tilbyr utvikler David Barsky følgende:

  • Utøvende. Rust er i stand til å erstatte C / C ++ i mellomrom det vanligvis trivdes i. For eksempel: "For ventetidssensitive nettverkstjenester resulterer Rust mangel på innsamling av kjøretidssøppel i nesten ikke eksisterende halenforsinkelser."
  • Pålitelig. "Dens typesystem og lånejekker - en statisk søppelsamler for kompileringstid - forhindrer hele klasser av feil som er akseptert som" normale "i Python, Java og C ++."
  • Utviklerproduktivitet. "Cargo, byggeverktøyet og pakkeforvalteren, er et av de beste byggesystemene og pakkeforvalterne jeg har brukt." Rust kommer også med utmerket innebygd dokumentasjon, og flott, innebygd enhet, integrasjon og dokumentasjonstesting.

Barskys erfaring ser ut som Scott. Kommer fra programmeringsspråk på høyere nivå (Java, Ruby on Rails), sier Scott at hans erfaring med C var mindre enn hyggelig: “C var forferdelig fordi jeg hele tiden kjørte på minneproblemer, segfeil osv. Og jeg mer eller mindre føltes som om jeg kjempet med koden hele tiden. ”

Rust var derimot "systemprogrammering med rekkverk." Scott forklarer:

Så prøvde jeg Rust (den hadde nettopp blitt 1.0), og det føltes som systemprogrammering med verneskinner. Alle tingene jeg trengte for å gjøre programmering på lavt nivå, men med mye hjelp til å feilsøke og gjøre koden trygg - som lånekontrolleren og kompilatoren, og deretter senere verktøy som linters ("clippy"). Det hadde tilbudt mange av de kjente aspektene ved funksjonell og objektorientert programmering, og syntes bare å passe med min mentale modell av hvordan jeg ønsket å bygge systemer.

Som medstifter av Oso kunne Scott ikke unngå programmering på lavere nivå. Oso, med et oppdrag å gjøre back-end infrastruktur sikkerhet usynlig for utviklere og enkel for ops, ”trenger ytelsen som et språk på systemnivå tilbyr. "Vi kan ikke bruke et søppeloppsamlet språk som Go, fordi ytelsen ikke ville være konsistent nok for det vi gjør, siden vi sitter på den kritiske banen til kundetrafikk," sa Scott.

Alt dette høres bra ut til vi kommer tilbake til det potensielle problemet med å skaffe utvikler talent godt kjent med et relativt nytt språk. Tilgjengelig talent kan imidlertid være Rusts beste funksjon av alle.

Rustprogrammerere ønsket

En kritisk komponent for å lære noe nytt er at folk er villige til å hjelpe til med overgangen. Her skinner Rust. Som Barsky uttrykker det,

Rust-samfunnet er fullt av lidenskapelige, snille og intelligente mennesker. Den har en sterkt håndhevet atferdskodeks, noe som betyr at frekk eller trakasserende oppførsel ikke tolereres. Anekdotisk har den noen av de høyeste konsentrasjonene av LGBTQA-personer jeg har sett i ethvert teknologisamfunn.

Dette samfunnet er en stor grunn til at utviklere ifølge Scott kan hente Rust om noen få måneder. Rust "krever litt tankegang," sier han. "Du må gjøre mer arbeid på forhånd og resonnere om ting som typer og levetider." Men når du kommer dit "betaler det utbytte nedover linjen."

Lite rart da at så mange utviklere elsker Rust. Oppsiden er stor, og ulempen minimeres av Rusts innbydende og inkluderende samfunn.

$config[zx-auto] not found$config[zx-overlay] not found