Most of my enjoyment of programming comes from the coolness of math, logic, and simulation. Most of my hatred of programming comes from the brittle, messy, confusing, uneven frameworks laid down before me by other programmers. My career consists of maybe 10-20% of the former. The rest is the latter. Consequently, I've really hated, and I mean hated, doing this for a job.
Another way to look at it is, just as in all other spheres, I enjoy the abstract intellectual part and hate the human part.
Out of interest why programming languages / frameworks do you use?
I can relate to your description, as it seems to be similar to my experience between back end development using Django / Python, which I found well put together and well thought out.
Compare that to front end Javascript frameworks, and (it may just be my lack of experience in JS) everything seems far more fragile, poorly documented, incomplete.
Another way to look at it is, just as in all other spheres, I enjoy the abstract intellectual part and hate the human part.