Michigan prof creates Python-like Jac language for AI agents
Most programming languages were written for human programmers, but that's about to change. University of Michigan professor Jason Mars has developed an academically ambitious language called Jac, and a runtime called Jaseci, that treats AI and AI agents as first-class entities.
Mars demonstrated the language and runtime in a talk at the All Things Open conference, held in Raleigh, North Carolina, this week.
The tools we use to create software - everything from programming languages to build toolchains - were made for human consumption. They were created before generative AI and are ill-fitted to understand agentic needs.
Currently, agents are drowning in polyglot complexity, he argued. "We're not using these tools anymore. We're using the agents, and the agents are using those tools. So I don't want new tools, but I want tools [for] my agents," he told the audience.
One big hungry languageIn his talk, Mars cited Jarred Sumner, creator of the Bun framework, who spent $165,000 in Anthropic tokens to convert Bun's Zig code into Rust earlier this year using a pre-release version of Mythos. Mard argued the heavy expense wasn't so much because the job itself was complicated; it was because everything had to be translated between two human-centered programming languages.
Mythos is supposed to hack into our nuclear reactors and take over the planet like Skynet, but it can't translate Bun to Rust unless you spend $165,000," he noted.
In Mars's theory, Jac is a new type of programming language designed to gobble up" other languages. Specifically, it's a Python-like language that integrates both the TypeScript and Python runtimes and toolchains. It compiles to Python bytecode, JavaScript, and native machine code. It can make full use of any libraries both in the PyPI and npm ecosystems.
And there's more! Jac has also incorporated the LLVM compiler to implement Rust-style borrow checking and ownership semantics, allowing Jac code to directly benefit from these memory safety rules and performance gains. It can also import C and C++ libraries, thanks to the very same LLVM integration.
Mars also described an eject function," which can reverse-compile the user's Jac code into TypeScript, Python, or C to meet corporate compliance.
One currently missing language is Java. If you really need Java, Jac isn't for Java," he said.
Happy bot, happy lotJust as Jac's design sets out to battle ecosystem fragmentation, it also attempts to unify architectural fragmentation by defining data structures as graphs.
Instead of building and populating a database table, or creating objects from a class, the data's attributes are defined under node keywords. The relationships among different nodes are defined by edge connections. Local program logic can still use objects, but the core data will be a graph, which can reside in local memory, a storage disk, or cloud server.
So, yeah, graph computing. Creating a graph from all your data is more work than just creating database tables and some foreign keys to tie em together, but graphing saves agents a lot of work down the line, he posited. No longer will the agent have to burn tokens extracting data from databases, object blobs, JSON strings, or Python objects.
Instead of the agent fetching data hither and processing it over yonder, the agent can dispatch a walker" to traverse the data structure and process it on the go. Multiple walkers can go down different paths of the graph, resulting in natural parallelism for faster execution.
Tidy the abstractionFor his All Things Open talk, Mars conducted a bake-off between Jac and LangGraph, an agent orchestration framework that uses Python libraries to build agents.
He asked an AI agent to use each platform to build a replica of Greptile, an AI code review tool. With Jac, the agent autonomously built a sophisticated multi-stage app that could call multiple tools in parallel.
Using LangGraph, the agent produced a crude linear state machine that could not work in parallel. It was probably weighed down by all of the tools it had to use, Mars concluded.
Mars's takeaway from this exercise: The tools we provide the AI determine the quality of the output.
Thus far, the language and runtime have been used in a number of smaller commercial AI-related services, such as the GraphClaw multi-agent AI platform, the Skooch scheduler, and Tobu's personal memory platform.
Whether developers and agents gravitate towards Jac's promise as a unified language remains to be seen, but it certainly is giving other Python agent frameworks a run for their money. (R)