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.
@heydon I love this because it feels like a proper description of what CSS does but also it is not - and I say this as an artist primarily - how I think about visual elements. The hard part, for me, is grasping how images are constructed solely from constraints rather than a generative grammar. CSS and I have a very tense lovehate relationship I think