Il team di Reco ha annunciato di aver completato la riscrittura dell’interprete per il linguaggio di espressioni JSON JSONata, passando da un’implementazione in JavaScript a una in Go. L’operazione, descritta come un caso di ‘vibe porting’, è stata realizzata in sette ore di lavoro effettivo con l’ausilio di modelli di linguaggio, per un costo stimato di 400 dollari in token. Il fattore abilitante principale è stata la suite di test esistente di JSONata, che ha permesso di generare e validare rapidamente il nuovo codice. Dopo lo sviluppo iniziale, il team ha eseguito uno shadow deployment per una settimana, facendo girare in parallelo la vecchia e la nuova implementazione per confermare la perfetta corrispondenza comportamentale. Il risultato è una nuova libreria Go che replica le funzionalità di JSONata, un linguaggio simile a jq per l’interrogazione e trasformazione di dati JSON, ampiamente utilizzato nella piattaforma Node-RED. La notizia è stata riportata da Simon Willison.
L’impatto pratico è diretto per le aziende che gestiscono pipeline di dati basate su JSONata in ambienti ad alta intensità computazionale o dove le prestazioni di Go sono preferibili a quelle di JavaScript. Sviluppatori backend e architetti di sistemi che lavorano con microservizi in Go possono ora integrare la logica di trasformazione JSONata senza dover chiamare runtime esterni, riducendo la latenza e la complessità operativa. Il risparmio operativo annuale stimato di 500.000 dollari deriva presumibilmente dalla riduzione dei costi infrastrutturali legati a una maggiore efficienza in termini di memoria e CPU. Per i team che mantengono progetti legacy basati su JSONata, questa operazione dimostra una via concreta per la modernizzazione del codice senza riscrivere manualmente la logica di business, preservando gli investimenti esistenti nelle suite di test.
La fonte originale non menziona limiti specifici, ma è ragionevole inferire alcune criticità. L’approccio dipende fortemente dalla qualità e copertura della suite di test originale; eventuali bug o comportamenti non documentati nell’implementazione di riferimento potrebbero essere replicati inconsapevolmente. La manutenzione a lungo termine della nuova libreria Go richiederà competenze specifiche sia in Go che nella semantica di JSONata, creando una dipendenza da un codice generato in modo semi-automatico. Esiste il rischio che aggiornamenti futuri del linguaggio JSONata richiedano un nuovo ciclo di porting, a meno che non venga stabilita una procedura di aggiornamento automatizzata. L’affidabilità in scenari di edge case o con input JSON malformati deve essere verificata oltre la suite di test esistente.
Questo caso si inserisce nel trend più ampio del ‘vibe porting’, dove le suite di test esistenti vengono utilizzate come specifica eseguibile per guidare modelli di linguaggio nella riscrittura o migrazione di codice tra linguaggi. Dimostra un’evoluzione nell’uso dell’AI per l’ingegneria del software, spostandosi dalla generazione di snippet alla riproduzione sistematica di comportamenti complessi definiti da test. Lo sviluppo futuro plausibile vede l’emergere di tool specializzati che automatizzano ulteriormente questo processo, magari integrandosi direttamente con i sistemi di continuous integration. Resta aperta la questione di come scalare questo approccio per codebase più grandi e meno testate, e di come gestire la proprietà intellettuale del codice generato. Per un professionista che valuta l’adozione di strumenti simili, la domanda chiave è: la tua codebase ha una copertura di test sufficientemente robusta da fungere da specifica affidabile per un processo di migrazione assistita da AI?
Alessio Baronti
Consulente Strategico AI & Sviluppatore Web


