Oorspronkelijk geschreven voor het onderzoeksproject programming-languages-ai-era.
Twee CTO’s lezen dezelfde matrix
Twee CTO’s lezen dezelfde matrix en komen tot verschillende conclusies. Wie alleen de rangorde van de huidige toestand leest, kiest anders dan wie Reach leest.
De matrix zet TypeScript en Go gelijk aan de top op 4.01, met .NET daarachter op 3.99. De CTO die alleen het gewogen totaal leest, kiest TypeScript of Go en behandelt .NET als net-niet. De CTO die Reach leest, kiest anders: .NET staat op 4.5 op de Reachability-cel, alleen aan het cohortplafond, en TypeScript en Kotlin volgen op 4.0. Voor een platforminzet van vijf jaar is de trajectcel de dragende cel. Ik leg beide vast, apart, en weiger ze tot één getal samen te vouwen, omdat ze verschillende vragen beantwoorden: Reach beantwoordt “waar gaat deze taal heen binnen de planningshorizon”, en het gewogen totaal beantwoordt “waar staat ze vandaag”.
De beslisimplicatie is direct. Een momentopname is een momentopname. Een toekomstinzet heeft een dimensie voor het toekomstige traject nodig, en de Reachability-as is de vorm die dat aanneemt.
Wat Reach scoort
Reach is een score van 1.0 tot 5.0 per taal, berekend langs een rubriek met vijf inputs. De inputs zijn expliciet en de rubriek staat op schrift.
- Omvang van het gat. Hoeveel cellen in de rij onder 5.0 zitten, en hoe groot het totale gat is. Een rij met louter 4.0’s zit dichter bij de top dan een rij met een mix van 5.0’s en 1.5’s.
- Signalen in beweging. Concreet bewijs dat sluitingspaden gefinancierd zijn en worden uitgeleverd. De releasecadans van Microsoft.Extensions.AI in de .NET-rij. De voortgang van de JEP’s van Project Loom en Project Panama in de Java-rij. Onderzoek naar set-theoretische types in de Elixir-rij.
- Investering van de steward. Wat de steward van de taal financiert, in welke cadans, met welk budget. .NET 9 LTS plus jaarlijkse grote releases plus een publieke roadmap signaleert Microsoft-investering op schaal. Een PSF-werkgroepstructuur zonder AI signaleert het omgekeerde voor Python.
- Structureel versus ecosysteem. Cellen die sluiten via veranderingen in het taalontwerp zijn trager dan cellen die sluiten via investering door de community of commerciële derden. Het compile-time-gat van Rust is structureel aan het borrow-check-model. Het soundness-gat van TypeScript is een bewust non-doel. Het memory-safety-gat van C++ is structureel aan de taal. Elk wordt beoordeeld op sluitbaarheid.
- Opstapelende druk. Of het sluitingspad met de trend meebeweegt of ertegenin. Memory safety stapelt zich op tegen C++. Investering in het AI-systems-ecosysteem stapelt zich op vóór TypeScript en Python. De Apple-platformbinding stapelt zich op tegen de cross-platform Reach van Swift.
De vijf inputs komen samen in één score van 1.0 tot 5.0 per rij. De uitkomst oogt als een getal. De rubriek eronder is per cel, met benoemde signalen in beweging en benoemde structurele blokkades. Dit is de dimensie die vage claims over het toekomstige traject afstraft. “Rust is de toekomst” zonder sluitingspad per cel scoort laag. “Microsoft levert Microsoft.Extensions.AI per release en het AIN-gat sluit 0.5 per grote versie” scoort hoog.
Heraclitus zei dat je niet twee keer in dezelfde rivier kunt stappen. Reachability scoort de rivier, niet de oever: waar een taal heen gaat, op de snelheid waarmee ze werkelijk beweegt.
Het cluster met hoge Reach
Drie talen verankeren het hoge uiteinde van de Reach-as: .NET (4.5, alleen aan het cohortplafond), TypeScript (4.0, samen met Kotlin tweede) en Kotlin (4.0). Elk is op een andere manier in beweging.
.NET staat op 4.5 omdat Microsoft in vrijwel elke cel onder de 5 in de .NET-rij investeert. Microsoft.Extensions.AI verschijnt per release. Semantic Kernel verschijnt per release. ONNX Runtime .NET verschijnt per release. De MCP C# SDK wordt door Microsoft samen met Anthropic onderhouden. JsonSchemaExporter kwam in de .NET 9-distributie. De C# language design committee beweegt op pattern matching, primary constructors, collection expressions en het voorstel voor discriminated unions. Het totale gat is klein (de meeste cellen op 4.0, gat van 1.0 of minder per cel), de signalen in beweging worden allemaal door dezelfde steward gefinancierd, en het traject gaat ondubbelzinnig omhoog.
TypeScript staat op 4.0 omdat Microsoft de taal in een voorspelbare cadans beheert (satisfies, const type parameters, verfijningen van de Language Service per release) en Vercel plus Anthropic plus OpenAI met de snelheid van commerciële leveranciers in het AI-ecosysteem investeren. Het traject gaat omhoog op de as van de language service, en is begrensd op soundness: het typesysteem van TypeScript is opzettelijk niet sound, en dat is een bewuste ontwerpkeuze die in geen enkele geplande release verandert. AIE=5.0 en SOE=5.0 zitten al aan het plafond, dus de inzet op voortgezette investering door Microsoft plus commerciële leveranciers is gunstig. AIN=1.5 is de zwakste cel en het sluitingspad daar ontbreekt structureel.
Kotlin staat op 4.0 omdat JetBrains Kotlin beheert als commercieel product met een blijvende KEEP-cadans, Kotlin Multiplatform stabiel is over iOS / JS / Native-targets, en de taalontwerplaag al op topniveau zit (MC=4.5 met sealed types en null safety). Het traject gaat omhoog op taalontwerp, gemengd op de AI- en structured-output-ecosystemen, waar het meeste JVM-AI-werk Java’s LangChain4j met Kotlin-wrappers gebruikt in plaats van Kotlin-first AI-tooling.
Dit klopt niet als een door een steward geleverde stapverandering het gat dicht op een taal buiten het cluster: Apple dat MLX cross-platform opent, Google dat een AI-Go-SDK-initiatief sponsort, de PSF die terugkomt op first-party AI-modules. Geen van die signalen is in 2026 aanwezig.
Het cluster met lage Reach
C++ staat op 2.0, alleen op de cohortvloer op Reachability, met de eerstvolgende (Elixir op 2.5) een half punt hoger. De as van veiligheidsdruk stapelt zich op tegen de taal in plaats van ervoor. De signalen van NSA, ONCD, MSRC en Chromium bewegen allemaal in de richting die de Reach van C++ verlaagt, niet verhoogt. De meeste cellen onder de 5 (HC, AO, SON, AIN) zijn structureel aan het taalontwerp en sluiten niet binnen de planningshorizon. P2996-reflectie zou SON optillen als het landt, maar SON van 1.0 naar 3.0 laat C++ nog steeds buiten de top op het rijtotaal. De driejaarlijkse ISO-revisies lopen achter op de cadans van concurrenten onder leveranciers-stewardship.
Elixir staat op 2.5 omdat set-theoretische types in onderzoek zijn (in beweging, maar met onzekere tijdlijn), de voetafdruk van het ecosysteem klein is ten opzichte van de sluitingspaden voor AIE / SOE, en de stewardship-capaciteit van Dashbit betekenisvol kleiner is dan die van Microsoft of Apple. Bumblebee en Nx zijn geloofwaardige AIN-signalen, maar begrensd door capaciteit.
Swift staat op 3.0 omdat Apple investeert in het AI-oppervlak op Apple-platforms (Core ML, MLX, Foundation Models), maar niet in cross-platform ontwikkeling van het AI-ecosysteem. Het traject gaat omhoog op AI op Apple-platforms, en is vlak op cross-platform AI / structured output. AIN=4.0 al op Apple-platforms (alleen aan het cohortplafond, alleen gedeeld met .NET). AIE=2.0 zit vast omdat niemand buiten Apple met betekenisvolle snelheid investeert in cross-platform Swift AI-tooling.
Dit klopt niet als een door een steward geleverde stapverandering het gat dicht op een van deze rijen. Apple opent MLX cross-platform met een first-party Anthropic Swift SDK. Het Elixir-werk aan set-theoretische types levert binnen de planningshorizon een stabiele spec. Een nieuwe compiler levert memory-safety-als-standaard voor C++ die adoptie wint. Elk daarvan is een falsifieerbare vorm van de Reach-inschatting, en drie ervan komen terug in de acht voorspellingen die stuk 8 publiceert.
Een Reach-inschatting per taal lezen
Loop het .NET-geval in detail door om de rubriek concreet te maken. De .NET-rij heeft cellen onder de 5 op HC=4 (gat 1.0), MC=4 (gat 1.0), AO=4 (gat 1.0), RE=4 (gat 1.0), SV=4 (gat 1.0), AIN=4.0 (gat 1.0), AIE=3.5 (gat 1.5), SON=4.0 (gat 1.0), SOE=3.5 (gat 1.5).
Totale omvang van het gat: 9.5 punten over 9 cellen, gemiddeld 1.06 per cel. Geconcentreerd, klein. Signalen in beweging: Microsoft.Extensions.AI, Semantic Kernel, ONNX Runtime .NET, MCP C# SDK, JsonSchemaExporter, de C#-taalontwerppipeline. Zes benoemde signalen, allemaal van één steward, allemaal met publieke releasecadans. Investering van de steward: jaarlijkse cadans van grote releases, .NET 9 LTS in productie, .NET 10 op de roadmap. Structureel versus ecosysteem: de meeste cellen sluiten via de door Microsoft beheerde cadans van taalversies en het leveren van first-party SDK’s; de zwakste cel (SOE=3.5) is de community-helft-cel die investering van buiten Microsoft vereist. Opstapelende druk: netto positief, de AI Foundry-toezegging van Microsoft stapelt AIN, AIE en SON samen op.
Score: 4.5. Wat de inschatting zou falsifiëren: Microsoft dat een grote release mist, onderhoud van Microsoft.Extensions.AI dat buiten Microsoft komt te liggen, het C#-voorstel voor discriminated unions dat vastloopt, de AI-investering van Microsoft die verschuift van .NET als host. Niets daarvan is in 2026 gesignaleerd.
De strategische lezing
Voor een platforminzet van vijf jaar weegt Reach zwaarder dan de rangorde van dit jaar. De twee stukken informatie beantwoorden verschillende vragen, en ik leg beide vast in plaats van ze te mengen.
.NET (#3 op gewogen totaal met 3.99, alleen aan het cohortplafond op Reach=4.5) is een andere inzet dan Rust (gedeeld #5/6 met Python op 3.71, Reach=3.5 in de laag van vier talen met Go, Java en Python). Beide zijn geloofwaardig. Beide zijn toekomstgericht. De matrix zegt dat het niet dezelfde toekomstinzet is: de cellen waarop Rust zijn verificatievoordeel haalt, zitten al op topniveau (MC=5 alleen, SV=5 alleen), met de AI-systems-native-cel structureel afwezig (AIN=1.5, gedeeld op de cohortvloer; Reach-bijdrage: begrensd), terwijl de cellen van .NET onder de 5 geconcentreerd, klein en in beweging zijn onder één gefinancierde steward (Reach-bijdrage: hoog). De matrix maakt het verschil leesbaar.
De pragmatische aanbeveling voor senior teams die in 2026 een taalselectie-review draaien: stop niet bij de kolom met het gewogen totaal. Lees de Reach-kolom. Vraag of het traject past bij je planningshorizon. Loop de gatanalyse per taal door en vraag welke sluitingspaden je gelooft en welke niet. Schrijf de Reach-inschatting en de falsificatievoorwaarde op. De momentopname van de frameworkversie is v0.6, en het v1.1-beoordelingsmoment in mei 2027 is wanneer de Reach-inschattingen de eerste ronde geauditeerde correcties krijgen.
Dit klopt niet als een taal zonder leverancier als steward een structurele stapverandering levert die de Reach-scoring niet had voorzien: een Python-typesysteem dat at runtime wordt afgedwongen, een first-party AI-runtime voor Rust, een first-party AI-oppervlak voor Go van Google. De kans is niet nul. Ik leg toch een getal vast, omdat een trajectclaim die weigert zich vast te leggen geen claim is.
Tot slot
De trajectcel is de dragende cel voor een platforminzet van vijf jaar, en ik leg haar apart vast omdat een momentopname geen toekomstinzet is. Lees de Reach-kolom voordat je het gewogen totaal leest.
Abonneer je op rutgerhemrika.substack.com voor stuk 8: acht falsifieerbare voorspellingen met datumstempel, gekoppeld aan specifieke frameworkscores, beoordeeld op 2027-05-02. Wil je de onderliggende data, claims en bronnen, dan staat het framework open op github.com/hemrika/programming-languages-ai-era.
Momentopnames en toekomstinzetten zijn verschillende vragen. Lees beide kolommen.
De polariteit omkeren is geen strategie. Reachability stelt de stillere vraag: welke talen kunnen hiervandaan echt daar komen, en welke zeggen alleen dat ze dat zullen doen.
Verwijzingen
De knipogen en citaten in dit stuk, met hun herkomst:
- Doctor Who, the Third Doctor era (1970s): “reverse the polarity”.
- Heraclitus, fragment on the river (c. 500 BC).
- #AI-tijdperk
- #Programmeertalen
- #Engineeringstrategie

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