The reason people who hate CSS simultaneously don't think it is a programming language is because they never moved past the piecemeal "add color to thing, add height to other thing" approach. When you start dealing in rules/constraints, forging *algorithms* that respond to contexts... then you are really writing CSS. And really programming.