La programmazione sta per subire una rivoluzione. Jason Mars, professore presso l’Università del Michigan, ha sviluppato un linguaggio innovativo chiamato Jac, insieme a un runtime noto come Jaseci, che considera gli agenti intelligenti come entità di prima classe. Questa iniziativa è stata presentata nella sua conferenza durante l’evento All Things Open>, tenutasi a Raleigh, Carolina del Nord.
Mars ha sottolineato che gli strumenti attuali per creare software, incluse le lingue di programmazione e le catene di compilazione, sono stati progettati per programmatori umani e non riescono a rispondere adeguatamente alle esigenze degli agenti intelligenti. “Non stiamo più usando questi strumenti. Stiamo utilizzando gli agenti, e gli agenti utilizzano quegli strumenti. Quindi non voglio nuovi strumenti, ma strumenti [per] i miei agenti”, ha dichiarato.
Un linguaggio affamato di integrazione
Nel suo intervento, Mars ha citato Jarred Sumner, creatore del framework Bun, il quale ha speso 165.000 dollari in token Anthropic per convertire il codice Zig di Bun in Rust. Mars ha messo in evidenza che il costo elevato non derivava dalla complessità del compito, ma dalla necessità di tradurre tra due linguaggi di programmazione orientati agli esseri umani.
Secondo Mars, Jac è progettato per “ingoiare” altri linguaggi. Questo linguaggio, simile a Python, integra sia i runtime di TypeScript che quelli di Python e si compila in bytecode Python, JavaScript e codice macchina nativo. Tra le sue caratteristiche c’è anche l’integrazione con il compilatore LLVM per implementare la sicurezza della memoria e il controllo di proprietà in stile Rust.
Jac permette anche di importare librerie C e C++, e offre un “eject function”, che consente di retrocompilare il codice Jac in TypeScript, Python o C per soddisfare i requisiti di conformità aziendale. Tuttavia, Mars ha specificato che Jac non è progettato per il linguaggio Java.
Unione di architetture e dati grafici
Oltre a affrontare la frammentazione degli ecosistemi, Jac punta a unificare anche la frammentazione architettonica definendo le strutture dati come grafi. Invece di costruire e popolare tabelle di database, le proprietà dei dati sono definite sotto parole chiave dei nodi, con relazioni tra nodi rappresentate da connessioni di bordo. Anche se la logica del programma locale può utilizzare oggetti, la struttura centrale dei dati sarà un grafo, resa disponibile in memoria locale, su disco o su cloud.
Mars ha spiegato che, anche se la creazione di un grafo richiede più lavoro rispetto a tabelle di database tradizionali, tale approccio riduce il carico sugli agenti in seguito. Gli agenti possono impiegare “walker” per attraversare la struttura dei dati e processarla in loco, il che consente una maggiore parallelizzazione e un’esecuzione più veloce.
Il confronto tra Jac e LangGraph
Durante la sua presentazione, Mars ha condotto una comparazione tra Jac e LangGraph, un framework di orchestrazione di agenti basato su librerie Python. Ha richiesto a un agente AI di costruire una replica di Greptile, uno strumento AI per la revisione del codice. Con Jac, l’agente è riuscito a creare in modo autonomo un’app sofisticata che poteva chiamare più strumenti in parallelo, mentre con LangGraph ha prodotto un semplice stato lineare che non supportava l’elaborazione parallela.
Mars ha concluso che gli strumenti forniti all’intelligenza artificiale determinano la qualità del risultato. Finora, Jac e Jaseci sono stati utilizzati in diversi servizi AI commerciali più piccoli, come la piattaforma multi-agente GraphClaw, il scheduler Skooch, e la piattaforma di memoria personale di Tobu. Resta da vedere se sviluppatori e agenti adotteranno Jac come linguaggio unificato, ma il suo potenziale si fa già sentire nel panorama delle tecnologie Python.



