Эксперименты с использованием AI для улучшения кода BIND 9 и переработки Next.js

Ondřej Surý, directeur engineering DNS bij ISC, voormalig oprichter van het CZ.NIC Labs-project dat de DNS-server Knot ontwikkelt, heeft de resultaten van experimenten met grote taalmodellen voor de analyse, correctie en modernisering van de codebasis van de DNS-server BIND 9 samengevat, evenals voor het maken van prototypes van nieuwe projecten en het voorbereiden van materialen voor het onderwijzen van studenten. De indrukken van het gebruik van AI waren dat grote taalmodellen goed geschikt zijn voor snel prototyping, het begrijpen van onbekende code en het automatiseren van eenvoudige routinetaken, maar hun inzet voor het oplossen van grote problemen levert twijfelachtig tijdsbesparingen op, omdat er veel tijd gaat zitten in de probleemstelling, het bestuderen en controleren van de resultaten, en de latere aanpassingen.

In het eerste experiment kreeg AI-assistent Claude Code de taak om problemen te detecteren in de codebasis van DNS-server BIND 9, met een focus op beveiligingsproblemen en code-modernisering. Geen van de voorgestelde correcties werd in de codebasis opgenomen, aangezien Claude technisch correcte, maar praktisch nutteloze code genereerde. Problemen die werden opgemerkt waren gereserveerde identificatoren en potentiële integer-overflows die door de compiler werden voorkomen en geen aanpassing vereisten. Het experiment werd als een nutteloze tijdverspilling beschouwd.

In het tweede experiment vroeg Ondřej Claude om een telemetriesysteem te schrijven dat integreert met verschillende pakketten en dat metadata-lekken minimaliseert. Claude Code bereidde prototypes van de client en de server, maar zonder een goed begrip van de omgeving en de problemen die tijdens het testen optraden. Bovendien werden ook Google Gemini en ChatGPT ingezet voor de controle, en elke AI-modeller vond fouten in de resultaten van de andere modellen.

Voor het snel creëren van een prototype bleek de methode bruikbaar te zijn, maar Ondřej merkte op dat hij zich tijdens het werk voelde als de secretaris van een robotheerser. Aanvankelijk gaf het snelle verkrijgen van een prototype optimisme, maar aan het eind was er het gevoel dat het hele ontwikkelingsproces met behulp van AI meer tijd in beslag nam dan het handmatig schrijven van code vanaf nul. Er was veel tijd besteed aan het analyseren van de door de AI voorgestelde oplossing, het controleren op zinloze wijzigingen en het herwerken - het prototype moest opnieuw worden gedaan, omdat de kwaliteit van de code na de AI middelmatig bleek te zijn en de code een groot aantal herhalende constructies bevatte.

Het derde experiment was de generatielastbalancer met Rust, met behulp van de crate-pakketten Domain en Tokio. Claude Code slaagde erin om het gevraagde werkende prototype te genereren, maar Ondřej kent Rust en de betrokken bibliotheken niet goed genoeg om de kwaliteit van het geleverde werk te kunnen beoordelen.

Het vierde experiment was gerelateerd aan het voorbereiden van ondersteunende materialen, tests en vragen voor de cursus die Ondřej op de universiteit doceert, in Google Gemini. Dit experiment werd als het meest succesvol beschouwd, hoewel er ook problemen waren - de AI verzon een niet-bestaand Tsjechisch woord voor een cryptografie-term. Ook werd opgemerkt dat er veel studentenwerk naar hem werd gestuurd, gegenereerd door grote taalmodellen, die moeten worden teruggestuurd voor herwerking omdat ze niet voldoen aan universitair niveau en verwijzingen naar onjuiste bronnen bevatten.

Daarnaast kan nog een experiment worden vermeld, uitgevoerd door de engineeringdirecteur van Cloudflare. Met behulp van het Claude Code-model, waarbij ongeveer een week en 1100 dollar aan tokens werd besteed, is het gelukt om een alternatieve implementatie van de API-framework Next.js voor te bereiden, gepresenteerd als een plug-in voor de Vite-toolset. Het project kreeg de naam vinext en is gepubliceerd op GitHub. De nieuwe implementatie is vier keer sneller dan het bouwen van Next.js met Turbopack en genereert bundles voor frontends die 57% minder ruimte innemen.

Het project implementeert 94% van de zestien basis-API's van Next.js en kan worden gebruikt als een transparante vervanging voor Next.js voor het implementeren van projecten op het Cloudflare Workers-platform, zonder extra lagen zoals OpenNext toe te passen en zonder afhankelijkheid van Node.js. De belangrijkste functie van vinext is het bieden van de mogelijkheid om de API van Next.js op andere platforms dan Vercel te gebruiken, zonder eigen serverimplementatie. Momenteel wordt alleen Cloudflare Workers ondersteund en is er een prototype voor Vercel, maar in de toekomst wordt ondersteuning voor andere serverless computing-platforms verwacht, waaronder Netlify en AWS Lambda.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster