81 Comments
User's avatar
Dakara's avatar

We used to call indeterminate behavior bugs and paid people large sums of money to both fix them and attempt to build systems without them.

Now, they are trying to convince us indeterminate behavior is simply the new way of doing things. Just vibe code it. This is ludicrous.

hugh's avatar

As a software engineer with over a decade of experience working in startups and big tech I find all of this quite funny now. No one in industry is taking this seriously besides the VCs.

Saying AI isn’t ready to replace software developers because it’s not good at debugging is hilariously ignorant. Software engineering is 99% debugging, especially at post PMF companies with real revenue.

Any JR dev can make something demo-able that will sometimes impress a naive exec with a sales or finance background, but those prototypes take months or even years of hard work to scale and 99% of the work is debugging.

It’ll be fun to watch all these Agentic Bros go to zero!

Gary Marcus's avatar

and let’s not forget debugging down the road, aka maintenance…

Patrick's avatar

I am a senior engineer in a big tech company and I would go even one step further.

80% of my time goes into tasks like: find the right systems that are responsible for a feature I would like to modify, figure out which change is required to implement the new functionality, which side effects will it have and how to prevent any risk from this change plus the operating of the systems once they are in production, looking at metrics and figuring out where unusual spikes come from etc

Actual code writing is not even 20% of my time.

Earl Boebert's avatar

I would respectfully submit that the problem is more basic than you describe.

I think the problem isn't that AI agents can't debug, the problem is that they can't read code and understand what it means.

The next step, comparing the meaning of the code to some statement or notion of intent (the spec) is beyond them because the first step is beyond them.

But boy, they can sure cosplay reading for meaning by doing pattern recognition on variable names, quoted strings, and comments.

Geoff Anderson's avatar

Not a coder here, but I have a degree in physics, from the 1980's so I learned to program. Mostly Fortran and Matlab. (and yeah, I picked up some python, as it is akin to Matlab)

Once I interviewed at a company, and the engineering director and his three SW Engineers made the case that their team was the best because they were all physicists.

Look, my code ran, but I would spend a lot of time to groom the data instead of making the code robust. To call it janky would be generous.

You DO NOT WANT physicists to write production code. EVER.

Larry Jewett's avatar

Reminds me of the “Numerical Recipes” books which were written by physicists.

The code worked but they did things like set variables equal to their inverse part way through which made following the “logic” difficult( to say the least)

Then again, I think that was intended for scientists and not really for “production code”.

Larry Jewett's avatar

Full disclosure: I worked as a programmer on “production code” but got my degree in physics.

I have no excuse so won’t make one.

Larry Jewett's avatar

But to push back a bit, the best programmers I ever worked with did not have CS degrees

Geoff Anderson's avatar

No argument from me there. I have worked with many great programmers in various engineering teams that never went to college. They built their skills through a lot of work, and built a portfolio of work to be proud of.

When I was in the scientific instrumentation world, one of the absolute best applications scientists I worked with ever had a degree in History.

Larry Jewett's avatar

LLMs, on the other hand, are often hysterians.

Larry Jewett's avatar

I think that is not unrelated to the topic of this post.

At its core, programming is about problem solving, not “coding”.

And lots of people from scientific and engineering disciplines other than CS are very good at solving problems.

Larry Jewett's avatar

One guy actually had a philosophy degree

Larry Jewett's avatar

Which is not as surprising as it might seem to some.

Philosophy is all about clearly defining problems and logically approaching their solution, which are key elements of good programming.

Larry Jewett's avatar

I’ve done “unorthodox” things but never that particular one.

I loved those books , not incidentally.

Larry Jewett's avatar

I used to read them for fun

Larry Jewett's avatar

I’m sure all the LLMs have also “read” (ingested) them (although probably not for fun)

Tim Koors's avatar

It took some 3 billion years for life and intelligent lifeforms to evolve so my gut feeling is that we might be waiting a little longer for even a simple Agent AI than a month or two or even a year or two. But hype fuels speculative investment and makes some people obscenely rich.

Franklin S.'s avatar

Vibe coding isn't coding. It's plagiarism. If there's a working app to copy, sure it can steal that.

Ben P's avatar

There's a possibly apocryphal quote about Glenn Beck back from when he was on Fox News that's appropo here. It's said that Roger Ailes, after watching yet another "America is on the verge of destruction" episode, told him:

"Glenn, the problem with constantly predicting the end of the world is that, eventually, people expect you to deliver."

This is how the AI hype cycle eventually does itself in. The totally world-changing, disruptive AI that replaces the need for humans in entire industries is always *just around the corner*. Likewise the self-driving cars, and of course the AGI.

But when we get to the corner, it's not there. Whoops! We meant the *next* corner.

Eventually, the hype undermines itself.

Matt Kolbuc's avatar

Yeah, I'm doing a whole post / podcast on this now. I'm blind, so would absolutely love these LLMs to actually work, but they just not there. They can write decent Rust code these days, but the the lack of basic common sense and intuition kills it for me.

For example, simple data processing job, little common sense and you would know only about 10MB of data needs to be in memory at one time. The code I get from various models just scoops up all $193GB of data and shoves it into memory crashing the machine. This type of thing is just never ending, requiring me to watch over the LLMs shoulder as if it's a 6yo I need to babysit every step of the way.

That's not to mention the contextual awareness, no reasoned judgement from a human centric view, the constant re-training due to lack of memory, constant missing of things it should pick up on but doesn't because pompts didn't fire the correct neurons, and so on. I just can't see how I would be able to trust these things to work autonomously on anything that's remotely mission critical.

Mike Hulbert's avatar

Thank you for sharing this. In manufacturing, this is called rolled throughput yield and is why six sigma reliability is so critical in complex manufacturing processes. I have been making this same point since the agent mania began. Although I think realistic business scenarios are probably 100 steps with 5% error rate. It still gets to a terrible result. I am bullish about using LLMs in coding, debugging and testing - guided by an engineer. But the main benefit is not from an army of agents doing existing human roles which entail information loss and coordination challenges. The real benefit is collapsing a large team into a few true full stack engineers who work directly with SMEs to build capabilities quickly and reliably.

David Hsing's avatar

...Not to mention "writing" code that's unsafe and easily hacked. https://davidhsing.substack.com/p/ai-replacing-coders-not-so-fast

S.S.W.(ahiyantra)'s avatar

In my few years of experience as a developer, debugging isn't just a big part of coding. It's the most significant part of coding by a wide margin. Everything else feels easy in comparison. Wrestling with errors is an unavoidable part of the routine tasks.

Pramodh Mallipatna's avatar

In addition to what’s in the above article, another challenge for AI Agents and Enterprise AI to take off is the economics of it - it’s still too expensive

I have done some analysis

https://open.substack.com/pub/pramodhmallipatna/p/the-token-economy

I also wrote this new article on Innovation’s Speed Trap that talks about another dimension to this

https://open.substack.com/pub/pramodhmallipatna/p/innovations-speed-trap-ais-adoption

Lesia's avatar

Don't know about debugging, but tried it when I had to use a new version of one well known library in my code, the version was released back in 2021 (so there was plenty of time and GitHub code out there to train upon). I decided to check whether it is as good as some people advertise it to be. Well, ChatGPT kept making up methods and stuff so it was simply useless. Debugging can be much much more complex than following documentation to write some boilerplate code that plugs in a library.

Rob Wise's avatar

My experience vibe coding using tools like augment code , roo code and the like is that in a BIG project they get lost in the weeds. When deep into the minuta of testing, debugging and reworking and testing and creating new little routines to do specific little debug tests etc... they lose the BIG picture and often sugest whats next which is way off the beaten track you want to travel. I have taken to asking the LLM to create a MASTER PLAN I am up to version 9 in my current development, which I use another LLM to help assess and develop along with my coding LLM and then we have a next_steps9a -- z document for the immediate road ahead and within that there are often documents fix_the_thing.md then once the thing is fixed I ask the LLM to return to the next_steps doc and pick up the road again and then then back to the Master plan - it seems to keep us on track a lot better now.

This vibe coding is hard work :)

Franklin S.'s avatar

This a very self-selecting group, and Gary's commenters are a lot better than many substacks.

Bruce Olsen's avatar

We're all bots, that's why.

Larry Jewett's avatar

Speak for yourself.

Some of us are cyborgs

Bruce Olsen's avatar

Aren't you splitting hairs?

David Crouch's avatar

This reminds me of working at the precursor of Accenture in the 1980s. Their model was a higher literally any college graduate and threw a Boot Camp turn them into a programmer. But the amount of support they needed to make that happen in terms of senior people on project teams and detailed methodology was enormous. They had a very arrogant attitude towards programming like it was something similar to hauling drywall that could be trained very quickly and then after one year you had nothing more to learn as a programmer.

Bruce Olsen's avatar

Ah, yes: Arthur Andersen.

I was a freelance database design consultant to Amdahl in Sunnyvale from 1987 to 1989, and Arthur provided boatloads of those people. They were precisely as you describe.

Amdahl eventually threw them out and finished the system for about 10% of the Arthur cost.

David Crouch's avatar

But they made boatloads of dough. Charging $125 per hour more than 40 years ago for green newbies took some “selling skill”

Bruce Olsen's avatar

That was a big factor in their defenestration. I happened to be a major expert in some tech Amdahl seriously needed and got only $135. The eventual team was all freelancers and the best non-vendor group I've worked with, except for the DBA who was starting and running a restaurant when everyone thought he was working. The rest of the DBA team found out and had lunch there one day; he didn't last much longer.

David Crouch's avatar

How was the restaurant? 😊

Bruce Olsen's avatar

It wasn't bad for Cantonese.

We were just happy we didn't need to work with him any longer.

Larry Jewett's avatar

So, effectively, the individual was promoted out of engineering?

Bruce Cohen's avatar

I’ve commented before on my negative experiences trying to get Microsoft’s Copilot to generate good code for simple, well understood tasks. It’s clear that at least that LLM is not ready to be an adequate software assistant (remember when LispMachines were going to be “software apprentices”?).

But I’ve a task now involving mating a legacy C++ template metaprogramming library for Geometric Algebra to a Swift App to generate and display geometric objects. The upshot is I need to create an include file that maps about 400 Swift calls to their respective C++ inline functions. Oh, talk about boilerplate! So we’ll see if Cursor is up to the job. Watch this space.