Thoughts on using LLMs to code

I don’t currently use LLMs to code. However, I see value in taking things learned from an LLM coding tool such as Claude Code, and building something that is more useful.

I’ve tried using LLMs to generate code as a way of understanding their capabilities. I think they do a great job of generating technically correct code that provides short term value. However, I don’t think they are effective at generating a UI because the quality is subjective based on user preferences.

However, I don’t think they are at the point where they are reliable enough to be used for a medium to large codebase without human review.

When thinking about using LLMs or some other AI tool to generate code, here are two things I am looking for.

  • Output quality can be objectively defined by a numerical value.
  • Code output that does not have to be manually reviewed by a person.

With these two criteria in mind, I think the workflow of using LLM tools to write code and then manually reviewing the code is not effective.

First of all, information overload is a major challenge right now. Having to review additional code adds to the overload. LLMs can also generate code at a very fast pace, and reviewing additional code adds to the overload.

Also manually reviewing LLM generated code may not be useful. People including myself do not enjoy doing code reviews. Getting code change requests reviewed was a consistent problem for developers at the past several tech jobs I had. I have also seen open source projects where there were dozens or even hundreds of change requests waiting to be reviewed. Some of them were open for more than a year.

Also, source code quality isn’t an entirely objective measurement. It is true that source code determines of a program runs without bugs. However, source code also has subjective measurements. Different people can format code in different ways because of preferences, and equivalent logic can be implemented in multiple ways.

If an AI tool is being used to write code, I think it is best for someone to look at the user-facing output and not pay attention to the generated code. In this case, an effective AI tool would save time and reduce the amount of information someone has to process. If an LLM is used to generate code.

I think vibe coding is a better path forward. It doesn’t address the challenges with UI output not being objectively measurable and large codebases are probably going to be a challenge. However, I think it is an improvement over generating code with an LLM and reviewing it.