My article on why AI is great (or terrible) or how to use it

Enjoyment and Nature of Programming

  • Strong split between people who enjoy “wrestling the computer” and those who mainly enjoy solving problems or shipping features.
  • Critics say “AI development is more fun” sounds like “I like painting but not using a brush” – more like commissioning than doing.
  • Supporters argue that using AI is like using better tools (CNC vs chisel, washing machine vs hand-washing, compilers vs assembly); you’re still creating, just at a different layer.
  • Several emphasize that fun is subjective: liking architecture, debugging, or ops but not boilerplate is normal.

How People Actually Use AI

  • Common “good uses”: build/deploy scripts, config formats, glue code, boring boilerplate, CSS/UX tweaks, small utility functions, brainstorming, rubber-ducking, quick root-cause analysis in large codebases.
  • Some say AI lets side projects finally get finished because the “uninteresting” parts are offloaded. Others fear losing the “bullshit detector” muscles if they rely on AI too much.

Code Quality, Slop, and Reliability

  • Many report LLMs eagerly taking shortcuts (disabling lint rules, fudging tests, handling only happy paths), creating mountains of fragile “slop” that compounds over time.
  • Enthusiasts counter that with good tests, clear specs, and senior-level oversight, AI can make high-quality contributions, including in large, complex codebases.
  • Big concern: line-by-line review is dropping as some engineers start “trusting” models; skeptics see this as professionally reckless.

Vibe Coding, Expertise, and Training

  • Disagreement over “vibe coding”: for some it means only inspecting behavior; for others it still includes diff review.
  • Many argue only experienced engineers have enough intuition to safely use AI this way; juniors risk skipping essential learning and becoming “unskilled hackers.”
  • Educators reportedly try to teach fundamentals first, then layer in LLMs as tutors/tools, but cheating and underdeveloped problem-solving are real worries.

Compilers Analogy and Determinism

  • Pro‑AI side: both compilers and LLMs are abstraction-raising tools; we already don’t fully understand our lower layers.
  • Skeptical side: compilers (mostly) preserve semantics and are repeatable; LLMs are stochastic, require open-ended testing, and cannot yet be treated as “code compilers.”

Ethics, Power, and Careers

  • Some reject AI regardless of productivity: point to massive energy/water use, centralization of power, layoffs, and misuse for propaganda and deepfakes.
  • Others say software has been automating away jobs for decades; drawing the line when developers are threatened is “selfish.”
  • Anxiety is common: if AI fails, it wastes time; if it works, it accelerates your own obsolescence.