Comment by docmars

1 day ago

> "Users don’t care whether the code was written by AI or by hand, or which framework you used. They care that the product works."

1. Engineers should care about code quality so they can maintain it if their preferred AI providers are down or unavailable.

2. Code that's written well is easier for AI to navigate and modify.

3. Cognitive debt is real. I've been writing software for 20 years and without a doubt, I feel like my knowledge and edge are atrophying. This has been cited and confirmed by more than enough engineers who feel frustrated by this phenomenon.

4. Generating massive amounts of code significantly reduces accountability, making it impossible to review that code line-by-line unless you deliver your generated output in extremely small chunks (200-300 LOC per PR).

5. Since #4 is an objective reality, shipping code that hasn't been reviewed by a human is patently unethical, since the humans merging and deploying that code can't possibly know if there are lingering security holes or mishandling of sensitive information by their generated code.

6. One could say "well this is possible with hand-written code too", and they're right -- but the difference is, there was a human element in reviewing the code in good faith, rather than tossing thousands of LOC over a fence and telling their PAYING customers "good luck, hope it works!"

7. The other rebuttal is that tests and "guardrails" solve these problems. We all know that even the best test suite isn't foolproof. 100% coverage doesn't mean the tests are good, or will catch when something critical breaks.

8. AI guardrails are flaky at best: they're intended to be brief in order to save on context usage, but the more brief and numerous they are, the less accurate they'll be across a growing codebase. IME, many of the rules I've setup are obeyed by LLMs less than 100% of the time, which isn't enough to give me full confidence in them, because things will inevitably drift and fall through the cracks. Scale this to a team, and now you've got endless drift and disorder.

The arguments against AI have nothing to do with elegance, pretty code, formatting, or anything petty of the sort. It has everything to do with code quality and maintainability over time across teams of engineers who are accountable for their code, for products and services that people quite literally pay you for, trusting that what you're delivering them is stable, reliable, secure, and trustworthy.

If shipping speed is a higher priority than any of those, you have no business writing software to sell.

Did I miss anything?