Skip to content
Rutger Hemrika
Menu
← Blog

Programmeertalen in het AI-tijdperk · 4/8

De .NET-sleeper: de sterkste toekomstinzet van het cohort terwijl niemand keek

Rutger Hemrika8 min leestijd

Oorspronkelijk geschreven voor het onderzoeksproject programming-languages-ai-era.

De inzet die zich op de derde plaats verbergt

Human cognition4.0Machine cognition4.0AI-agent operability4.0Runtime and ecosystem4.0Strategic viability4.0AI-systems native4.0AI-systems ecosystem3.5Structured-output native4.0Structured-output ecosystem3.5Ecosystem dependency risk4.5Reachability to top tier4.5.NET (C#): gewogen totaal 3.99
Scores van .NET per dimensie, raamwerk v0.6. Halve punten op een vijfpuntsschaal.

Had je me een jaar geleden gevraagd welke taal de sterkste toekomstinzet voor het AI-tijdperk droeg, dan had .NET niet op de lijst gestaan. Vandaag zegt mijn framework van wel. .NET staat derde op het gewogen totaal van de huidige toestand met 3.99, 0.02 achter een gelijke stand van TypeScript / Go op 4.01, en alleen aan het cohortplafond op Ecosystem Dependency Risk (EDR=4.5, door geen andere taal gehaald) en alleen aan het cohortplafond op Reachability to Top Tier (Reach=4.5, eveneens door geen andere taal gehaald). Die combinatie bestaat nergens anders in de matrix. TypeScript leidt de huidige toestand maar blijft achter op .NET in stewardship-weerbaarheid. .NET leidt het traject maar blijft in de momentopname twee honderdsten gewogen punt achter op TypeScript. Voor een CTO die een platforminzet van vijf jaar doet, weegt het traject zwaarder dan de momentopname, en .NET is de meest ondergepositioneerde taal van het cohort ten opzichte van waar het heen gaat.

De beslisimplicatie is direct. Als je risicomodel stewardship door een leverancier hoger waardeert dan ecosysteembreedte, en je planningshorizon vijf jaar is in plaats van vijf maanden, dan is .NET de inzet waarvoor ik de cheque zou uitschrijven.

Bastiat schreef over wat men ziet en wat men niet ziet. Ranglijsten belonen wat dit kwartaal zichtbaar is. Stewardship en reachability zijn het onzichtbare, en daar zit het geld voor vijf jaar.

Het ingebouwde AI-oppervlak

Wat Microsoft in de .NET-distributie en de omliggende first-party-packages heeft geleverd, is geen community-AI-ecosysteem met leverancierslogo’s erop geplakt. Het is een door de steward geleverd oppervlak, gelaagd in de toolchain van de taal.

Microsoft Semantic Kernel is de orkestratielaag, agent-loops, planners, function calling, pluginpatronen, gepubliceerd onder microsoft/semantic-kernel met attributie aan Microsoft-engineering en NuGet-packages op een regelmatige releasetrein. Microsoft.Extensions.AI is de abstractielaag die in de .NET 9-distributie landde en IChatClient en embedding-primitieven biedt die applicatiecode loskoppelen van een specifieke modelaanbieder. De MCP C# SDK wordt door Microsoft samen met Anthropic onderhouden: geen community-port, een artefact onder gezamenlijk stewardship. ONNX Runtime .NET is de inferentielaag voor lokale modeluitvoering. De JsonSchemaExporter-API, toegevoegd in .NET 9, genereert JSON Schema rechtstreeks uit .NET-types en sluit zo de structured-output-rondgang die elders van libraries van derden afhangt. Records en nullable reference types geven de C#-taal een oppervlak voor gestructureerde data en een null-safety-oppervlak waar LLM-codegeneratie op kan mikken zonder een apart idioom te leren.

Vijf genoemde first-party AI-artefacten (Semantic Kernel, Microsoft.Extensions.AI, MCP C# SDK, ONNX Runtime .NET, JsonSchemaExporter), twee structurele primitieven op taalniveau (records, nullable reference types), één runtime (.NET 9 LTS), één canonieke CLI (dotnet), één publieke compilerplatform-API (Roslyn). Het contrast met de Python-rij, waar de AI-systeemprimitieven allemaal één laag buiten de taaldistributie zitten, is het structurele punt. De AI-Systems Native-score van 4.0 is dit oppervlak: aan het cohortplafond, alleen gedeeld met Swift; geen andere taal haalt het, en de eerstvolgende zijn Kotlin en Elixir op 3.0. De Structured-Output Native-score van 4.0 is het oppervlak van JsonSchemaExporter en de source generators van System.Text.Json: ook aan het cohortplafond, ook alleen gedeeld met Swift. Beide worden door de taal geleverd.

Dit klopt niet als Microsoft afstapt van de stewardship-lijn voor .NET. Mogelijk, maar de base rate is laag, en .NET 9 draait in productie met .NET 10 op de gepubliceerde roadmap.

Ecosystem Dependency Risk 4.5: het voordeel op afhankelijkheidsrisico

Stewardship door één leverancier is doorgaans een nadeel. In het geval van .NET is het een voordeel, en de EDR-as legt die omkering vast.

Kijk waar de last geconcentreerd is. De .NET-runtime: gefinancierd door Microsoft. De C#-taal en compiler (Roslyn): Microsoft. De .NET CLI en SDK: Microsoft. Microsoft.Extensions.AI: Microsoft. Semantic Kernel: Microsoft. ONNX Runtime: ontstaan bij Microsoft Research, nu onder de .NET Foundation. De MCP C# SDK: Microsoft samen met Anthropic. JsonSchemaExporter, System.Text.Json, de source-generator-infrastructuur: Microsoft. De Anthropic SDK voor .NET is het enige betekenisvolle gat, momenteel onderhouden door de community.

Het resultaat is een rij waarin de dragende laag één steward diep is, en die steward is een van de grootste software-engineeringorganisaties ter wereld, met een gedocumenteerde investeringscadans van meerdere decennia. EDR=4.5 ligt 0.5 boven de 4.0 van Java (de eerstvolgende), 2.0 boven de 2.5 van Python (alleen op de cohortvloer) en 1.5 boven de 3.0 van TypeScript. Het contrast met Python is de helderste lezing: de AI-applicatiestack van Python rust op Pydantic (community-multi-maintainer, kleine groep, niemand fulltime op het project) plus Instructor (één maintainer, Jason Liu) plus Outlines (klein-commercieel). Als drie mensen bij die projecten vertrekken, heeft het AI-applicatieverhaal van Python een strategisch probleem. De equivalente beweging aan de .NET-kant vereist dat Microsoft van .NET afstapt. De kans is niet nul, maar wel betekenisvol lager.

Dit klopt niet als Microsoft afstapt van .NET als strategisch platform. Het signaal zou zichtbaar zijn: een uitglijdende releasecadans, onderhoud van Microsoft.Extensions.AI dat buiten Microsoft komt te liggen, .NET 10 dat zijn LTS-toezegging mist. Geen van die signalen is in 2026 aanwezig. .NET 9 LTS draait in productie. .NET 10 staat op de gepubliceerde roadmap.

Reachability 4.5: het betoog over het traject

De Reachability-as scoort de plausibiliteit dat cellen onder de 5 binnen een horizon van 3 tot 5 jaar sluiten. .NET staat op 4.5, alleen aan het cohortplafond, omdat Microsoft in vrijwel elke cel onder de 5 in de .NET-rij investeert.

Loop de rij af. HC=4 heeft een gat van 1 punt; Microsoft kan het verschuiven via de cadans van C#-taalversies, en het traject gaat omhoog: pattern matching, primary constructors, collection expressions en het voorstel voor discriminated unions zijn allemaal in beweging. MC=4 heeft een gat van 1 punt; nullable reference types en de Roslyn-analyzers dichten het stapsgewijs. AO=4 heeft een gat van 1 punt; dotnet als geünificeerde CLI plus het publieke SemanticModel-oppervlak van Roslyn plus de LSP-equivalente Razor- en OmniSharp-tooling vormen het sluitingspad. AIN=4.0 heeft een gat van 1 punt; Microsoft.Extensions.AI is een sluitingsbeweging per release. SON=4.0 heeft een gat van 1 punt; JsonSchemaExporter kwam in .NET 9 en source generators blijven uitbreiden. SOE=3.5 heeft een gat van 1.5 punt, de zwakste cel, en hangt af van de community-helft: schemavalidatielibraries van derden met first-party-leidingwerk.

Bij elkaar zijn de cellen van .NET onder de 5 geconcentreerd, klein (meestal gaten van 0.5 tot 1.0) en voorzien van benoemde signalen in beweging vanuit één gefinancierde steward. Dat is de structurele vorm die 4.5 scoort op Reach. TypeScript en Kotlin scoren daarentegen Reach=4.0: sterk, maar elk draagt ten minste één structureel plafond (het opzettelijk onsound typesysteem van TypeScript; het kleinere native AI-ecosysteem van Kotlin). C++ scoort 2.0 op Reachability, alleen op de cohortvloer, omdat de meeste cellen onder de 5 structureel aan het taalontwerp zijn en niet binnen de planningshorizon sluiten. De dimensie meet toekomstgerichte signalen: taalgovernance, aanwezigheid in het AI-trainingscorpus, releasecadans en snelheid van het ecosysteem. De 2.0 van C++ weerspiegelt de regulatoire tegenwind die stuk 5 in detail doorloopt.

Dit klopt niet als het voorstel voor discriminated unions vastloopt in de C# language design committee, of als de AI-investering van Microsoft verschuift van .NET als hosttaal naar, zeg, een TypeScript-first strategie voor agent-frameworks. Geen van beide is gesignaleerd in de design-review-cadans van .NET 10.

Wie .NET zou moeten kiezen

De aanbeveling is specifiek en begrensd.

Voor CTO’s bij Microsoft-georiënteerde organisaties of in gereguleerde sectoren, financiën, zorg, overheid, defensie, is .NET in het cohort de beste match met “leveranciersgebonden AI-applicatiestack”. De combinatie van EDR=4.5 (weerbaarheid van één steward, alleen aan het cohortplafond), de LTS-releasecadans en de expliciete commerciële toezegging van Microsoft aan enterprise-compliance is structureel voor deze contexten. .NET 9 LTS plus Microsoft.Extensions.AI plus Semantic Kernel is een stack die binnen een bestaande Microsoft-compliance-envelop landt zonder aangebouwd stewardship van derden.

Voor CTO’s bij AI-startups of organisaties die worden gedreven door open-source-mindshare verschuift de rekensom. De mindshare van open-source AI-tooling is geconcentreerd in Python en TypeScript. Werven op de AI-applicatielaag is voor .NET wezenlijk lastiger dan voor TypeScript. De community-helft van het .NET-ecosysteem (door de community geleverde agent-frameworks, community-LLM-SDK’s, community-RAG-patronen) blijft in ruwe aantallen achter op JavaScript en Python. De toekomstinzet is reëel. De huidige arbeidsmarkt en de volwassenheid van de ecosysteem-helft zijn tegenwind.

Het sterkste bezwaar dat het benoemen waard is: het gat op de ecosysteem-helft (AIE=3.5, SOE=3.5) is de helft die Microsoft niet alleen kan vullen. Dat dichten vereist blijvende opvolging vanuit de community, die historisch achterbleef bij de JVM- en Node-ecosystemen. Als dat patroon standhoudt, levert het Reach=4.5-traject van .NET op de taal- en native-helften, maar blijft het onder TypeScript en Python op de ecosysteem-helften. Mijn werkaanname is dat het sluitingspad op de native en taalhelften voldoende is om de top te halen; de ecosysteem-helft is de meest plausibele plek waar die inschatting fout kan zijn.

De strategische lezing

.NET is het sterkste signaal van mijn framework dat een rangorde van de huidige toestand niet gelijk is aan een toekomstinzet. Wie de matrix alleen op gewogen totaal leest, zet .NET op #3, achter een gelijke stand van TypeScript / Go die drie verschillende inzetten tot hetzelfde getal samenperst. Wie de matrix leest met Reach als vermenigvuldiger, zet .NET alleen op #1 op de trajectcel, de enige taal die Reach=4.5 haalt, vóór TypeScript en Kotlin (samen op Reach=4.0, de eerstvolgende), ruim vóór de laag Go / Rust / Python / Java op Reach=3.5, en volle 2.5 punten vóór C++ op Reach=2.0 (de cohortvloer).

Voor een platforminzet van vijf jaar is de trajectcel de dragende cel. Senior teams die bepalen waarop hun volgende greenfield AI-platformstack draait, moeten Reach behandelen als de dimensie die een momentopname van een toekomstinzet onderscheidt, en EDR als de dimensie die structurele weerbaarheid van een rangorde in de kop onderscheidt. .NET wint beide. Die combinatie is zeldzaam in het cohort. Het is de ondergepositioneerde inzet die ik zichtbaar maak.

De momentopname van de frameworkversie is v0.6, validator schoon, met een v1.1-beoordelingsmoment gepland op 2027-05-02. Een van de acht voorspellingen waarop ik beoordeeld zal worden, is of Microsoft vóór 2027-11-02 een first-party Anthropic SDK voor .NET levert. Levert Microsoft, dan gaat AIN van 4.0 richting 4.5 en sluit de .NET-rij een van haar kleinste resterende gaten. Levert Microsoft niet, dan blijft het AIN-plafond op 4.0 en wordt de trajectinschatting herzien.

Tot slot

.NET staat vandaag op #3 en alleen op #1 op de trajectcel, met Microsoft dat de runtime, het AI-oppervlak en de tooling eronder financiert. Het is de meest ondergepositioneerde toekomstinzet van het cohort, en het helderste voorbeeld dat de momentopname niet de inzet is.

Abonneer je op rutgerhemrika.substack.com voor stuk 5, het regulatoire betoog over memory safety: vier institutionele pijlers die op dezelfde conclusie uitkomen, en wat dat met de C++-rij doet. Wil je de onderliggende data, claims en bronnen, dan staat het framework open op github.com/hemrika/programming-languages-ai-era.


Het traject weegt zwaarder dan de rangorde van dit jaar. .NET is de zeldzame rij die zowel EDR als Reach wint.

Nobody expects the .NET recommendation. Haar belangrijkste wapen is stewardship. Stewardship en reachability. Haar twee belangrijkste wapens zijn stewardship, reachability en een bijna volledige afwezigheid van hype.

Verwijzingen

De knipogen en citaten in dit stuk, met hun herkomst:

  • Monty Python’s Flying Circus (BBC, 1970), the Spanish Inquisition sketch.
  • Frédéric Bastiat, “That Which Is Seen, and That Which Is Not Seen” (1850).

Rutger Hemrika

AI-strategie en -governance voor sectorsoftware. Schrijft vanuit bouwen, niet vanuit slides; elke claim draagt een bewijsniveau.

Volledige ervaring · Over mij