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

Ondřej Surý, direttore ingegneristica DNS presso ISC, già creatore del progetto CZ.NIC Labs che sviluppa il server DNS Knot, ha analizzato gli esperimenti sull'uso di grandi modelli linguistici per l'analisi, la correzione e la modernizzazione del codice base del server DNS BIND 9, la creazione di prototipi di nuovi progetti e la preparazione di materiali didattici per studenti. Le impressioni sull'uso dell'AI si sono focalizzate sul fatto che i grandi modelli linguistici sono adatti per la creazione rapida di prototipi, la comprensione di codice sconosciuto e l'automazione di compiti semplici e routinari, ma nell'affrontare compiti complessi, risulta incerto che possano far risparmiare tempo, dato che gran parte del tempo viene spesa nella definizione del compito, nello studio e nella verifica dei risultati, oltre che nella successiva revisione.

Nel primo esperimento, all'assistente AI Claude Code è stato chiesto di rilevare i problemi nella base di codice del server DNS BIND 9, concentrandosi su questioni di sicurezza e modernizzazione del codice. Nessuna delle correzioni proposte è stata accettata nella base di codice, poiché Claude ha generato codice tecnicamente corretto, ma praticamente inutile. Ad esempio, sono stati segnalati problemi relativi a identificatori riservati e possibili overflow interi, evitabili dal compilatore e che non richiedevano modifiche. L'esperimento è stato considerato una perdita di tempo.

Nel secondo esperimento, Ondřej ha chiesto a Claude di scrivere un sistema di telemetria integrabile con diversi pacchetti e in grado di minimizzare le fuoriuscite di metadati. Claude Code ha preparato prototipi del client e server, ma senza una comprensione adeguata dell'ambiente e dei problemi emersi durante la fase di test. Inoltre, sono stati coinvolti anche Google Gemini e ChatGPT, e ciascun modello AI ha individuato errori nei risultati prodotti dagli altri modelli.

Per la rapida creazione di prototipi, il metodo si è rivelato utile, ma Ondřej ha notato che durante il processo si sentiva come un segretario di un robot padrone. Inizialmente, la rapida generazione del prototipo ispirava ottimismo, ma alla fine è emerso che l'intero processo di sviluppo tramite l'AI aveva richiesto più tempo rispetto alla scrittura manuale del codice da zero. Molto tempo è stato speso per analizzare le soluzioni proposte dall'AI, verificare la presenza di modifiche irrilevanti e rifare lavoro — il prototipo ha dovuto essere riprogettato, poiché la qualità del codice generato dall'AI era mediocre e includeva un numero elevato di costrutti ripetitivi.

Il terzo esperimento ha riguardato la generazione di un bilanciatore di carico in Rust utilizzando i pacchetti crate Domain e Tokio. Claude Code è riuscito a generare il prototipo di lavoro richiesto, ma Ondřej non conosceva abbastanza bene Rust e le librerie coinvolte per valutare la qualità del lavoro svolto.

Il quarto esperimento ha riguardato la preparazione di materiali ausiliari, test e domande per il corso di lezioni che Ondřej insegna all'università, utilizzando Google Gemini. Questo esperimento è stato considerato il più riuscito, anche se non sono mancate le problematiche — l'AI ha inventato una parola ceca inesistente per un termine di crittografia. È stato anche notato un aumento delle opere studentesche inviate, generate da grandi modelli linguistici, che devono essere restituite per le revisioni a causa della non conformità con il livello universitario e delle citazioni di fonti errate.

In aggiunta, si può segnalare un altro esperimento condotto dal direttore ingegneria di Cloudflare. Utilizzando il modello Claude Code, dopo aver speso circa una settimana e 1100 dollari in token, è stata preparata un'implementazione alternativa dell'API del framework Next.js, sviluppata sotto forma di plugin per lo strumento Vite. Il progetto è stato chiamato vinext ed è stato pubblicato su GitHub. La nuova implementazione è quattro volte più veloce della build di Next.js utilizzando Turbopack e genera pacchetti per il frontend che occupano il 57% in meno di spazio.

Il progetto implementa il 94% di quindici API fondamentali di Next.js e può essere utilizzato come sostituzione trasparente di Next.js per il deployment di progetti sulla piattaforma Cloudflare Workers, senza l'uso di ulteriori layer, come OpenNext, e senza dipendere da Node.js. L'obiettivo principale di vinext è consentire l'uso dell'API di Next.js su piattaforme diverse da Vercel e senza dover gestire un proprio server. Nella sua attuale versione supporta solo Cloudflare Workers e c'è un prototipo per Vercel, ma in futuro si prevede il supporto per altre piattaforme di calcolo serverless, compatibili con Vite, inclusi Netlify e AWS Lambda.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster