Rust eller ikke?

Rust er et populært programmeringsspråk i stor vekst, men når bør man egentlig vurdere å bruke Rust og når bør man ikke?

Når bør du ikke bruke Rust?

Ironisk nok har bruken av Rust økt mest for utvikling av backend-tjenester og API-er. Det er ikke det at Rust ikke er egnet til dette – det er faktisk veldig godt egnet til å lage API-er, men kan fort være unødvendig i flere tilfeller.

De viktigste tilfellene man ikke bør bruke Rust:

  • Rask iterativ prototyping: Når man ønsker å teste ut en idé eller er i en fase med raske iterasjoner kan fort Rust sine sikkerhetsgarantier komme i veien. Det er ikke alltid man trenger optimalisert kode eller at koden er stabil og korrekt hele tiden. I noen tilfeller kan det til og med være ok å kjøre med bugs i produksjon.
  • Rene CRUD API: I mange tilfeller kan Rust være unødvendig komplisert, spesielt når løsningen ikke er ytelseskritisk. Ofte er det andre faktorer som begrenser ytelsen, som for eksempel nettverksforbindelser eller brukerinput.
  • Skripting: Rust krever ofte litt ekstra overhead å skrive, dermed er skript som bare skal kjøres periodisk og som ikke er ytelsessensitive ofte bedre egnet i andre språk.
  • Utviklingshastighet: Rust krever at man lærer seg en del nye konsepter, borrow checking, lifetimes og ownership, og flere ting fra funksjonelle språk som ikke alltid er like «vanlig». Avhengig av hvilken software-stack man er vant med, kan det være en betydelig og kanskje unødvendig investering av tid å bruke Rust.

Når bør du bruke Rust?

Rust tilbyr en unik kombinasjon av egenskaper og verktøy som i sum utgjør et attraktivt kompromiss mellom lav- og høynivå programmering.

Når bør man vurdere å bruke Rust:

  • Minnesikkerhet: Typesystemet til Rust er så kraftig at kompilatoren kan garantere for at man unngår en hel liste med minnerelaterte bugs. NULL-pekere eksisterer ikke. Variabler må initialiseres. Minnelekkasjer er meget vanskelige å få til. Man kan ikke bruke variabler som er frigjort og det oppstår ingen «Race condition» mellom tråder.
  • Ytelse er viktig: Rust tilbyr ytelse på nivå med C og C++, noe som gjør det ideelt for systemprogrammering, spillutvikling og andre ytelseskritiske applikasjoner. Hvis du har behov for maksimal ytelse og kontroll over ressurser, er Rust et godt valg.
  • Stabilitet er viktig: Rust sin strenge kompilatorkontroller og fokus på sikkerhet gjør det til et godt valg for prosjekter hvor stabilitet og pålitelighet er kritisk. Dette inkluderer finansiell programvare, medisinsk utstyr og alle andre applikasjoner hvor feil kan ha alvorlige konsekvenser.
  • Man liker å ha det morsomt når man programmerer: For mange utviklere er Rust et morsomt og givende språk å bruke. Det kombinerer det beste fra lavnivå programmering med moderne, høynivå konsepter og kan være en glede å jobbe med for de som liker å utfordre seg selv, og lære nye ting.

Konklusjon

Rust er et kraftig verktøy som kan gi store fordeler når det brukes riktig. Det er ikke alltid det beste valget for alle situasjoner, spesielt ikke for raske prototyper, enkle CRUD API-er eller skript med lave ytelseskrav. Derimot når minnesikkerhet, ytelse, stabilitet eller rett og slett glede ved programmering er viktige faktorer kan Rust være det beste valget for deg.

I sum bør valg av programmeringsspråk alltid avhenge av prosjektets spesifikke krav og teamets kompetanse. Rust er et fantastisk tillegg til verktøykassen, men som med alle verktøy må man vite når og hvordan man best bruker det.