"There is a difference between being able to be good at something, and that thing being what you like to do."
That depends on the degree to which you like or dislike that thing. If you don't like something to the point that you can't stand to pursue the practice that would make you good, then you are not able to become good at it. If you aren't able to practice, then you aren't able to be good. Not everyone will, agreed, but nor can those who can't stand the necessary practice.
At one of the coffee shops local to me works a woman who was encouraged into programming as a career. She believed she could do it, did a BSc, worked as a dev for a year, hated it, now works at the coffee shop scratching her head about what to do. My last IT director had a similar experience. He became a business analyst after hating dev for two years, having become a dev by having the prescribed requirements. Programming simply is not for everyone, and telling those people to just practice ignores the fact that they couldn't do so and retain their sanity. I think it's fair that we don't expect people to forego their sanity, and therefore that they won't be able to practice, and therefore that they will never be good programmers.
If good programming requires practice, and some people cannot stand the practice, then they cannot be good programmers.
"Good programming ... everyone who likes programming or can stand to do the significant practice can do it."
"Crap programming ... everyone can do it."