Teknologidirektør i Microsoft ber utviklere slutte å bruke C/C++ i ny programvare

Mark Russinovich mener Rust er modent nok til å overta.

Teknologidirektør i Microsoft ber utviklere slutte å bruke C/C++ i ny programvare
Mark Russinovich, teknologidirektør for Microsoft Azure, mener Rust bør erstatte C og C++ i helt nye programvareprosjekter. Foto: Microsoft

Microsofts teknologidirektør med ansvar for skytjenestene, Mark Russinovich, tok denne uken til orde for at utviklere bør slutte å starte nye prosjekter basert på programmeringsspråkene C og C++. I stedet bør de av sikkerhets- og pålitelighetsårsaker benytte programmeringsspråket Rust i de tilfellene hvor det er nødvendig med språk som ikke er basert på «garbage collection», som er en form for automatisk minnehåndtering.

Ikke minnesikkert

Noe av den mest brukte programvaren i verden, inkludert mange operativsystemer og nettlesere, er skrevet i nettopp C eller C++. Dette er programmeringsspråk som ikke er «minnesikre». Språkene gir utviklerne store friheter og forutsigbar ytelse, men også betydelig ansvar, inkludert å sørge for minnehåndteringen. En stor andel av sårbarhetene som oppdages i C/C++-basert programvare, skyldes mangler på dette området.

Automatisk minnehåndtering med garbage collection krever ekstra ressurser og kan føre til uforutsigbare avbrudd i kjøringen av programvaren. Dette spiller liten rolle i mange tilfeller, men stor rolle i en del andre. 

Les også

Rust, et programmeringsspråk som opprinnelig ble skapt hos Mozilla, anses som minnesikkert uten å benytte garbage collection. Språket har særlig i den senere tid seilet opp som et godt alternativ til C/C++, selv om det nok fortsatt anses som ungt og kanskje umodent av enkelte.

Blant annet tyder alt på at kode skrevet i Rust for første gang vil inkluderes i den offisielle Linux-kjernen i versjon 6.1. Google har lenge før dette åpnet for å inkludere Rust-kode i Linux-kjernen som benyttes av Android. 

Tiår med fortsatt vedlikehold

I en senere tvitring presiserer Russinovich at det finnes enorme mengder med C/C++-kode som fortsatt kommer til å bli vedlikeholdt og videreutviklet i mange tiår framover. Dette inkluderer også Sysinternals-verktøyene som Russinovich kanskje er aller mest kjent for. 

Les også