Out of the woods: Reshaping collaborative programming with Grove

Recent research by Cyrus Omar introduces a new paradigm for more efficient collaborative coding.
A photo of a path through a forest overlaid with an abstract representation of network nodes in white.

Coding languages, whether JavaScript, HTML, or Python, form the invisible backbone of much of the technology we use every day, from our smartphones to our cars. With over 26 million software engineers worldwide, many of them writing hundreds of lines of code a day, it has never been more essential for the programming languages and environments developers rely on to be efficient and easy to use.

This is especially the case when it comes to collaborative programming, when multiple coders work together on a single program. Despite strides in this area, serious obstacles remain, particularly in managing code conflicts. Traditional version control systems like Git can struggle with these challenges, often leading to inefficiencies and the potential for errors, particularly when multiple developers edit the same line of code or move code between files.

Now, researchers at the University of Michigan have developed a groundbreaking approach to collaborative programming. Called Grove, their system eliminates guesswork by directly capturing edits as they occur, thereby reducing common issues associated with conventional patch and merge methodologies.

At the forefront of this effort is Cyrus Omar, assistant professor of computer science and engineering at U-M, who has a long history of developing innovative programming solutions in his Future of Programming (FP) Lab. He and his coauthors recently introduced Grove at the 2025 ACM SIGPLAN Symposium on Principles of Programming Languages (POPL), where they presented their paper titled “Grove: A Bidirectionally Typed Collaborative Structure Editor Calculus.”

Omar’s latest work on Grove offers a reimagined framework for collaborative coding, avoiding the traditional pitfalls of version control systems by introducing a unique method of tracking and integrating code changes. Instead of relying on traditional methods like diff and three-way merge to piece together changes from different coders, Grove captures the exact sequence of edits as they happen, including the sorts of code relocations that cause problems with traditional approaches. These captured edits can simply be communicated to collaborators and replayed in any order, a property known as commutativity. By designing a commutative edit language, Grove substantially simplifies collaborative editing and avoids spurious conflicts that arise due to “guesses” that traditional approaches have to make. When conflicts are necessary, including when conflicting code relocations occur, Grove includes a type system that can handle incomplete or conflicting code, avoiding the gaps in service that are typical during merge conflicts.

The researchers accomplished this by transforming code into a graph-like structure where each edit is represented by adding or removing an edge between connected points. This structure allows for easy identification of where conflicts arise, particularly with code relocations, because these simply correspond to locations with extra edges.The system can mark these locations with placeholders known as holes when presenting the graph as code to the programmer. 

A diagram illustrating the framework for Grove.
A visual representation of the researchers’ approach used in Grove. In Grove, collaborative program sketches are represented as graphs (a), in which hole filling translates to edge insertion (b), and term deletion deletes an edge but the vertex persists (c).

By providing a clearer path through potential coding conflicts, Grove not only enhances programming efficiency but also sets a new standard for collaborative programming environments that are both more intuitive and more interactive.

“Grove rewrites the story on collaborative editing of code,” said Omar. “Our approach eliminates spurious conflicts, and captures previously missed conflicts, making it simpler for developers to work together effectively.”

With its many improvements to collaborative coding, Grove represents an important addition to the suite of tools Omar has developed in his lab. He also helmed the creation of Hazel, a cornerstone project of the FP lab, which allows programmers to work with incomplete code without being stymied by syntax errors. Hazel employs structure editing to enable live coding, where developers can experiment and iterate rapidly without encountering meaningless editor states that traditionally disrupt workflow.

Through these systems, and other integral advances that have come out of his lab, Omar and his team are ushering in a new era of programming that emphasizes efficiency, creativity, and collaboration. By focusing on tools that understand and adapt to the humans that use them, rather than confining users to rigid systems, Omar and his lab are redefining the programming experience, empowering programmers to focus more on innovation and less on managing the complicated logistics of coding.

“We aim to fundamentally change the coding experience,” said Omar. “By improving both the programming languages and the tools we use, we can enhance how developers write programs and collaborate with one another.”

This work is particularly relevant in the age of AI, with programming tools increasingly equipped with automation and intelligent features. As AI continues to transform industries such as software development, Omar envisions a future where these advances allow coders to collaborate not just with each other, but also with AI partners, expanding creative possibilities and enhancing efficiency.

“In this evolving landscape, AI can act as a collaborator, sharing tasks with human programmers to boost productivity,” Omar noted.

With Grove and Hazel paving the way, Omar and the FP Lab stand at the forefront of these exciting changes, poised to reshape how we build and interact with the technology that surrounds us.

Explore:
Cyrus Omar; Research News