In the 1980s, computers arrived in homes.
Teenagers connected beige boxes to the family TV. You typed commands, copied code from magazines, loaded games from tapes or floppy disks, and experimented to see what would happen. The machines were slow and limited, but they were open. You were not just using a computer. You were exploring what it could become.
That moment marked the first awakening of computing as a lived, everyday practice.
Over time, this openness narrowed. Graphical interfaces made computers usable for many more people, but they also turned them into stable products. Interaction replaced instruction. Software became something you operated rather than shaped. The computer became powerful, reliable, and largely fixed.
Today, something familiar is happening again.
Programmers are now working with coding agents. These are conversational systems that can write code, run it, and execute commands on a computer. They can open browsers, interact with websites, read files, test software, and observe the results of their actions. In effect, they can do almost anything a human user can do at a keyboard.
What makes this different is how new capabilities come into being.
When a limitation is encountered, the response is no longer to switch tools, install new software, or postpone the problem. Instead, the programmer explains the situation to the agent in natural language. The agent is instructed to create something new to support the work that is already underway.
That “something” might be a small script, a command-line tool, or a connection to an external service. It might be a way of tracking progress, waiting for input, coordinating multiple tasks, or visualising what is going on. The key point is that these tools are not designed upfront. They are created in the moment, in response to a concrete need.
Once created, the agent can use these tools itself. Capabilities that were improvised a few minutes ago become reusable parts of the ongoing workflow. If they stop being useful, they are ignored or discarded. Nothing forces them to persist.
Toolmaking happens inside the flow of work.
As programmers collaborate with coding agents this way, they also invent new ways of working with the agents themselves. They create shared task boards, status indicators, conventions for signalling when an agent is blocked, and simple representations that make the agent’s activity visible. These structures are rarely planned in advance. They emerge gradually, through trial and error, as people notice friction and respond to it.
What is taking shape is not just faster programming, but a different relationship to the computer. The computer is no longer a fixed environment that you operate. It becomes a malleable system that can be reshaped as needs arise.
In this sense, today’s coding agents strongly resemble the home computers of the 1980s. Once again, people are sitting in front of machines whose full capabilities are not yet known. Once again, exploration happens through experimentation, improvisation, and curiosity.
The difference is that exploration now happens through language rather than command lines or source code.
This is the second awakening of computing.
The first brought computers into everyday life.
The second is making them open again.