Varför Rust-språket ökar

Du har antagligen aldrig skrivit någonting i Rust, öppen källkod, programmeringsspråk på systemnivå som skapats av Mozilla, men du kommer sannolikt att göra det någon gång. Utvecklare krönte Rust som sitt "mest älskade" språk i Stack Overflow's utvecklarundersökning för 2019, medan Redmonks halvåriga språkrankning såg Rust komma inom spottavstånd från topp 20 (rankning # 21).

Detta trots att Rust-användare "finner svårigheter och frustration över språkets mycket framträdande funktioner för minnessäkerhet och korrekthet."

Varför är det känt att ett språk är något svårt att lära sig så älskat? I samtal med utvecklare verkar det som att svaret kommer ner på tanken att Rust är ”systemprogrammering med skyddsräcken”, som Oso CTO Sam Scott beskriver det, med en av dessa ”skyddsräcken” som en exceptionellt välkomnande gemenskap.

Systemprogrammering med skyddsräcken

De flesta utvecklare reser normalt inte in i systemprogrammeringsområdet. Applikationsutvecklare tenderar till exempel att inte behöva komma nära den underliggande hårdvaran. De behöver troligen inte heller bygga plattformar som annan programvara kommer att köras på, en viktig definition av systemprogrammering.

För de utvecklare som arbetar med programmeringsspråk på lägre nivå som C eller C ++ är Rust en uppenbarelse, något som jag först behandlade 2015. Snabbt framåt några år, men Rust blir bara bättre.

Ombedd att redogöra för Rusts viktigaste försäljningsställen, erbjuder utvecklaren David Barsky följande:

  • Utövande.  Rust kan ersätta C / C ++ i utrymmen som det vanligtvis trivdes i. Till exempel: ”För latenskänsliga nätverkstjänster, resulterar Rust i brist på uppsamling av runtime-skräp i nästan obefintliga svansfördröjningar.”
  • Pålitlig.  "Dess typsystem och lånekontrollare - en statisk, skräpsamlare som kompilerar tid - förhindrar hela klasser av buggar som accepteras som" normala "i Python, Java och C ++."
  • Produktivitetsutvecklare.  "Cargo, byggverktyget och pakethanteraren, är ett av de bästa byggsystem och pakethanterare jag har använt." Rust levereras också med utmärkt inbyggd dokumentation och bra, inbyggd enhet, integration och dokumentationstestning.

Barskys erfarenhet verkar likna Scotts. Kommer från programmeringsspråk på högre nivå (Java, Ruby on Rails), säger Scott att hans erfarenhet av C var mindre än behaglig: ”C var hemskt eftersom jag ständigt stötte på minnesproblem, segfel etc. Och jag mer eller mindre kändes som att jag kämpade med koden hela tiden. ”

Rost var däremot ”systemprogrammering med skyddsräcken.” Scott förklarar:

Sedan försökte jag Rust (det hade precis blivit 1,0), och det kändes som systemprogrammering med skyddsräcken. Allt jag behövde för att göra systemnivåprogrammering på låg nivå, men med mycket hjälp för att felsöka och göra koden säker - som lånekontrollören och kompilatorn, och sedan senare med verktyg som linarna ("clippy"). Det hade erbjudit många av de bekanta aspekterna av funktionell och objektorienterad programmering och verkade bara passa in i min mentala modell av hur jag ville bygga system.

Som medgrundare av Oso kunde Scott inte undvika programmering på lägre nivå. Oso, med ett uppdrag att göra back-end infrastruktursäkerhet osynlig för utvecklare och enkel för ops, ”behöver prestanda som ett språk på systemnivå erbjuder. "Vi kan inte använda ett skräpsamlat språk som Go, eftersom prestandan inte skulle vara konsekvent för vad vi gör, eftersom vi sitter på den kritiska vägen för kundtrafik", säger Scott. 

Allt detta låter fantastiskt, tills vi återvänder till det potentiella problemet med att köpa utvecklartalanger som är väl insatta i ett relativt nytt språk. Tillgänglig talang kan dock vara Rusts bästa funktion av alla.

Rostprogrammerare önskade

En viktig del av att lära sig något nytt är att människor är villiga att hjälpa till med övergången. Här lyser Rust. Som Barsky uttrycker det,

Rust-samhället är fullt av passionerade, snälla och intelligenta människor. Den har en starkt upprätthållen uppförandekod, vilket innebär att oförskämd eller trakasserande beteende inte tolereras. Anekdotiskt har den några av de högsta koncentrationerna av HBTQA-människor jag har sett i alla tekniska samhällen.

Denna gemenskap är en stor anledning till att utvecklare enligt Scott kan hämta Rust på några månader. Rust ”kräver lite tänkesätt”, säger han. "Du måste göra mer arbete framför resonemang om saker som typer och livstider." Men när du väl har kommit dit ”betalar det utdelningar längs linjen.”

Lite konstigt att då så många utvecklare älskar Rust. Uppsidan är stor och nackdelen minimeras av Rusts välkomnande och inkluderande samhälle.