Hoe zit het with Rails?

David Heinemeier Hansson (DHH) is, voor beter of slechter, nog steeds de baas van Ruby on Rails. Ik zou graag willen stoppen met hem te volgen, maar ik bouw applicaties met Rails, dus zijn acties beïnvloeden mij en mijn klanten. Gisteren gaf hij de openingskeynote op Rails World 2026, waar hij zijn visie voor de toekomst van Rails uiteenzette.

Of dat is in ieder geval wat zijn presentatie had moeten doen. Zijn keynote had namelijk zeer weinig te maken met Rails. Hieronder volgt waar hij het wél over had, en wat dat betekent voor Rails.

De essentie

DHH deed een aantal opvallende uitspraken:

  • Pensioen als programmeur: Hij heeft verklaard dat hij is gestopt als professioneel programmeur. Dit betekent niet dat hij stopt met softwareontwikkeling, maar hij bestempelt zichzelf nu als een "maker".
  • Engels als programmeertaal: Hij claimt nu dat Engels de beste programmeertaal is (vanwege LLM's) en dat we de code die LLM's produceren niet eens noodzakelijkerwijs hoeven te lezen.
  • Economische productiviteit: Volgens hem is het handmatig schrijven van code voor de overgrote meerderheid van de programmeurs bij de overgrote meerderheid van de bedrijven niet langer een economisch productieve onderneming.

Vanwege zijn volledige inzet op LLM-codegeneratie is hij zijn standpunt over zowel native applicaties als de programmeertaal Rust gaan herzien. In zijn ogen waren producten zoals Hey nooit echt bedoeld als web-apps.

Waar hij jarenlang heeft betoogd dat de Rails-stack kleine teams in staat stelt om ambitieuze producten te bouwen, kiest 37signals voor een andere stack voor de volgende versie van Hey. In zijn woorden is de bottleneck verdwenen, dus gebruiken ze LLM's om native applicaties te bouwen voor elk platform dat ze ondersteunen.

Aan de serverzijde kiezen ze voor Rust. DHH houdt vol dat de taal verschrikkelijk is en dat mensen er niet aan blootgesteld zouden moeten worden, maar dat het geweldig is voor LLM's. Omdat hij de code toch niet meer leest, kan hij nu de prestaties en stabiliteit van de taal waarderen.

Hij claimt in augustus van dit jaar 150.000 regels code te hebben geschreven, terwijl hij in het pre-LLM-tijdperk gemiddeld zo'n 30.000 regels per jaar schreef (hoewel hij toegeeft dat veel daarvan "woordelijke" Rust is). Terwijl Ruby in de afgelopen twee decennia ongeveer de helft van zijn werk besloeg, is dat dit jaar gedaald tot slechts 3% van wat hij schreef.

De nieuwe strategie is geworteld in het idee dat mensen die code lezen de uitzondering moeten zijn, in plaats van de norm — "zoals het zien van een bug in Sentry". Volgens hem zal dit tegen het einde van het jaar gelden voor vrijwel alle domeinen, programmeurs en bedrijven.

Daarnaast wil hij dat elke service een CLI (Command Line Interface) aanbiedt, zodat hij (lees: "zijn agenten") ermee kan communiceren zonder de UI te gebruiken.

Het slotstuk van zijn presentatie richtte zich op zijn visie dat LLM's iedereen in staat stellen om te creëren wat hun hart begeert. Hij sprak over zijn werk aan Omarchy en eindigde met een dringende oproep aan het publiek om AI-scepticisme en doomerisme af te wijzen:

"The black pill is for fucking losers. Don’t be a loser."

Een gat in de vorm van Rails

DHH gebruikte de openingskeynote van de belangrijkste Rails-conferentie ter wereld om aan te kondigen dat een vlaggenschip-Rails-app Rails verlaat. De inhoud over Rails beperkte zich tot de stelling dat het nog steeds een goede keuze is voor webapplicaties (zoals Basecamp) en uitstekend geschikt is voor bouwen met AI.

Twintig jaar lang is Rails ons verkocht als het framework voor "kleine teams, ambitieuze producten". Veel teams, waaronder die van mij, konden dankzij Rails veel bereiken met weinig middelen. Hey was een web-app omdat het maken van web-apps voor kleine teams de manier was om productief te zijn — in de oude tijd, oftewel: vijf minuten geleden.

Zijn visie op Rails is versmald. Rails was geen voorkeur, maar een workaround. Het is nu het platform van keuze voor "web-apps uit noodzaak". Convention over configuration is geherformuleerd als "token efficiency". De agent-evaluaties van Evil Martians zijn simpelweg een geruststelling: AI is goed in Rails, dus je hoeft niet over te stappen.

Er is een mildere interpretatie mogelijk: Rails is een volwassen, stabiel framework, en stabiliteit is goed voor agentic development. Maar DHH vertelde ons dat slechts 3% van zijn werk dit jaar in Ruby was. Niets in deze presentatie probeert een volwassen platform te onderscheiden van een platform waar de maker geen aandacht meer aan besteedt.

De eisen voor CLI's waren verbijsterend. 37signals onderscheidt hun producten door een uitgesproken UI/UX, niet door vernieuwende functies. Ze schrijven Hey om naar zes native apps omdat de getrouwheid van het web niet goed genoeg is. Dus UI is belangrijk genoeg om volledige rewrites te rechtvaardigen, maar tegelijkertijd wil iedereen alleen maar CLI's? Als elk product wordt gebruikt door een agent die een CLI aanstuurt, wat onderscheidt Basecamp of Fizzy dan nog van het goedkoopste alternatief? Ik denk dat deze strategie een Rework nodig heeft.

Ik vraag me af wat de visie voor Rails nu eigenlijk is en wie die gaat sturen. Terwijl Mosscap splitste om politieke redenen, is een deel van hun kernargument dat Rails "klaar" is: het is stabiel en heeft alleen nog onderhoud nodig. Hanami heeft een roadmap en een visie voor de toekomst van het bouwen van webapplicaties met Ruby. Hoewel veel van het dagelijkse werk aan Rails komt van Shopify en anderen, stuurde DHH historisch gezien de visie. Vraag hij zich nu uit zijn eigen bedrijf, of is hij al vertrokken zonder het de zaal te vertellen?

De maker van Rails haalt een van zijn vlaggenschip-producten van de stack. Zijn Ruby-output is gedaald naar 3%. Hij gelooft dat handgeschreven code tegen december geschiedenis is voor vrijwel iedereen. In plaats van een plan, biedt hij vleierij aan:

"Nu is dat misschien een beetje eng. Alsof we misschien een beetje concurrentie krijgen. Wie is er bang voor een beetje concurrentie? Ben je niet beter? Weet je niet meer? Natuurlijk wel. Je bent een fucking Rails-programmeur. Je bent de beste van de besten. Dit is godverdomme Top Gun waar ik naar kijk. Omarm dat. Met volle overgave."

Dit is geruststelling in plaats van een plan. Ik wed dat het in de zaal werkte; zelfvertrouwen doet dat altijd. Maar het is volkomen hol. Je zou precies hetzelfde kunnen zeggen tegen een zaal vol Django-, Laravel- of Spring Boot-ontwikkelaars. Op het enige moment dat hij direct tegen Rails-ontwikkelaars sprak, koos hij ervoor om niets over Rails te zeggen.

De hallucinante olifant in de kamer

Laten we kijken naar de AI-claims. Ter context: DHH leidt een bedrijf dat eenvoudige, gebruiksvriendelijke producten maakt. Ze zijn zo eenvoudig dat ze, zelfs vóór de komst van LLM's, periodiek hun apps volledig herschreven om nieuwe versies te maken.

37signals slaagt door product en marketing, niet door het oplossen van complexe technische problemen. Ik bedoel dit niet negatief; veel mensen houden van hun apps. Ik zeg alleen dat het succes van hun nieuwe Kanban-app zal worden gedreven door productbeslissingen en marketing. Een Kanban-bord is geen van de moeilijke problemen uit de informatica.

Werkt zijn aanpak (nooit naar de output kijken, het resultaat van buitenaf evalueren) dan wel? Deze tools zijn een lange weg gekomen. Ze maken nog steeds allerlei fouten, maar zolang er een mens in de loop is om de resultaten te verifiëren en opnieuw te prompten, werkt het prima — althans voor kleine apps en eenvoudige problemen.

Het is moeilijk om de cijfers in deze presentatie serieus te nemen, omdat David ze voortdurend ondermijnt. Hij presenteert onderwerpen als beslecht, terwijl hij ze niet coherent onderbouwt.

Hij geeft toe dat regels code een slechte maatstaf zijn en erkent dat we niet eerlijk tussen talen kunnen vergelijken, om vervolgens 150.000 regels LLM-output in augustus te vergelijken met zijn gemiddelde van 30.000 per jaar. Daarna geeft hij onmiddellijk toe dat hij Rust-code van LLM's tolereert die hij "nooit zou tolereren in zijn Ruby-code". Handgeschreven, beknopte Ruby en LLM-gegenereerde Rust-slop zijn niet vergelijkbaar. Hij lijkt dit te weten, maar vergelijkt ze toch.

"In de afgelopen 20 maanden heb ik half zoveel code geschreven als in de voorgaande 21 jaar."

Weer appels met peren, en hij worstelt met de definitie van "schrijven". Hij heeft de Rust-code die zijn LLM genereerde niet eens gelezen.

De cijfers over Hey Next zijn even problematisch. Er is geen twijfel dat Rust een performantere taal is dan Ruby, maar het is opnieuw een oneerlijke vergelijking:

"...we eindigen met een backend die 99% minder CPU en 95% minder geheugen vereist, en de enige reden dat het 10 hosts nodig heeft, is voor redundantie. Sterker nog, onze ruwe berekening heeft ons doen geloven dat de piekbelasting van Hey waarschijnlijk op een enkele Raspberry Pi geserveerd zou kunnen worden."

Een pure Ruby-backend zonder web-frontend zou ook veel goedkoper zijn in gebruik dan de huidige Rails-versie. Welke winst komt door Rust en welke door het schrappen van de web-app, is onbekend. En niets hiervan is een argument voor zijn agent-these. Een team dat graag Rust schrijft, zou hetzelfde systeem kunnen bouwen. Maar hij vindt dat mensen geen Rust zouden moeten schrijven.

Zijn claims over de 10x (en 100x en 1000x) programmeur zijn even verdacht. De betreffende studie mat het verschil in developer tooling (niet developer productiviteit) en is vanuit verschillende hoeken zwaar bekritiseerd. Het "gemiddelde van 10x" is simpelweg folklore en komt niet eens voor in het oorspronkelijke paper.

Grote productiviteitsverschillen tussen ontwikkelaars zijn echt; ik heb ze zelf gezien. Maar ergens tussen het paper en het podium zijn we gegaan van 28:1 naar 1000:1, en de enige plek waar dat als vaststaat wordt gepresenteerd, is een keynote waar slechts één persoon een microfoon heeft.

Dan is er Basecamp 5. David meldt dat dit resulteerde in een architectuur "als Zwitserse kaas". Hij gaf de modellen de schuld. Niet-gecontroleerde, niet-gecoördineerde bijdragen zullen architecturen degraderen, of ze nu van agenten of mensen komen. Hij betoogt later in de presentatie dat "de prijs van herhaling nagenoeg nul is geworden". Basecamp 5 is precies wat "niet-nul" betekent. We hebben deze foutmodus al gezien in de eigen kring van DHH; Tobi Lütke klaagde onlangs dat "slop grenades" een serieus gevaar vormen bij intensieve agentic development.

David vraagt ons te leren van de geschiedenis, van het verhaal over de geldautomaten (ATM). Mensen vreesden dat ATM's het einde van bankmedewerkers zouden betekenen; in plaats daarvan gebeurde het tegenovergestelde. Er is echter een probleem met zijn verhaal: bijna alle details kloppen niet. Het decennium is onjuist, hij verwijst naar de verkeerde econoom, de aantallen medewerkers wijken een grootteorde af en de conclusie is al omgedraaid. Misschien had een mens dit verhaal moeten dubbelchecken.

"Kijk nooit naar de code" en "beveiliging, er komt iets aan, maak je klaar" zitten vijftien minuten uit elkaar in deze presentatie. Dat is een enorme kloof, en er is geen brug. Men probeert mij te laten geloven dat de beginnende poging van één bedrijf om een relatief eenvoudig e-mailproduct (her)te bouwen, geëxtrapoleerd kan worden naar "vrijwel alle programmeurs, vrijwel alle bedrijven, tegen december."

Uiteindelijk is er, waar een strategie zou moeten staan, een pleidooi voor optimisme:

"Ik denk ook dat sommige van [de zorgen] misschien een beetje overdreven zijn. Ik bedoel, misschien, maar waarschijnlijk niet. Ik bedoel, sommige van hen misschien een beetje meer."

Optimisme is geen strategie en overstijgt de feiten niet. De feiten in deze presentatie rechtvaardigen het optimisme niet. Ik stemde in uit nieuwsgierigheid naar wat er nu volgt voor Rails. Ik weet het nog steeds niet, en ik denk niet dat DHH het ook weet. Hij heeft niet eens gedemonstreerd dat hij erover nadenkt.

Dat is wat me het meeste dwarszit. Ik ben sceptisch over zijn AI-claims, maar dat is niet het echte probleem. Ik ben ook niet boos over de rewrite van Hey; hij mag zijn apps bouwen met welke tools hij wil (ik gebruik Hey niet eens).

Het probleem is dat hij opstond tijdens Rails World en iedereen vertelde dat hij zijn product van Rails afhaalt, en het beste wat hij kon bedenken om te zeggen tegen mensen die Rails nog gebruiken, was dat wij "de beste van de besten" zijn. Bedankt, denk ik.

Misschien is Rails inderdaad klaar, zoals het Mosscap-project beweert. Misschien is het tijd om ons te concentreren op stabiliteit en onderhoud. Als dat het plan is, moet iemand dat zeggen. Als dat niet zo is, horen we dan graag waar we naartoe gaan?

DHH deed geen van beide. Hij vertelde ons alleen dat de toekomst geweldig zal zijn en waarschuwde tegen AI-doomerisme. Ik had genoegen genomen met één of twee slides over Rails.