For the record, not all agentic coding is “vibe coding”. It is possible to do real engineering with an LLM.
In the same way the advent of the compiler helped us go from high-level human-readable formal language to low-level machine-readable formal language, an LLM helps us go from high-level natural language to high-level human-readable formal language. The distinction between vibing and engineering is how much intention you have about what the tool spits out the other side.
Vibing says “all I have is an input, I don’t know what the output should be, so I’m not even going to look at it”. Engineering says “I have an intended output in my head, and I’m using whatever tool will reliably create my intention the fastest”.
Trying to understand where you might be going with this. Is the implication that non-deterministic/stochastic algorithms have no practical use in engineering?
No, they have a place where stochastic algorithms are necessary. For writing a hello world application, no stochastic algorithm is necessary. Comparing compilers with LLMs is comparing apples with oranges.
I think it will become more apparent over time. But consider that the practice of software engineering is a stochastic process. Give 10 different engineers the same goal, and you’ll get 10 different solutions.
If a SW dev applicant gives a 20-file generated output for a 20-line assessment problem and can’t explain single lines of “their” code, either what they should be doing or why “they” had written it, it’s gonna be a no fron me, dawg. A standard problem might have different solutions, but fixing the issue of the day to the satisfaction of a rabidly vocal customer base might have one at most, and it will change multiple times on a whim.
So the LLM might have helped them cheat their way to an MSc, but there’s no cheating your way through real life.
Unfortunately it is the nature of the anti-coding-LLM debate that people who never wrote a line of assembly language, and never in their lives wrote a line of code that wouldn’t be run in a managed runtime of some kind, now think they’re the Masters of the Coding Universe and are qualified to dictate what are the Right Tools and the Wrong Tools to be a Real Programmer™.
Fortunately, as you rightly point out we’ve seen this dance a hundred times before. This too shall pass.
Exactly. Vibe coding is horrible in the wrong hands, but a skilled programmer can utilise it to carry out boring tasks.
If you’re still learning to code, you can’t evaluate the quality of the output, which will result in wild goose chases, wasted hours and tangled low quality scribble code. If you can find and fix the mistakes, you can actually make certain tasks go much faster. Also, don’t let an LLM write more than 20-50 lines at a time. Finding mistakes in longer segments gets very tricky.
If you have a plan in your head, you can request short segments like that. If you let the LLM take care of everything, it’s just going to dump 200 lines, and then you’ll need to rewrite most of it by hand. Gradual step by step approach works well, but it requires constant oversight.
If producing quality code no longer requires skilled programmers, you’re right. As it stands, LLMs produce very raw code that absolutely requires lots of human oversight to qualify as functional.
I am convinced most of the people who hate LLM Assisted coding are all the dicks from Stack Overflow who are pissy that everyone found a better resource to ask questions against.
Cool idea but man I won’t be touching that with a ten foot pole.
Isn’t it obvious?
I vibe coded once and after I saw the generated code, I will not let anything like that on my home network.
For the record, not all agentic coding is “vibe coding”. It is possible to do real engineering with an LLM.
In the same way the advent of the compiler helped us go from high-level human-readable formal language to low-level machine-readable formal language, an LLM helps us go from high-level natural language to high-level human-readable formal language. The distinction between vibing and engineering is how much intention you have about what the tool spits out the other side.
Vibing says “all I have is an input, I don’t know what the output should be, so I’m not even going to look at it”. Engineering says “I have an intended output in my head, and I’m using whatever tool will reliably create my intention the fastest”.
A compiler is deterministic. LLMs are by definition nondeterministic.
Trying to understand where you might be going with this. Is the implication that non-deterministic/stochastic algorithms have no practical use in engineering?
No, they have a place where stochastic algorithms are necessary. For writing a hello world application, no stochastic algorithm is necessary. Comparing compilers with LLMs is comparing apples with oranges.
I think it will become more apparent over time. But consider that the practice of software engineering is a stochastic process. Give 10 different engineers the same goal, and you’ll get 10 different solutions.
At that rate me walking to the store is stochastic because a grand piano could fall on my head. We have to draw the line at some logical point.
If a SW dev applicant gives a 20-file generated output for a 20-line assessment problem and can’t explain single lines of “their” code, either what they should be doing or why “they” had written it, it’s gonna be a no fron me, dawg. A standard problem might have different solutions, but fixing the issue of the day to the satisfaction of a rabidly vocal customer base might have one at most, and it will change multiple times on a whim.
So the LLM might have helped them cheat their way to an MSc, but there’s no cheating your way through real life.
Unfortunately it is the nature of the anti-coding-LLM debate that people who never wrote a line of assembly language, and never in their lives wrote a line of code that wouldn’t be run in a managed runtime of some kind, now think they’re the Masters of the Coding Universe and are qualified to dictate what are the Right Tools and the Wrong Tools to be a Real Programmer™.
Fortunately, as you rightly point out we’ve seen this dance a hundred times before. This too shall pass.
Exactly. Vibe coding is horrible in the wrong hands, but a skilled programmer can utilise it to carry out boring tasks.
If you’re still learning to code, you can’t evaluate the quality of the output, which will result in wild goose chases, wasted hours and tangled low quality scribble code. If you can find and fix the mistakes, you can actually make certain tasks go much faster. Also, don’t let an LLM write more than 20-50 lines at a time. Finding mistakes in longer segments gets very tricky.
If you have a plan in your head, you can request short segments like that. If you let the LLM take care of everything, it’s just going to dump 200 lines, and then you’ll need to rewrite most of it by hand. Gradual step by step approach works well, but it requires constant oversight.
If things continue as they are, eventually there will be no more skilled programmers.
If producing quality code no longer requires skilled programmers, you’re right. As it stands, LLMs produce very raw code that absolutely requires lots of human oversight to qualify as functional.
I am convinced most of the people who hate LLM Assisted coding are all the dicks from Stack Overflow who are pissy that everyone found a better resource to ask questions against.