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?
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.
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.
No actually. It’s because I ran pyright and there are nearly 1000 type errors. It’s because your LLM decided to setattr and getattr all over these Pydantic models. It’s because for some reason you’re using protocols where an ABC would make more sense. It’s because I told you all this on your last PR, you fixed it that time for the most part, then you’re doing the same thing again on this PR. And it’s because now I have to open a PR that conflicts with one of the 200 files your PR touched fixing all the problems your LLM introduced. All this because you refused to read the docs for two packages and follow the examples.
Look, I’m not calling you out specifically. I’m just ranting about my day job.
littleomid@feddit.org 5 days ago
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.
teawrecks@sopuli.xyz 4 days ago
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”.
littleomid@feddit.org 4 days ago
A compiler is deterministic. LLMs are by definition nondeterministic.
teawrecks@sopuli.xyz 4 days ago
Trying to understand where you might be going with this. Is the implication that non-deterministic/stochastic algorithms have no practical use in engineering?
timwa@lemmy.snowgoons.ro 4 days ago
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.
TranquilTurbulence@lemmy.zip 3 days ago
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.
bigbangdangler@reddthat.com 3 days ago
If things continue as they are, eventually there will be no more skilled programmers.
RamenJunkie@midwest.social 4 days ago
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.
TehPers@beehaw.org 3 days ago
No actually. It’s because I ran
pyrightand there are nearly 1000 type errors. It’s because your LLM decided tosetattrandgetattrall over these Pydantic models. It’s because for some reason you’re using protocols where an ABC would make more sense. It’s because I told you all this on your last PR, you fixed it that time for the most part, then you’re doing the same thing again on this PR. And it’s because now I have to open a PR that conflicts with one of the 200 files your PR touched fixing all the problems your LLM introduced. All this because you refused to read the docs for two packages and follow the examples.Look, I’m not calling you out specifically. I’m just ranting about my day job.