Just a few years ago, AI coding assistants were little more than autocomplete curiosities—tools that could finish your variable names or suggest a line of boilerplate. Today, they’ve become an everyday part of millions of developers’ workflows, with entire products and startups built around them. Depending on who you ask, they represent either the dawn of a new programming era or the end of programming as we know it. Amid the hype and skepticism, one thing is clear: the landscape of coding assistants is expanding rapidly, and it can be hard to zoom out and see the bigger picture.
I’m Sam Lau from UC San Diego, and my colleague Philip Guo and I are presenting a research paper at the Visual Languages and Human-Centric Computing conference (VL/HCC) on this very topic. We wanted to know: How have AI coding assistants evolved over the past few years, and where is the field headed?
To answer this question, we analyzed 90 AI coding assistants created between 2021-2025: 58 industry products and 32 academic prototypes. Some were widely used commercial assistants, while others were experimental research systems that explored entirely new ways of working with AI. Rather than focusing on who was “best” or which system was most powerful, we took a different approach. We built a design space framework: a kind of map that highlights the major choices designers and researchers make when building coding assistants. By comparing industry and academic systems side by side, we hoped to uncover both patterns and blind spots in how these tools are being shaped.
The result is the first comprehensive snapshot of the space at this critical moment in 2025 when AI coding assistants are starting to mature, but their future directions remain very much in flux.
Here’s a summary of our findings:
Ten Dimensions That Define These Tools
What makes one coding assistant feel like a helpful copilot and another feel like a clunky distraction? In our analysis, we identified 10 dimensions of design, grouped into four broad themes:
Interface: How the assistant shows up (inline autocomplete, proactive suggestions, full IDEs).
Inputs: What you can feed it (text, design files, code analysis, custom project rules).
Capabilities: What it can do (self-correct, run code, call external tools).
Outputs: How it delivers results (code blocks, interactive outputs, reasoning traces, references).
For example, some assistants like GitHub Copilot are optimized for speed and minimal friction: autocomplete a few keystrokes, press tab, keep coding. Academic projects like WaitGPT and DBox are designed for exploration and learning by slowing users down to reflect on tradeoffs, offering explanations, or scaffolding programming concepts for beginners. (Links to all 90 projects are in our paper PDF.)
One of the clearest findings from our survey is a split between industry and academia.
Industry products focus on speed, efficiency, and seamless integration. Their pitch is simple: Write code faster, with fewer errors. Think of tools like Cursor, Claude Code, or GitHub Copilot, which promise “coding at the speed of thought.”
Academic prototypes, by contrast, diverge in many directions. Some deliberately slow down the coding process to encourage reflection. Others focus on scaffolding learning for students, supporting accessibility, or enabling entirely new ways of prompting, like letting users sketch a UI instead of writing a text-based prompt.
This divergence reflects two different priorities: one optimized for productivity in professional software engineering, the other for exploring what programming could be or should be. Both approaches have value, and to us the most interesting question is whether the two cultures might eventually converge, or at least learn from each other.
Six Personas, Six Ways of Coding with AI
Another way to make sense of the space is to ask: who are these tools really for? We identified six user personas that kept reappearing across systems:
Software engineers, who seek tools to accelerate professional workflows.
HCI researchers and hobbyists, who create prototypes and new ways of working with AI.
UX designers, who use assistants to quickly prototype and iterate on interface ideas.
Conversational programmers, who are non-technical professionals that engage in vibe coding by describing ideas in natural language.
Data scientists, who need explainability and quick iterations on code-driven experiments.
Students learning to code, who benefit from scaffolding, guidance, and explanations.
Each persona requires different designs, which we highlight within our design space. For example, tools designed for software engineers like Claude Code and Aider are integrated into their existing code editors and terminals, support a high degree of customization, and have autonomy to write and run code without human intervention. In contrast, tools for designers like Lovable and Vercel v0 are browser-based and can create applications using a visual mockup like a Figma design file.
What Comes After Autocomplete, Chat, and Agents?
So where does this leave us? Coding assistants are no longer experimental toys. They’re woven into production workflows, classrooms, design studios, and research labs. But their future is far from settled.
From our perspective, the central challenge is that academia and industry are innovating in parallel, yet rarely in conversation with one another. While industry tools optimize for speed, generating lots of code quickly is not the same as building good software. In fact, recent studies have shown that although AI coding assistants have claimed to boost productivity by 10x, reality so far is closer to incremental improvements (see Addy Osmani’s recent blog post for a summary). What if academia and industry could work together to combine rigorous study of real barriers to productivity with the practical experience of scaling tools in production? If this could happen, we might move beyond simply making code faster to write, toward making software development itself more rapid and sustainable.
Check out our paper here and email us if you’d like to discuss anything related to it!