The problem with vibe coding is not only that it can produce bad code. For a beginner, it can produce code too quickly.

Flowcode starts from that tension. The project by Tiffany Tseng and nine coauthors, posted to arXiv on July 7, is aimed at new creative coders who learn by building on examples. That is a familiar way to learn: find a sketch, work out how it behaves, change a piece, break it, try again.

A chat interface that can rewrite the whole program can shorten that loop until it removes the part where understanding happens.

See the program before asking it to change

Flowcode combines two interfaces. A flowchart helps learners inspect the structure of the program. A chat interface then helps them extend it.

That sounds almost conservative next to agents promising to take over a project. That is what makes it useful.

The researchers are not only asking whether AI gets people to an output faster. They iterated on the environment across two studies with new creative coders and focus on how visualization and friction can support productive AI use while learning.

Friction is rarely advertised as a feature. Here it keeps code visible as something to understand instead of turning programming into a conversation with a machine that quietly does the rest.

A learning tool may need to refuse some shortcuts

The idea travels beyond Flowcode.

We often judge assistants by how many steps they remove. For work you already understand, that can be sensible. If I know what a function needs to do, I do not gain much wisdom from typing its boilerplate again.

Learning is different. Some slow steps are the work. Reading a structure, forming a guess, changing one part and seeing what happens builds a mental model. If the assistant absorbs that loop, the output can improve while the learner understands very little more about how it was made.

Flowcode does not establish a universal ideal amount of friction. The paper describes an exploratory environment and two studies, not a finished recipe for teaching programming with language models.

It does ask a useful design question: when AI can perform a task for us, which part should we deliberately keep for ourselves if the goal is still to learn?

For creative tools, that feels more useful than counting seconds saved. A brush that finishes the painting for you is extremely fast. It is also a peculiar way to learn how to paint.