The cost of the "Copilot-pause".
How using AI assisted coding tools can steal the spark of creativity when interacting with the medium of thought, imagination, and intuition.
The Fortress of Königstein, c. 1756-1758 - Bernardo Bellotto - Public Domain
When I graduated college, I lived in a small, vaulted loft in downtown Rochester Minnesota. It was nestled above a coffee shop I liked, it stayed warm in the winter, and it was a short 5 minute walk from the hospital where I worked. Across the hallway from my unit was an artists studio: no one lived there, but during many hours of the day and night, art of some kind was being created.
I remember stumbling into that studio one evening, as the artists were having an impromptu unofficial gallery, showing off their latest works (it helped that they knocked on my door and offered me a big paper cup of wine, bidding me to come see their new work).
One piece really struck me: it was a small concrete slab hanging on the wall with barbed wire, chicken fencing, and steel rods protruding from it. It gave the illusion of a sort of "explosion" of raw, brutal construction material. I asked the artist how he accomplished making this and how he’d gotten the material to look the way it did: bent, misshapen, distorted.
He simply smiled, pondered the piece for a moment, and turned to me to say:
"With great effort."
Over the last year or so, I've heard of a number of people turning off Copilot auto-complete, moving away from using Cursor, and generally, abandoning AI-assisted code editors in favor of a more traditional experience.
They've told me coding with AI directly in their editor can sort of feel “bad”: they worry their hard skills are atrophying, that they're too reliant on the "Copilot-pause" (a phenomenon where you type something, wait, and let the AI fill in the rest - a sort of hesitation for the AI to take effect), and generally, people wonder if they're becoming worse at software engineering by habitually using these tools.
Inarguably, AI assisted coding tools are a huge productivity gain, especially for those who know exactly what they're doing. Just like with any new tooling, the "old" way may seem more familiar and grounded, avoiding layers and layers of abstraction that you'll never understand. But adoption will continue as enterprises slowly onboard these tools and new companies build better and better solutions. The wheels of software automation and tooling continue to go round. Eventually, these tools will be ubiquitous with software engineering.
But along with these productivity gains, the earth has been shaken: AI assisted code tools have disrupted the very foundation of how engineers interface with their projects, code, other adjacent tools, and infrastructure. Now, when working on something, engineers automatically reach for AI to assist them in acquiring new knowledge, help boost their productivity, or take over and generate entire solutions. Today, at the end of 2024, being a software engineer looks very different than it did even just 5 years ago (and that's mostly thanks to AI).
What feels fundamentally different about these tools is that they interact with the very "medium" of coding: thought and knowledge. The act of implementing some software was once the practice of putting raw imagination and ideas into the boundaries of a coding language, through some plan you'd conceptualized, in order to create a solution. Because coding is so incredibly fluid, ideas (both good and bad) can easily flow without limitation.
And in Fred Brooks's legendary essay, The Mythical Man Month from 1975, we're presented with this very idea that coding, much like other artistic acts that might require a canvas, a brush, or an instrument, depends on the medium of implementation:
In many creative activities the medium of execution is intractable. Lumber splits; paints smear; electrical circuits ring. These physical limitations of the medium constrain the ideas that may be expressed, and they also create unexpected difficulties in the implementation.
Implementation, then, takes time and sweat both because of the physical media and because of the inadequacies of the under-lying ideas. We tend to blame the physical media for most of our implementation difficulties; for the media are not ''ours'' in the way the ideas are, and our pride colors our judgment.
Computer programming, however, creates with an exceedingly tractable medium. The programmer builds from pure thought-stuff: concepts and very flexible representations thereof.
Coding uses the medium of ideas where the "canvas" and "paints" are simply our intuitions, thoughts, conceptualizations, plans, and imaginations. These are things that are deeply ingrained in us, are fundamentally "ours" to behold and ponder, and yet, they are incredibly fluid and flexible. Ask any programmer what it feels like to be in a "flow state" when coding, and they'll tell you how their ideas simply become code and the computer program begins to take shape as they expertly craft it in their mind's eye.
Artists, woodworkers, sculptors, and software engineers are all alike in this: they use their given medium to create something. But software engineers are unique in that they create something from nothing simply using the medium of their thought and intellect.
But, when it comes to AI assisted code editors and adopting the "Copilot-pause", a software crafter risks giving up interacting with the medium of their thought in favor of letting an AI paint with the medium of generation. Despite how anthropomorphized large language models are today, they do not think, they cannot plan (at least in the traditional sense), they do not have an imagination, and their creativity is often the sum average of all the things they've been trained on or fine-tuned with. Despite AI and ML researchers best efforts, AI cannot work within the same canvas we do: cognition, reasoning, contemplation, musing, and introspection.
Like any other creative act, coding requires a bit of struggle. It asks you to wrestle with your ideas and raw imagination and come out the other side with a software system, often, through the process of implementing it. AI assisted code editors, while incredible tools, may reduce that process down to a simple "pause", waiting for the AI to finish generating something, stealing a bit of the "great effort" required to spark creativity, disrupting the flow of your thoughts.
This is that nagging feeling people have when using these tools: you’ve robbed yourself of some creativity, you’ve blocked the unimpeded flow of ideas, and you’re now layers of abstraction further from the paints and brushes used to build software.
I don’t argue that we should abandon AI tools altogether: I simply urge us to reflect on our reliance on these tools. And I ask AI product designers to not let their tools get in the way. Ultimately, what makes a great creator is that they struggle through the medium of their craft using the right tools at the right times in order to build within the limitations, intricacies, nuances, and difficulties of a given problem. Woodworkers understand working with wood by building things. But they use powerful saws, planes, and jigs to shape the wood pieces into a beautiful construct. Painters understand working with paint by painting. But they employ technique, color theory, and different materials to bring their visions to life. And software engineers understand building software systems by writing code. And just like other crafters, we use powerful tools and automations to make building software simpler and enable the free flow of thought more easily.
AI tools should be used to elevate that process of creativity, not get in the way of it (or at its worst, completely take it over).
Many years ago, my artist neighbor bent rods, shaped concrete, and formed barbed wire into a beautiful piece of art. He had to wrestle within the limitations of his chosen medium and material to produce an incredible work. He did this "with great effort". Would that piece have been the same if he had simply ordered all the components from an art catalog, had them delivered, and then assembled them in his studio without much struggle?
Probably not.
Insightful reflection on this important topic. Thanks for writing this. I am also still puzzling out what the longer term effects of this will be.