Hacker News new | ask | show | jobs
by coreyoconnor 4 days ago
Everytime i read one of these vibe coded projects i wonder: Is AI capable of building well structured programs? Designs with strong separation of concerns. Clean code. Short, well defined functions.

This is not how I'd design much of this. Does that matter? AI and whatever training data used seems to differ.

3 comments

I thought one of the tenets of vibe coding was letting go of code quality, perhaps even to the point of not looking at the code?
The lower the code quality and less coherent the design, the poorer the agent will perform over time as the project grows.

Pure vibe coding pretty much limits the max scope of your project to the capability of the agent, and if you're trying to make something real and maintainable, you'll always end up with something worse than the person who guides it at a lower level.

That being said, there are certainly going to be systemic/built in ways to have coding agents generate coherent architectures. Just it isn't really baked in right now.

Probably an ideal model with current tech is the main coding agent thread that implements things, and a secondary thread that constantly compacts/prunes and cleans up according to specific style rules.

Problem with doing both in same context via AGENTS.md is the LLM often won't adhere to all rules if it's overloaded with many competing instructions. But you can scope the code styling agent prompt tightly and get much higher focus and adherence.

That does defeat the claim that AI is intelligent IMO. I should not need to dance with instructions in order for the LLM to behave intelligently.
I've built very large structured programs with claude. Talking about the structure is indeed an important part of the exercise. It's also an important factor in success. Context is limited and separation of concerns is an essential part in the LLM being able to do it at all. The chunk of "what needs to be done" needs to be small enough for it to be able to recall and reason about. Bad architecture will result in spinning your wheels constantly changing spaghetti soup that never meets spec.

Building a CAD kernel one of the essential pieces in getting from vaguely working to closing an extremely large number of gaps was some rather strict separation of concerns – without it we were just stuck on perpetual rearchitecting switching from methodology to methodology opening new gaps with each attempt to close others.

Yes, you just need to tell it to do that. Before I start I go back and forth talking about the architecture and making design docs. If you start with good bones, things go much better than stepping through adding things and ideas ad hoc.
> Yes, you just need to tell it to do that.

Indeed. All you have to do is say “and make it good”, and it will make it good.

No, you need to tell it the architecture you want. Does anyone really believe you can just say "build the thing" and LLMs will somehow defeat Kolmogorov complexity or that they can read minds? What exactly are you trying to say? They are no good because they aren't magic?
They don't follow basic design principles. If i have to tell the ai every detail of basic design then... Well... I do not consider that very intelligent for a software dev.

I do use AI extensively and get it to spit out vaguely acceptable designs. But I'm doing the design. Even when i have another agent trying to simplify or such the design details are still me.

I don't think people understand how this runs in contrast to the claims of intelligence.