For simple things, occasionally!
For more complex things, usually not, but I write working code. LLMs will sometimes write working code, sometimes not.
No, you don’t because there’s no such thing.
```python
print("hello world!")
```
runs exceptionally well. Bullet-proof in all use cases I've needed it.
No. No code is “perfect”.
1. Since when do people write code solely for the purpose of earning a living?
2. Yes. I agree that with complex programs, perfection doesn't exist -- mostly a composition paradox issue though, IMO!
It doesn't always write perfect code on a first pass but nor do you, and it's amazing at understanding any issues it may encounter, even very low level ones. I don't think there's anything I can do that it can't now. There is a learning curve to working well with LLMs, but once you get there you'll be producing high quality code faster than you can imagine.
Part of me wishes they weren't so good. I enjoy(ed?) the process of working through problems and it does mean you might no longer have a perfect mental model of your code. But I do also enjoy being able to build things well and fast.
I am not writing perfect code either.
I don't care whether the LLM can solve this or that mathematical previously thought unsolvable theorem. What I do care about is can it write good, maintainable code. And every new release of frontier models - they get better at it.
Good output depends on good input (prompt), and a good set of available tools the model can use to verify their work. If given this, nowadays really you need to try to get the model to output garbage.