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”.
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.
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.
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.
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.
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”.
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.
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.
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.
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.