Een mijlpaal voor Rust: versie 7.0 van de Linux-kernel is uitgebracht met officiële ondersteuning voor de programmeertaal. Tegelijkertijd zou de populariteit van Rust juist wat afvlakken, zo concludeert de CEO van de TIOBE Index.
Rust is ontworpen om geschikt te zijn voor kernel development. Het is memory-safe, in tegenstelling tot eerbiedwaardigen als C, maar kent een kleinere gemeenschap en is pas een ruim decennium in stabiele vorm beschikbaar.
Nadat eerdere versies van de Linux-kernel slechts experimentele ondersteuning voor Rust boden, is deze nu officieel. Dit is een grote stap, aangezien voorheen enkel C en Assembly werden ondersteund.
Lange weg
Een programmeertaal bereikt niet zomaar de Linux-kernel. Maintainers van deze kritieke basis voor het open-source OS hebben zich dan ook geruime tijd uitgesproken tegen de opname van de taal. Bugfixes zouden lastiger worden doordat veel minder deelnemers aan het project de taal kennen, terwijl men juist decennia heeft gehad om C te vatten.
Daarbovenop beperkt de adoptie van Rust de flexibiliteit van kernel development. Denk aan interfaces die stabiel moeten blijven om support tussen de programmeertalen te onderhouden. De integratie met Rust vereist vanaf nu C-bindings (gegenereerd via tools als bindgen) die continu gesynchroniseerd moeten worden met de veranderende C-interfaces.
Desondanks zijn jonge programmeurs, met name de groep die zich richt op low-level code, nu eenmaal Rust-“native”. Om de ondersteuning van de Linux-kernel op lange termijn te bewaken, is de opname van Rust een belangrijke stap.
Stagnatie?
Van een low-level programmeertaal mag je enige complexiteit verwachten. En van een complexe taal kun je verwachten dat deze het aflegt in adoptie tegenover toegankelijke alternatieven. Zo is Python ongenaakbaar, met name sinds het de feitelijke standaard voor AI-ontwikkeling is gebleken. Rust heeft alsnog een niet te ontkennen opmars gekend, waarbij Microsoft, Google, Amazon, Meta, Cloudflare, Discord, Dropbox, Mozilla, GitHub en vele andere techbedrijven de taal hebben omarmd.
Toch stelt Paul Jansen, CEO van de TIOBE Index, dat de groei van Rust afvlakt. De TIOBE Index is een rangschikking op basis van het aantal zoekopdrachten online, met tracking van onder meer Google, Bing, Wikipedia, YouTube en meer. Het is geen absolute waarheid dat de hoogst geplaatste talen ook werkelijk de populairste zijn; toch is enige correlatie voor de hand liggend.
Rust bereikte plek 13 begin dit jaar, nadat het zes jaar geleden voor het eerst de top 20 had bereikt. Nu is de taal echter teruggezakt naar plaats 16. Jansen wijst naar de moeite die beginners ervaren met de taal. Voor experts die specialiseren in domeinen waar prestaties van kritiek belang zijn, aldus Jansen, is de leercurve van Rust de moeite waard. Mainstream adoptie lijkt lastiger.
Omgekeerde wereld
Hoewel Jansen het bij het rechte eind heeft, moeten we de TIOBE Index voor Rust met een korrel zout nemen. Adoptie is voor programmeertalen van essentieel belang. Zonder gebruikers (en dus maintainers) sterft een taal uit. Maar er is een duidelijk verschil tussen toegankelijke talen als Python en domeinspecifieke opties als Rust. Meerdere zaken kunnen tegelijkertijd waar zijn: toegankelijke talen zijn sneller populair dan complexere, oude talen kennen een voordeel ten opzichte van nieuwere, en groei wordt niet voor elke taal gemeten met dezelfde criteria.
Zo is Rust in de meest recente Stack Overflow-enquête de meest gewaardeerde programmeertaal (72 procent). Ook is Cargo, de package manager van Rust, de meest gewaardeerde tool in cloud development en -infrastructuur. Het laat zien dat Rust, hoewel lang niet altijd de gekozen taal voor programmeurs, bij de inzet ervan geliefd is.
Voor Python is de alomtegenwoordigheid een groot voordeel. Code in de taal is als geen ander beschikbaar voor AI-training, de leesbaarheid ervan is groot en de inzetbaarheid is uiterst divers dankzij een reusachtige hoeveelheid libraries, modules en projecten. De gehele TIOBE-top 15 bestaat uit talen die ofwel zeer oud zijn, ofwel een domeinspecifieke toepassing kennen, of beide. Rust is wat dat betreft geen uitzondering.
Daarbovenop blijft Rust de jongste taal in de index. C geldt als een van de oudste. Ze zijn sterk verschillend van Rust en laatstgenoemde is niet ontworpen voor een eenvoudige overstap. Die mogen we ook niet verwachten; er zijn culturele verschillen tussen de Rust-gemeenschap (jong, uitdagend en veelal gezien als schurend) en die van C (traditioneel, gewend aan conventies en stabiel). De technische krachten van Rust zijn inmiddels bekend, maar die menselijke verschillen blijken weerbarstig. De Linux-kernel is en blijft na de experimentatiefase een strijdtoneel voor beide kanten.