Volgens Mark Russinovich, cto van Microsoft Azure, is de tijd gekomen om programmeertalen C en C++ niet meer te gebruiken voor nieuwe projecten. ‘De industrie zou deze talen moeten behandelen als afgeschreven.' Programmeertaal Rust zou als alternatief moeten dienen.
Russinovich stelt dit vanwege bekommernissen over beveiliging en betrouwbaarheid. Zowel C als C++ zijn vandaag nog populaire programmeertalen, die overigens ook nog danig worden onderwezen op universiteiten en hogescholen. In de laatste editie van de Computable Index van populairste programmeertalen staat C++ bijvoorbeeld op plaats vier en C op de zesde plek. In die lijst staat Rust op plaats zeventien, al is deze laatste wel aan een opmars bezig.
Nieuw is de bezorgdheid rond C en C++ niet, alleen voert de cto van Microsoft Azure, en dus indirect ook Microsoft zelf, nu wel de druk op. Maar drie jaar geleden al benadrukte Microsoft dit punt al. Het stelde toen dat zeventig procent van zijn patches in de afgelopen twaalf jaar fixes waren voor bugs in geheugenveiligheid, grotendeels omdat Windows voornamelijk in C en C++ is geschreven.
Microsoft staat hier niet alleen. Het Chrome-team van Google kwam in 2020 met zijn eigen bevindingen en onthulde dat zeventig procent van alle ernstige beveiligingsbugs in de Chrome-codebase bugs in geheugenbeheer en veiligheid waren, én voornamelijk geschreven in C++.
Rust, dat in 2015 versie 1.0 bereikte en ontstond vanuit het Mozilla-project, is intussen aan een populariteitsslag bezig. Het wordt nu gebruikt binnen het Android Open Source Project (AOSP), bij Meta (Facebook), bij Amazon Web Services en bij Microsoft voor onderdelen van Windows en Azure. De taal wordt ook ingeschakeld voor ontwikkelingen in de Linux-kernel en bij veel andere projecten
Geheugen
Ontwikkelaars en software-ingenieurs waarderen de zogenaamde ‘geheugenveiligheidsgaranties’ bij Rust. Die verminderen namelijk de noodzaak om het geheugen van een programma handmatig te beheren en verkleinen daarmee ook het risico van geheugengerelateerde beveiligingsfouten. Zulke fouten kunnen grote softwareprojecten namelijk belasten, en duiken dus vaak op als die zijn geschreven in talen als C of C++.
De enige kwalificatie van de Azure-cto over het gebruik van Rust is dat het te verkiezen is boven C en C+ voor nieuwe projecten die een zogenaamde niet-garbage-collected taal vereisen. Engines hierbinnen handelen namelijk geheugenbeheer af. Een taal als Go is bijvoorbeeld zo’n taal. ‘Het is tijd om geen nieuwe projecten meer te starten in C en C++ en Rust te gebruiken voor die scenario’s waar een niet-garbage-collected taal nodig is’, schrijft Russinovich. ‘Omwille van de veiligheid en betrouwbaarheid zou de industrie die talen als afgeschreven moeten verklaren.’