Advertentie
Microsoft onderzoekt hoe AI en geautomatiseerde codeanalyse kunnen helpen om grote hoeveelheden legacycode sneller te moderniseren. Dat kan op termijn relevant worden voor Windows, waarvan delen voortbouwen op technologie en code die tientallen jaren oud zijn. Het bedrijf experimenteert onder meer met technieken om bestaande C- en C++-code gecontroleerd naar modernere en geheugenveilige programmeertalen te migreren. Van een concreet plan om Windows volledig met AI naar Rust te herschrijven is echter geen sprake.
Het onderzoek wordt onder meer uitgevoerd door een team onder leiding van Microsoft Distinguished Engineer Galen Hunt. Zijn team bouwt infrastructuur waarmee grote codebases automatisch kunnen worden geanalyseerd en aangepast. Hunt beschreef daarbij eerder de ambitie om één ontwikkelaar uiteindelijk in staat te stellen in een maand tijd wijzigingen aan een miljoen regels code door te voeren.
Dat leidde tot berichten dat Microsoft C en C++ tegen 2030 zou willen uitfaseren en grote hoeveelheden Windows-code met AI naar Rust zou willen vertalen. Hunt nuanceerde dat vervolgens. Het gaat volgens hem om onderzoek naar grootschalige en geautomatiseerde migratie tussen programmeertalen, niet om een aangekondigd Microsoft-plan om Windows volledig naar Rust te herschrijven.
Rust is daarbij een mogelijke bestemming, maar niet noodzakelijk de enige.
Windows draagt decennia aan oude technologie mee
Voor Microsoft kan dergelijke technologie vooral interessant zijn vanwege de omvang en ouderdom van Windows. Het besturingssysteem wordt al tientallen jaren ontwikkeld en moet tegelijkertijd compatibel blijven met een enorme hoeveelheid bestaande software, hardware en drivers.
Die backwards compatibility is een belangrijk onderdeel van Windows, maar maakt modernisering ingewikkeld. Oude componenten kunnen niet zomaar worden verwijderd of vervangen wanneer applicaties of bedrijfsomgevingen ervan afhankelijk zijn. Dat is ook zichtbaar in Windows 11. Het besturingssysteem bevat nog steeds onderdelen en interfaces die meerdere Windows-generaties oud zijn, terwijl Microsoft tegelijkertijd nieuwere technologie introduceert.
Ook op grafisch gebied moderniseert Microsoft Windows stapsgewijs. Nieuwere onderdelen gebruiken bijvoorbeeld WinUI, terwijl oudere interfaces en frameworks nog altijd aanwezig zijn vanwege compatibiliteit met bestaande software.
AI moet vooral het schaalprobleem oplossen
Het interessante aan Microsofts onderzoek is daardoor niet zozeer dat AI oude C++-code naar Rust kan vertalen. De grotere uitdaging is om dergelijke wijzigingen op enorme schaal betrouwbaar uit te voeren.
Een omvangrijke codebase handmatig herschrijven kost veel ontwikkeltijd en brengt risico's met zich mee. Software die al tientallen jaren wordt gebruikt, bevat bovendien vaak gedrag en afhankelijkheden die niet volledig zijn gedocumenteerd. Een nieuwe implementatie kan daardoor technisch correct lijken, maar toch bestaande applicaties of hardware breken.
Microsoft onderzoekt daarom hoe traditionele codeanalyse kan worden gecombineerd met AI-agents. Die kunnen grote hoeveelheden broncode analyseren, verbanden herkennen en ontwikkelaars ondersteunen bij migraties.
De ontwikkelaar verdwijnt daarbij niet uit het proces. Microsoft benadrukt in zijn documentatie over AI-assisted Windows development dat ontwikkelaars verantwoordelijk blijven voor de code die uiteindelijk wordt uitgebracht. Gegenereerde code moet nog steeds worden gecontroleerd, getest en op beveiligingsproblemen worden beoordeeld.
Het doel is dus eerder om de hoeveelheid code die één engineer kan begrijpen en aanpassen sterk te vergroten dan om softwareontwikkeling volledig te automatiseren.
Rust pakt een ander oud probleem aan
Rust is voor dergelijke moderniseringsprojecten interessant omdat de programmeertaal memory safety biedt zonder afhankelijk te zijn van een garbage collector. Dat maakt de taal geschikt voor systeemsoftware, waarvoor traditioneel veel C en C++ wordt gebruikt.
Bij die oudere talen kunnen fouten in het geheugenbeheer kwetsbaarheden veroorzaken, zoals buffer overflows en use-after-freeproblemen. Rust voorkomt een deel van die fouten al tijdens het compileren.
Microsoft gebruikt Rust inmiddels voor bepaalde onderdelen en ondersteunt de taal expliciet voor Windows-development. Dat betekent niet dat C en C++ op korte termijn uit Windows verdwijnen.
Voor Microsoft ligt een geleidelijke aanpak meer voor de hand. Afzonderlijke componenten kunnen worden vervangen of herschreven terwijl bestaande interfaces en compatibiliteitslagen behouden blijven. Juist bij zo'n proces kan geautomatiseerde codeanalyse interessant zijn: niet om Windows in één keer opnieuw te bouwen, maar om modernisering onderdeel voor onderdeel sneller uitvoerbaar te maken.
AI als gereedschap in plaats van Windows-functie
Het onderzoek laat tegelijkertijd een andere kant van Microsofts AI-strategie zien. De meeste aandacht gaat momenteel naar zichtbare toepassingen zoals Copilot, maar het bedrijf probeert AI ook steeds nadrukkelijker in het softwareontwikkelingsproces zelf te integreren.
Microsoft biedt inmiddels specifieke AI-hulpmiddelen voor Windows-ontwikkelaars. AI-agents kunnen bijvoorbeeld helpen bij het opzetten van WinUI-projecten en bij migraties van bestaande WPF- en UWP-applicaties naar modernere frameworks.
Voor een platform als Windows kan die toepassing uiteindelijk minstens zo relevant zijn als AI-functionaliteit die rechtstreeks aan eindgebruikers wordt aangeboden. Microsoft heeft immers niet alleen te maken met het ontwikkelen van nieuwe functies, maar ook met tientallen jaren aan technische bagage die niet zonder meer kan worden verwijderd.
De onderliggende richting is wel interessant. AI wordt binnen Microsoft niet alleen ontwikkeld als functie die aan bestaande software wordt toegevoegd, maar ook als ondersteunende tool om die software zelf te bouwen en te moderniseren.Het geeft Microsoft de mogelijkheid om verouderde technologie te vervangen zonder de compatibiliteit op te offeren.