Snel en Moeilijke Code

Een van de memes op Twitter is dat "programmeren nu is opgelost". Ik weet niet in hoeverre dat zo is, maar één ding is vrij duidelijk: het proces van jezelf vertrouwd maken met een taal doet er niet langer toe, en sommige van de wrijvingen die voor mensen belangrijk waren, doen er voor agents niet toe.

Als gevolg hiervan maken LLM's de keuze van de programmeertaal veel minder bepalend dan voorheen. Als je niet tevreden bent met de keuze, kun je het blijkbaar herschrijven in een andere taal, en je kunt de AI een taal laten kiezen waar jij als programmeur totaal niet bekend mee bent.

Dit betekent op zijn beurt dat mensen vaker kiezen op basis van de marketing van talen. Als langdurig Rust-programmeur vond ik het fascinerend om te zien dat er nu mensen Rust-code implementeren die dit voorheen misschien niet zouden hebben gedaan. Ik schrijf dit ten minste gedeeltelijk toe aan twee recente verschuivingen in de sfeer: er is veel meer sprake van de wens voor snelle software, en het feit dat LLM's uitzonderlijk goed zijn in het optimaliseren van code zonder het gedrag negatief te beïnvloeden.

Mensen zoals Mitchell Hashimoto, Charlie Marsh, Jarred Sumner, Daniel Lemire en een aantal anderen hadden altijd een zekere obsessie met snelle en performante software, en zij staan toevallig ook allemaal open voor het gebruik van agents die code schrijven. Misschien is dat het resultaat, of wellicht sluiten anderen zich daar nu simpelweg bij aan. Dat komt omdat je met tools zoals autoresearch niet eens noodzakelijkerwijs alle trucjes hoeft te kennen: je hoeft er alleen maar een agent op te zetten — hoewel voorkennis nog steeds enorm helpt!

Als je om je heen kijkt, zie je genoeg projecten die snel en compact willen zijn, en zij kiezen steeds vaker voor "moeilijke talen". En niet alleen Rust profiteert hiervan. Zelfs Zig — ondanks het feit dat de makers en delen van de kerncommunity vrij negatief tegenover het hele AI-verhaal staan — profiteert mee. Cloudflare's nieuwe Artifacts-service maakt bijvoorbeeld gebruik van een pure-Zig Git-protocolengine, gecompileerd naar een WebAssembly-module van ongeveer 100 KB, en Vercel bracht fx uit, een Zig-coding agent die wordt gepresenteerd als klein en snel. Voor zover ik kan zien, zijn al deze projecten grotendeels ondersteund door LLM's.

Maar het gaat niet alleen om mensen die minder gangbare talen kiezen, maar ook dat ze steeds vaker werken met "veel moeilijkere" technologieën. Plotseling zie ik mensen echt indrukwekkende dingen doen met DWARF-bestanden, eBPF, aangepaste netwerkdrivers, aangepaste cryptografie en zeer oude computerhardware. Veel van deze zaken waren voorheen onbereikbaar voor veel ontwikkelaars. In sommige gevallen (bijv. cryptografie) werd je zelfs weggeduwd omdat deze zaken bewust werden afgeschermd door de mensen die de kennis in huis hadden.

Dus misschien komt er meer slop in de wereld, maar er zouden ook meer ontwikkelaars kunnen zijn die willen dat zaken snel en compact zijn.