C is okay except safety. Look at the CVE lists and they are still full of memory errors and it’s 2024.
The problem isn’t that good programmers can’t write good C code, though anyone can make a mistake. The problem is what happens as code ages, is worked on by other people, gets PRs merged, and so on. Bugs creep in and in an unsafe language nothing catches them.
C also makes string processing hellish, but that could be fixed with libraries and isn’t necessarily the fault of the language.