Working with AI
I build real software with these things daily, which is a different activity from having opinions about them. What follows is what I have actually found, including the parts that are less flattering than the marketing.
Claude
The one I reach for when the task is large and structural: refactors that span a dozen files, designing a module before writing it, or working through why something fails only in a sandbox. It holds a long context without losing the thread, and it will argue with a bad premise instead of cheerfully implementing it, which is worth more than raw speed.
Used agentically it will happily run the tests, read the failure and fix the cause. The failure mode to watch is confident momentum — it is much better at doing what you asked than at stopping to ask whether you should.
GitHub Copilot
Best at the thing it was named for: completing the line you were already going to write. In a codebase with strong internal conventions it is close to telepathic, because the patterns are right there in the buffer.
It is weakest exactly where the code is unusual. It will confidently complete towards the common idiom rather than the correct one, which is how you end up with a plausible call to a function that does not exist.
ChatGPT
The rubber duck that answers. Good for unfamiliar territory, for "what is this error actually telling me", and for talking through an approach before committing to it. Less integrated into the editing loop than the other two, which sometimes makes it the better choice — stepping out of the code is occasionally the whole point.
What actually changed
- The blank page stopped being expensive. A first draft of anything is now minutes.
- Reading unfamiliar code got dramatically faster — explain-this-to-me at scale.
- Tests get written, because the tedium argument for skipping them has evaporated.
- Prototypes that were never worth the weekend now get built on a Tuesday.