Is It Going To Be a Forever Sloptember?

In the age of AI, do you still need to write code to reverse a binary tree?

Many legendary figures in tech have expressed their dismay at where the industry is going since the introduction of “vibe coding.” Rob Pike recently lamented that coding as a rigorous exercise is gone. And Geohot said the eternal Sloptember is here: AI slop produces sloppy software.

And I share their sentiment: AI is creating software that contradicts the tradition of computer science: mental rigor, math-like precision, and an exercise for the mind. As computer science students, we all went through discrete mathematics training, understanding sorting algorithms and big-O analysis.

But the trend is shifting: now you just type your desires in English and you get your working website like a Christmas miracle.

Many people are complaining that software engineering is over. These are great, smart people who made their names when computer science was considered synonymous with rigor and mathematical thinking. You should understand their concern when we’re now basically hallucinating software based on statistical distributions.

Grady Booch offers a different voice in this debate, and he has nailed it perfectly: software has always been operating at rising levels of abstraction. We want to build more capable things with more powerful primitives: be it programming languages, frameworks, libraries, etc. The same way we don’t write assembly code by hand anymore.

If you still feel uncertain, there’s another very good piece from Martin Fowler on “what is code?” that captures perfectly how software engineering has never been about writing code, but about constructing a mental model of the problem.

AI has enabled us to more efficiently create software and realize ideas, and it assists engineering in every field.

My bold prediction is that we’re still in the very early days of AI vibe-coding. And the industry is still going to mature. We’ll see a more formalized approach to creating software with English, including bringing more reinforcement around testing, security, QA, etc.

And here’s a thought experiment: imagine humanity’s next Holy Grail tech achievement, let’s say going to Mars. How’s AI going to be a part of it?

Two things we can be certain of:

  • We cannot go to Mars without the help of AI. We must always welcome new ideas and more powerful systems in building software. A rising level of abstraction is going to free us from the chores of building mundane tasks and help us get to results much faster.
  • We will always need rigorous thinking and training. AI alone isn’t going to take us to Mars. We’re not sending space shuttles on vibe-coded software.

With this in mind, we can paint a better picture for the future of software engineering with AI.

Back to the original point, the pioneers in software have a good point: there’s a dangerous chasm in bringing up a new generation of software engineers. On one side, they’re quick to find an easy way out, doing their homework with ChatGPT and finishing take-home exercises with AI. They don’t go through the mental training of a traditional software engineer anymore. On the other hand, the industry is quick to treat AI vibe-coding as a money-saving approach to please shareholders. And they stop giving younger engineers the apprenticeship they need. This shortsightedness is going to cost us dearly. And that’s the real worry here.

Software was never without faults. No, far from it. And we keep evolving it with easier access and more capability. And we should work to democratize the capability. I’m still optimistic that the industry is going to find a way out.