I increasingly think AI agents could be a meaningful advantage for Julia specifically.
One of Julia’s longstanding limitations relative to Python and R has been ecosystem coverage. Even when Julia itself is well suited to a problem, a missing package can still make Python the more practical choice. But agentic coding seems to be changing that tradeoff somewhat, at least in my own experience. A capable agent can often produce a useful pure-Julia implementation of a missing tool surprisingly quickly, especially when the required scope is fairly narrow. That obviously does not replace maintainers, documentation, testing, or domain expertise. Still, it can make Julia’s smaller ecosystem feel less limiting in practice. In my own work, I have found myself reaching for PythonCall.jl less and less as coding agents have improved, even though PythonCall remains an excellent and important project.
Reactant.jl is one recent example for me. I wanted Reactant to support Metal.jl, which could be especially useful for workloads where access to very large amounts of unified memory matters as much as, or more than, the raw FLOPs available from faster CUDA-based hardware. Using almost entirely agent-driven coding, I was able to submit a PR. I genuinely do not understand much of the implementation, so I do not want to overstate the accomplishment. But it seems to have gotten close enough that the actual Reactant developers may be able to review it, correct it, and finish it. Even that feels significant to me. A user who would ordinarily have had no realistic path toward implementing a difficult backend can now at least produce something concrete enough for experts to work with and in turn grow the ecosystem that Julia covers more easily than before.
I also think Pluto’s reactive execution model may be unusually well suited to human–agent collaboration. Agents often work by writing a script, running it from top to bottom, inspecting the result, and repeating. As that process continues, I sometimes find it difficult to keep track of what has changed or to feel meaningfully involved in the development process.
Pluto offers a different interaction model. Once the notebook is set up (and after a slight modification to Pluto.jl’s reactivity model) the agent can modify individual cells while Pluto reruns only the affected downstream computation. The code remains organized as a visible, interactive document rather than becoming a long script that is repeatedly rewritten and executed behind the scenes. I have been experimenting with this idea in SpaceStation.jl, including in the actual imaging and reconstruction work I am doing right now for my PhD. The screenshot below shows one of these sessions in practice. With surprisingly few changes, it has become the most productive agentic coding environment I have personally used (which might be unique to the type of work I am doing of course). Still, the agent can move quickly, while Pluto’s structure and reactivity help me remain much more aware of the code, state, dependencies, and outputs.
I obviously don’t know of or have strong adoption numbers to justify my optimism, just a personal feel, but I think there are some genuinely promising possibilities here. Agents may reduce some of the practical disadvantages of a smaller ecosystem, make ambitious contributions more accessible to non-experts, and increase the value of tools like Pluto or other shining stars within the julia ecosystem.