A Few Thoughts on the New Programming

I remember one of the first programs I wrote, when everything about programming, the web, and the world of computing was new to me, which was a simple implementation of Conway’s Game of Life using an HTML table for the grid. Nothing fancy, nothing that hasn’t been done a million times before, just a fun little hack and a good exercise for a budding programmer.  

The Game of Life is fairly simple to implement, and part of what makes it interesting is the emergent behavior coming from such a simple set of rules, which give rise to stable, mobile entities such as “gliders”. I remember that I wanted the grid to wrap around, so that if a glider were to glide off the end, it would find itself safely back on the other side. While implementing the wrap-around, I remember getting stuck trying to figure out wrapping around the corners. I’m sure there are more mathematically inclined people who could simply visualize this problem in their head and would have no problem putting it into code, but for me, at the time, this was mental yoga, stretching my brain into positions that it was not used to, and there was a period of banging my head against the problem before striking on the solution.  It was the 20% of the problem that took up 80% of the time. I also remember what a great feeling of satisfaction it was to finally get it working.

The fact that I’ve been able to have a career as a programmer has a lot to do, I think, with the fact that I’m willing to bang my head against a problem until bits start coming loose, then bigger cracks emerge, until eventually a big chunk of the problem is metaphorically dislodged. Not everyone wants to sit there and think through every possible permutation of a problem, trying a hundred things just to rule them out before one of them works and you can move on to the next thing, which is what the experience of writing code often is. That is not all it is; there is certainly plenty of creativity involved in developing software, but at least some part of what has made a successful developer, as of recently, was the willingness to pursue a tricky problem until it yielded to your efforts.

Today, in early 2026, that willingness to hack away at a problem seems no longer the advantage it was. If I wanted an implementation of the Game of Life, I would just ask a coding agent for it and would have it working perfectly in seconds, at no or minimal cost, and would never have even had to think about how to implement wrapping around the corners. There would be no period of getting stuck on a thorny problem, of having to stretch my mind in uncomfortable ways to get a better understanding of what the problem space looks like. Now we computer programmers, and all of us with the white collars, have just one big uncomfortable thing to get our heads around, and that is what the world is going to look like after AI can do just about everything.

A Real Revolution

With the wide-ranging changes AI is bringing, and promises to continue bringing, we have a “blind men examining an elephant” situation, with all kinds of predictions being made, intricately-conceived scenarios being forecast, from certain AI proliferation to an AI bubble bursting, and an uncertain future in any case. To get some perspective on the various points of view, consider that there are two kinds of beliefs, corresponding to the is/ought distinction: believing that something is true, or is possible, and believing that it is desirable or undesirable, a positive or a negative, however those are understood. It is the difference between pessimism vs. optimism and skepticism vs. conviction. AI is going to remake the economy, or it is all hype and we are in a bubble. And if AI really is our future, does that mean a new era of human flourishing, or a degeneration into mass unemployment and insecurity? 

Not every technology that promised a revolution has delivered on those promises. It is not hard to find examples of technologies that were once new and exciting and seemed ready to solve all kinds of problems, which in the intervening years may have not disappeared but have settled into some modest niche, something useful but far from the original grand vision. 

For example, there is the idea of the Semantic Web, which was supposed to be Web 3.0 before blockchain and cryptocurrencies were supposed to be Web3. This was an effort to turn all of the free-floating information available out there on the web into a worldwide library, with everything neatly cataloged and searchable. Supporting the Semantic Web were a set of technologies based on XML, itself once an exciting new technology, as hard as that is to believe for us today, jaded as we are by the years of staring at all those pointy, angular brackets. They had names like XQuery, XPointer, XLink, and XPath. I’m sure somewhere out there, someone is making good use of all this X-tech, but we have not seen the complete transformation of the information landscape that it was imagined they would bring. 

But AI today looks like it is the real deal, an actual revolution that is bringing wide-ranging changes to the technological landscape, and more broadly to the world. You can tell this because everyone is using it for everything, from refactoring legacy code bases to coming up with exercise plans. 

That doesn’t mean there can’t be a short-term bubble. It may be that share prices are currently inflated by hype that can’t sustain itself no matter what advances we see in new models. There may be too many data centers being built, there may be a contraction of AI spending in the near future, some of the major players of today may not be around in the next five years, but a technology that can both be your personal dietician and build you a diet tracking app is not mere hype. We’ve already gotten so used to it that it would be weird not to be able to ask your computer for relationship advice.

Yegge, Vibe Coding, and Gas Town

Early on in my programming career, besides reading books and writing little programs, I was also consuming a lot of programming blogs. One of the best bloggers out there was, and is, a guy named Steve Yegge. If you are unfamiliar with the name, he is a programmer with an impressive career, working for Amazon in the early days of its rise to internet retail dominance, later doing a lengthy stint at Google. 

I enjoyed his writing because it was entertaining and insightful, with a self-deprecating sense of humor and a strong aesthetic sense applied to technology, as well as because it provided an insider’s look into the world of the tech giants. (In one case, he provided a more intimate look than intended, when a post he made while at Google about his days at Amazon was inadvertently made public, causing embarrassment to his current and former employers.) He is also someone who is willing to express strong opinions and make bold predictions. He excoriated Perl for its obscurity and praised Ruby for its discoverability. He predicted that JavaScript, that misfit language, whipped up in short order to add scripting capabilities to Netscape’s browser while cashing in on Java’s popularity, was destined to go from niche language to joining the ranks of the major programming languages. And what do you know, it has. 

Yegge, being the kind of person who works at the tech giants, the companies out to change the world, is an optimist, in both the aforementioned senses. He is still blogging, and still making bold predictions, but today, unsurprisingly, what he is really excited about is AI. No longer is he writing about whatever programming language catches his eye, because with the advent of coding agents, he is ready to put the business of writing code behind him, and let the agents do the coding from here on out. He even co-wrote his first book on the subject, aptly titled Vibe Coding

That much is not unique to him, of course, but his recent blogging output shows that he is looking beyond simply having all the code generated by agents, to having agents managing the whole process of software development. Basically, he took a look at the rapid improvements in LLMs and the tooling making them usable for coding, and said, if I can ask an agent to implement features for me, why not also have a management-level agent handling the tasking for a group of worker bee agents? Why not a whole agent orchestration system? And for that matter, why not an orchestration system orchestrator? 

And not only is he theorizing about these things, but he is building them, with Gas Town being the current incarnation of this ambition. The vision he is pursuing is a code factory, with swarms of agents churning out code around the clock, with humans setting the goals and checking on progress but otherwise uninvolved. Being the optimist that he is, he believes that within the year, we will all be developers, everyone being able to conjure up the software they need when they need it. Does this mean that we will all be the CEO of our own team of agents, giving direction and verifying the results? Or will we be more like assembly line factory workers, with your only requirement being a final check on the products of the LLMs before they go out the door?

Clearly this is a very different world from the one in which I am sitting in front of a screen in intense concentration, trying to untangle some hairy coding problem. If this is indeed the new world we are heading for, in which software is forged in agentic furnaces rather than painstakingly typed out by humans, and at this point it is pretty clearly the case, then much that was once settled about how software is developed will need to be reconsidered.

While Yegge is sometimes prescient, he is also at times given to flights of fancy. Which is fine, I’m not looking for an infallible prophet, but it does mean that you have to take what he says with a grain or two of salt. For example, he reports of Gas Town that the LLMs tell him that they like using it. But then, aren’t they trained to be agreeable, to be willing to go along with whatever you present to them? 

Where Does That Leave Us?

I am at the point in my career where my job is not primarily to be churning out code, and so the fact that the churning will soon be done by agents is not immediately a concern. I don’t mind the idea that I will be able to translate thoughts into code much quicker than was ever possible before. I don’t mind the idea of not having to keep track of all the thousands of details about APIs and platforms and frameworks and libraries that are involved in any substantial development effort. I’ve never worked on a project in which there wasn’t much more to do than there would ever be time for, and if agentic coding means that we can make some real progress towards moving that needle, that is not an unwelcome change. 

But I am under no illusions that I am free and clear from having my life “disrupted” by AI. Things are changing at such a fundamental level that prediction is difficult. We are right now on the edge of the future, where much change appears imminent, and it is hard to know where you stand or will stand even in the coming months. So while I am not against the idea that this is simply what software development looks like from here on out, I have some concerns. 

These concerns are admittedly based on my narrow and self-interested point of view, and I am well aware they are not the most pressing when viewing the phenomenon through a wider lens. But others in a similar situation may be able to sympathize.

AI, the Universal Abstraction

Something I have loved about working in tech is that there is always more to learn, always new areas to explore, always a tool to download and try out. You don’t start from scratch every day like an LLM clearing its context window, but there are so many situations possible on any software project that encountering some aspect that requires you to get your head around something new to you, whether a new concept or simply a new function signature, is a common experience. Really, it is the blessing and the curse of programming: there is always something new to learn, and at the same time you never know enough.

And that is not going to change, but now it is not simply a matter of adapting to a new technology, even in the case of a technology of vast complexity like Kubernetes. Instead, AI is a layer of abstraction over basically everything at once. The code is generated by AI agents, the PR for the feature was written by agents, and the code uses an SDK for calling AI agents. AI is now the mediator between us and all of the technologies we use.

Token Economics

It used to be that you wanted to get started with programming, you could just download and install a Python interpreter, which would run just fine on the cheapest laptop, fire it up and start typing out commands. No need to sign up for anything, no need to buy a subscription or even create an account with any provider. That is how I started out with exploring programming. And you can still do that, nothing has really changed there, but what would be the point when an LLM can churn out all that code with minimal cost?

With agents, it is a pay-to-play model. You get signed up with one provider or another and start exchanging dollars for tokens. And the more dollars you have, the more tokens you have access to. Naturally, models will get more compact and efficient. They will cost less and be able to run on more low-powered devices. Eventually, there may be a set of models that are standard issue with any consumer device. Still, this is a very different world compared to when there was almost nothing but an internet connection standing between you and getting started writing code.

Then there is the fact that your output is basically proportional to your token consumption. And in a world in which you have AI servants ready to go at any moment, why are you not spending every waking moment putting them to work? Even Yegge, for all of his enthusiasm for agentic coding, has in a recent post acknowledged that this can be draining. It would take a pretty clueless manager to think that developer productivity can be measured by lines of code, but it may not be so obvious when it comes to token consumption per hour.  

The Joy of Code for Code’s Sake

Something I found attractive on in my early programming days was the idea that code was meant to be read by a human first, and executed by a computer only secondarily. This is a nice thought, and naturally the reality of working in the software industry is much more about getting something functional out the door than pouring your soul into a masterpiece. Nevertheless, there was some room for romanticization of what programming could be, which now seems to be something that will soon be lost to time, when most code may get little more than a quick glance over by a human before being shipped. 

The ultimate purpose of any program is to accomplish some goal with a tool specialized for that purpose, the general-purpose computing machine, but for many of us who do this for a paycheck also just enjoy fiddling around with technology, trying out ideas, seeing what you can get it to do. Now you can just ask for what you want to see and have it delivered. Still, part of what we enjoyed was learning all the little details, gaining competence at a specific programming language, being able to say I know X or Y. There is nothing stopping you from learning a programming language if you are interested, just that now your job as a developer and your interest in the technologies used in that development no longer have the intrinsic relationship that they once had. 

Writing code is fun, but so is reading and writing about code, something that many of us did daily. If we are not writing code ourselves, is there any reason to put code listings in blogs and books? Will it still have a purpose, if for no other reason than to train the next generation of models on? Will corporations start paying to have their technologies included in tomorrow’s models, ending the days in which programming languages caught on by word of mouth?

Conclusion

I am well aware that these concerns are being viewed through my limited lens as a developer with the advantage of years of experience, and that someone who is just starting out on a path to becoming a software developer will have much more pressing concerns than whether writing code is no longer considered a craft. And it is bigger than just code wrangling, with everyone who works with digital artifacts being faced with major changes in their industry and possibly their livelihood.

I suppose it is inevitable that if you do something long enough, you will see it change, even change into something unrecognizable. And there is no reason why software development should be exempt. And maybe the above-mentioned concerns are unfounded. Things will change, but people may find ways to incorporate these changes into their lives and workplaces, and there is no point in catastrophizing. 

On the other hand, some are predicting that this is the year in which AI reaches escape velocity and there is no question of us mere humans ever being able to catch up. Normally change happens at a pace such that we notice them without feeling like they are an asteroid hurdling towards us. Rarely has so much been anticipated in such a short time. If nothing else, it will be fascinating to watch it unfold, to see who is vindicated, how different to the world looks by the end of the year, and especially what the unintended side effects are.