Tiden vil vise om utviklere vil omfavne programmeringsspråket Rust, eller om det først og fremst har akademisk interesse, i likhet med mange andre programmeringsspråk. (Bilde: Rust-prosjektet og digi.no)

Rust

Mozilla-støttet språk er klar for bruk

Rust lover høy ytelse med redusert fare for minnefeil.

Mange av sårbarhetene som finnes i programvare skyldes manglende kontroll over bruken av minne.

Minnefeil

Forsøk på å lese eller skrive større datamengder enn det en minneblokk kan inneholde, eller forsøk på å lese eller skrive data fra eller til en minneblokk som har blitt frigjort, er typiske eksempler på feil som kan oppstå når utviklere skriver programvare med språk som C eller C++.

Til gjengjeld tilbys utvikleren mer lavnivå kontroll og ytelse enn det som tilbys av språk og teknologier som ikke like lett kan føre til programvare med slike sårbarheter. Java og C# er eksempler på det sistnevnte.

Les også: Nær halvparten av utviklerne er selvlærte 

Rust

I forrige uke kom den første stabile utgaven av Rust, et fellesskapsutviklet programmeringsspråk basert på arbeidet gjort av Mozillas Graydon Hoare. Prosjektet har blitt sponset av Mozilla siden 2009.

Rust har sin egen tilnærming til hvordan man unngår minnefeilene som fort kan oppstå med C og C++, selv om også Rust kompileres til systemspesifikk kode og potensielt høy fart.

Blant annet utføres sjekking om av variabelverdiene er innenfor visse grenser før de brukes. Istedenfor ressurskrevende, automatisk «garbage collection», brukes en tilnærming som involverer eierskap av minne og levetid for objekter.

Rust i nettleseren: Mozilla lager ny nettlesermotor

Annen tilnærming

Ifølge Ars Technica kan objekter allokert i minnet bare ha én eier. Men eierskapet kan lånes ut for at objekter skal kunne overleveres til funksjoner. Rust skal sikre at eierne av objekter har en levetid som er minst like lang som selve objektene.

Dette, kombinert med at Rust ikke trenger noen egen runtime, gjør det blant annet enkelt å kommunisere med andre språk fra Rust gjennom språkets Foreign Function Interface (FFI), som tilbyr en kostnadsfri abstraksjon hvor funksjonskall mellom Rust og C skal ha tilsvarende ytelse som rene C-funksjonskall, samtidig som at de kan gjøres gjennom Rusts trygge grensesnitt.

Dart: – Det skal være dejligt å kode 

Bruksområder

Rust er beregnet for både systemprogramvare og applikasjoner, ikke minst store klient/server-programvare. Rust-syntaksen minner mye om C og C++, men semantikken skal være svært forskjellig.

Språket støtter flere programmeringsparadigmer – inkludert prosedyre- og objektorientering.

Rust 1.0 innebærer at språket er stabilt, noe som innebærer at det ikke planlegges store endringer i språket som kan føre til at eksisterende kode må endres. Det betyr likevel ikke at Rust er ferdig utviklet. En oversikt over planene framover finnes her.

Rust er implementert for både Linux, OS X og Windows. Detaljer om installasjonen finnes på denne siden.

Les også: Avduket Visual Studio for Linux og Mac 

Til toppen