Hacker News new | ask | show | jobs
by nomel 6 days ago
I've always noticed, within any subject involving tools, there are people who like the tools, and some people who like to use the tools to do something else.

With programming, I've always been in the later: it's a tool that allows me to do what I actually love, which is problem solving, system level thinking, and providing some nice solution to that problem, that happens to be through software.

So, I have an absolute blast with AI, because it helps do the more boring bits. And, seeing my non-programming colleagues get excited to see their vibe coded ideas become reality has been so much fun.

I'm genuinely curious to hear the perspective of someone anti-AI, who works in software. Perhaps the impending doom/skill shift of our profession?

5 comments

I'm not anti-AI but something I've been thinking about is the discipline it requires. As you said, it's a tool that allows you to rename a variable name on one end and do complete vibe coding on the other end. Developers may say that we should stay somewhere left on that spectrum, because that's where human's are more involved.

But developers also say good practices should be followed when talking to each other, and while some may do, reality is often very different.

It requires discipline, which varies a lot between developers, between projects, current mood, and so on.

In the beginning you might be careful doing small changes, but after a while you might get more tempted to accept the output for what it is, because ultimately that's much easier.

So the way I see it; the left side is harder work and potentially bigger but delayed dopamine hits, the right side is quick dopamine hits. How do we (at least those who struggle with discipline) resist just slipping to the right?

I started out carefully myself and slipped more into vibe coding, but I don't feel particularly proud of it for some reason.

> It requires discipline, which varies a lot between developers, between projects, current mood, and so on.

In the beginning you might be careful doing small changes, but after a while you might get more tempted to accept the output for what it is, because ultimately that's much easier.

Counterpoint: how is this any different from how things were pre-LLMs? I have seen, in the same codebase, some throughly well-written and tested PRs that read like Shakespeare and some of the laziest slop that even no LLM would ever write because humans have an unlimited capacity for laziness.

You catch the bad stuff through oversight, process, automated and manual checks, and the ultimate threat that your job depends on your ability to deliver so you better allocate at least enough energy into this so that you can ship moderately working code.

I am anti-vibe coding if that meets your criteria?

Reviewing vibe-coded PRs and features has been utterly exhausting over the past few months.

I work on critical, mature software - a small change in behaviour can mean data loss or non-compliance with regulations for our customers. The biggest problem with AI PRs is the sheer amount of churn, extra code and lack of intent with the PRs it generates.

The only way I can describe the latter is that an AI-only PR feels to me like a painting where everything is high detail - and you have to comb over each part before you understand why it's there because so much is superfluous. A well written human PR on the other hand, is painted such that your eye naturally follows the thought process of the author so you can just nod along during the review, as if the solution was obvious.

Also when I'm _using_ the agent; at least 50 percent of my time is spent telling it to stop with it's approach so it doesn't go down a useless rabbit hole and waste tokens.

> The biggest problem with AI PRs is the sheer amount of churn, extra code and lack of intent with the PRs it generates.

But this isn't an LLM problem; this is a problem of undisciplined engineers who feel they need to cram extra stuff in a PR. If an engineer doesn't look at the output of the LLM and generate extra work then it's still on them, right?

> The only way I can describe the latter is that an AI-only PR feels to me like a painting where everything is high detail - and you have to comb over each part before you understand why it's there because so much is superfluous

This just indicates that the engineer doesn't know how to use the tool. Hell they can ask the LLM to split the work into focused PRs and Claude will be happy to do it and the results might no even be half bad.

> Also when I'm _using_ the agent; at least 50 percent of my time is spent telling it to stop with it's approach so it doesn't go down a useless rabbit hole and waste tokens.

If this is happening often then the tool is probably not fit for the job.

I don't believe so - it's not as though the original prompts asked for extra code churn (note that as soon as you look and edit the LLM code output extensively it ceases to be vibe coding, which I was talking about in my OP).

I'm not talking about extra feature s; I'm talking about for the same single feature the code is either convoulted because the algorithm is overly complicated or the abstractions are just wrong for the domain.

The PRs typically are already focused in that they address a single feature; or at least a single "usable" feature in a complex system which necessarily has a lot of connected parts and behaviors.

> then the tool is probably not fit for the job.

Perhaps; but with an LLM I haven't found which jobs it _does_ work for and which it doesn't. I already use planning mode extensively; and capture the major points, but then it makes a stupid decision mid implementation and just starts churning.

I started similarly with it. I'm of the opinion that its a tool that behaves like a tool - how well it works depends on who is using it and how.

I don't have a good analogy but the immediate one that comes to mind is treating AI like a junior developer that you're mentoring. If you know what you're doing you can iterate quickly; if you don't then its a whole other story.

Claude built me a Markdown editor - I designed it, set coding standards, etc. It coded it to my spec. The output is in my opinion not bad and is very usable (for me - I use it daily now). Probably would have cost me north of $50k to get a team of seasoned devs to build it to the current level of polish. https://github.com/emrul/md

> So, I have an absolute blast with AI, because it helps do the more boring bits.

So... you're vibing? Not looking at the code at all?

Personally, it would still bother me if some lazy bro hit a code-generator and people end up dead.

For context search, I find LLM quite useful... still wrong 20% of the time... but it has some utility.

Here is a thought experiment: If "AI" will eventually generate your work, than what actual value do you bring to the table? =3

I just really hate talking to the computer in human language.