Ondřej Surý, direttore ingegneristico di DNS presso ISC e creatore del progetto CZ.NIC Labs, che sviluppa il server DNS Knot, ha condiviso i risultati di esperimenti sull'uso di grandi modelli linguistici per l'analisi, la correzione e la modernizzazione della base di codice del server DNS BIND 9, la creazione di prototipi di nuovi progetti e la preparazione di materiali per l'insegnamento agli studenti. Le impressioni sull'uso dell'AI sono state che i grandi modelli linguistici sono adatti per la rapida creazione di prototipi, la comprensione di codice sconosciuto e l'automazione di semplici compiti routinari, ma nel loro utilizzo per affrontare compiti complessi, è dubbio che essi risparmino tempo, poiché si impiega molto tempo a definire il compito, studiare e verificare i risultati, oltre a richiedere successivamente delle revisioni.
Nel primo esperimento, è stato chiesto all'assistente AI Claude Code di rilevare problemi nella base di codice del server DNS BIND 9, concentrandosi su problematiche 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 inutilizzabile. Ad esempio, sono stati segnalati identificatori riservati e potenziali overflow numerici, impediti dal compilatore e che non necessitavano di correzioni. 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 che minimizzasse le perdite di metadati. Claude Code ha preparato prototipi del client e server, ma senza una adeguata comprensione dell'ambiente e dei problemi che sorgono durante i test. Inoltre, per la verifica sono stati coinvolti Google Gemini e ChatGPT, e ogni modello di AI trovava errori nei risultati generati dagli altri modelli.
Per la rapida creazione di un prototipo, il metodo si è rivelato utile, ma Ondřej ha notato che durante il lavoro si sentiva come il segretario di un robot signore. All'inizio, il rapido ottenimento del prototipo suscitava ottimismo, ma alla fine è emersa la sensazione che l'intero processo di sviluppo con l'AI avesse richiesto più tempo rispetto alla scrittura manuale del codice da zero. Molto tempo è stato speso per analizzare la soluzione proposta dall'AI, controllare la presenza di modifiche prive di senso e rielaborare: il prototipo ha dovuto essere rifatto, dato che la qualità del codice dopo l'AI si è rivelata mediocre e il codice conteneva un gran numero di costrutti ripetitivi.
Il terzo esperimento ha riguardato la generazione di un bilanciatore di carico in linguaggio Rust utilizzando i pacchetti crate Domain e Tokio. Claude Code è riuscito a generare il prototipo di lavoro richiesto, ma Ondřej non conosce bene Rust e le librerie coinvolte da poter valutare la qualità del lavoro svolto.
Il quarto esperimento ha riguardato la preparazione in Google Gemini di materiali di supporto, test e domande per il corso di lezioni che Ondřej insegna all'università. Questo esperimento è stato riconosciuto come il più riuscito, anche se non senza problemi: l'AI ha inventato una parola ceca inesistente per un termine di crittografia. È stato inoltre notato un gran numero di lavori di studenti inviati, generati da grandi modelli linguistici, che devono essere restituiti per la revisione a causa di non conformità rispetto agli standard universitari e riferimenti a fonti non corrette.
Si può inoltre evidenziare un altro esperimento condotto dal direttore ingegneristico della società Cloudflare. Con l'aiuto del modello Claude Code, impiegando circa una settimana di tempo e 1100 dollari in token, è stato possibile preparare un'implementazione alternativa dell'API del framework Next.js, formulata come plugin per l'arsenale Vite. Il progetto ha preso il nome di vinext ed è stato pubblicato su GitHub. La nuova implementazione è quattro volte più veloce rispetto alla build di Next.js tramite Turbopack e genera bundle per i frontend che occupano il 57% di spazio in meno.
Il progetto implementa il 94% delle sedici API di base di Next.js e può essere utilizzato come sostituzione trasparente di Next.js e per il deployment di progetti sulla piattaforma Cloudflare Workers senza l'uso di ulteriori strati, come OpenNext, e senza dipendenza da Node.js. L'obiettivo principale di vinext è fornire la possibilità di utilizzare l'API di Next.js su piattaforme diverse da Vercel e senza dover deployare un server proprio. Nella sua forma attuale supporta solo Cloudflare Workers e c'è un prototipo per Vercel, ma in futuro ci si aspetta supporto anche per altre piattaforme di calcolo serverless, con cui Vite può lavorare, inclusi Netlify e AWS Lambda.
Fonte: opennet.ru
