I think there are (at least) two types of programmer - I am the kind of programmer who wants everything done right. Others don't care as long as it works and the boss is happy.
I suspect that the type of programmer who enjoys vibe coding is the latter. For me it's pretty tiring to explain everything in excruciating detail, it's often easier to just write the code myself rather than explain in English how to write it.
It feels like I am just doing the hard part of programming all the time - deciding how the app should work and how the code should be structured etc, and I never get those breaks where I just implement my plan.
I suspect the difference lies in people who think in code versus people who translate their thoughts into code
I think in code and programming concepts when I am writing software . I don't really know how to explain that, but I don't often feel like there is any friction between my thoughts and the code I make
I think that many coders do not have this. They have an extra "translation" step that introduces friction into their workflow
I don't experience this friction, so LLM coding introduces new friction that I don't like
They do experience this friction, so LLM coding doesn't introduce new friction for them, it may transform their previous friction into a new form that is easier for them to navigate
I don't know. Maybe I'm talking out my ass, this is just a random theory based on no real evidence
It's not really that I think in code. It's more like code is as much as a language to me as writing english, or holding the pencil to draw something. I got a change request, or I read something from the docs, and the the mental concept I have realign itself to the new knowledge. Getting code out is always effortless. There's no difference between
return the list of names of all the books that have the fantasy tag
This is it for me as well. It comes down to which is quicker to write. If I need an exact solution or implementation, then I just write it, because the code is significantly more efficient to describe the problem in than in plain english. An exception being visual things like plots, if we just care about a way to get to a plot, vague english is fine and likely less effort than writing code.
i.e. function to calculate things, just write it; want to plot some data, vibe it. I can see immediatly if its not quite right and in a line can ask for the change i needed, zero cognitive effort required to fix issue, and hey presto, we have what we want.
i think this stems from the fact natural language is generally quite inefficent for logical statements / arguments / instructions but can gather visual ideas far more efficiently than code can.
I suspect that the type of programmer who enjoys vibe coding is the latter. For me it's pretty tiring to explain everything in excruciating detail, it's often easier to just write the code myself rather than explain in English how to write it.
It feels like I am just doing the hard part of programming all the time - deciding how the app should work and how the code should be structured etc, and I never get those breaks where I just implement my plan.