La programmazione sta cambiando e cambia anche il modo di programmare, un linguaggio come Zero ("zerolang"), pensato per gli agenti AI, ne è la dimostrazione. La maggior parte dei linguaggi più popolari è nata per rendere più agevole la lettura e la scrittura da parte degli esseri umani. Vercel Labs ha deciso però di modificare questo paradigma presentando una sua soluzione, ancora in fase sperimentale, per i sistemi.
Zero è stato ideato nello specifico per essere gestito da degli agenti AI che devono generare, correggere e iterare il codice in modo del tutto autonomo. L'obiettivo è in pratica quello di fornire un ecosistema molto snello, veloce (o "fluido" come direbbe un chatbot) e quanto più possibile privo di tutte quelle complessità legate alla sintassi che, in genere, rallentano l'elaborazione dei modelli computazionali.
Un'architettura ottimizzata per il consumo di token
La sintassi di Zero fonde degli elementi derivati da Rust, Zig e TypeScript, focalizzandosi sull'efficienza delle sessioni di lavoro e sulla riduzione dell'utilizzo della memoria.
I sistemi basati sulle intelligenze artificiali traggono un enorme vantaggio dalla riduzione dei token che sono necessari per comprendere e produrre il codice. Per questa ragione la toolchain elimina le sovrastrutture inutili. A questo proposito è possibile notare la totale assenza di variabili globali nascoste, di asincronia implicita o di garbage collection obbligatoria.
Con Zero ogni elemento della firma di una componente dichiara esplicitamente le proprie interazioni, come per esempio le operazioni di input e output. La compilazione produce dei file eseguibili nativi di dimensioni molto ridotte, nell'ordine di pochi kilobyte. Ciò garantisce dei tempi di avvio praticamente fulminei e delle latenze minime durante l'esecuzione.
Il livello di prevedibilità della memoria permette inoltre agli agenti di effettuare ragionamenti locali accurati. Senza alcuna penalizzazione a livello di runtime.
Zero e la diagnostica nativa in formato JSON per l'autocorrezione
L'installazione del compilatore di Zero prevede una procedura abbastanza semplice. Sono sufficienti le istruzioni seguenti:
curl -fsSL https://zerolang.ai/install.sh | bash
export PATH="$HOME/.zero/bin:$PATH"
zero --version
Fatto questo, l'installer scarica l'eseguibile binario più recente e compatibile dalla release di GitHub e lo scrive in $HOME/.zero/bin/zero.
La vera novità che viene introdotta dal linguaggio Zero può essere identificata nella modalità con cui il compilatore comunica gli errori. Nei flussi tradizionali, i messaggi diagnostici sono comunemente delle stringhe testuali destinate all'analisi da parte dell'occhio umano. Zero integra nel proprio compilatore comandi CLI che restituiscono output strutturati interamente in formato JSON (nativo).
I report includono poi i codici di errore immutabili e dei metadati dettagliati per la riparazione del software. Così facendo viene descritta l'esatta natura del problema che è stato rilevato.
I comandi della CLI consentono all'agente AI di ispezionare l'albero delle dipendenze o di verificare la formattazione senza passare da servizi di analisi di terze parti. Strumenti integrati come quelli deputati alla spiegazione e alla risoluzione dei bug forniscono infine un ciclo di feedback immediato o quasi.
L'agente non deve interpretare la documentazione che viene fornita in formato testuale, analizza invece direttamente i dati strutturati per applicare le patch di correzione nella più totale sicurezza.
Conclusioni
Ad oggi il progetto Zero si trova in una fase iniziale di sviluppo e viene distribuito con licenza Apache 2.0. Dato che la sintassi e il compilatore non sono ancora stabili, l'ambiente ideale per i test rimane un contesto isolato e separato dalle infrastrutture di produzione.