> ... drawing a distinction between the two in clear-cut cases (such as HTML versus C).
If anything, declarative languages (or markup languages if you prefer) are a sub-category of programming languages. Imperative languages are another sub-category.
To me, a "programming language" is a language that allows me to express computations. Markup don't need any concept of computation, so I don't consider them programming languages.
If anything, declarative languages (or markup languages if you prefer) are a sub-category of programming languages. Imperative languages are another sub-category.