I feel like the term "coding" should be reserved for writing code that will be compiled. Anything that's not compiled (but is still Turing complete) is "scripting". CSS, HTML, etc. is just "tagging".
I feel like the term "coding" should be reserved for writing code that will be compiled. Anything that's not compiled (but is still Turing complete) is "scripting". CSS, HTML, etc. is just "tagging".
Higher level languages help you abstract things more easily. Of course you can make any arbitrary distinction you want between languages and runtime systems, but to what purpose? And even if you were to make a distinction like you have made, where would you draw the line? Is compiled byte code that is run on a VM "coding" or "scripting"? What about tokenized languages that are simply executing lists of precompiled tokens? What about threaded interpretive languages that compile down to jump tables?
Besides, CSS is an excellent example of a declarative programming language. I don't even know that it is not turing complete. I rather suspect it is, actually (though not in any useful way). Writing CSS is programming... just in a different way.
Different kinds of abstractions are useful for creating elegant designs. Programming is young so we only have a few abstractions. It behoves the good programmer to learn how to use all of these kinds of abstractions appropriately. Each is powerful an beautiful in its own way.
"What?" - Everyone
Not sure that this matters except to preserve some "purists'" (read: pretentious engineers') holy lands. CSS is code. Writing code is called coding.
I don't think it should be called programming, though.
So you're suggesting that the term programming be used to describe writing code that will be compiled?
I really don't care though. Call it whatever you want as long as I can understand what you're trying to say. "Tagging" doesn't satisfy that sole requirement.
More discussion of that and a jsfiddle demo: http://stackoverflow.com/a/5239256
I feel that the root of my frustration with HTML/CSS is that it enforces a specific design pattern (that of boxes and inheritance) that is so bulky and unintuitive.
But I do agree with previous commenters that it seems like splitting hairs to declare web stuff not "coding". In practice, you would very much like a "coder" (someone with a CS background/education) to be handling your HTML/CSS, then have a lay person doing that work.
The compiled / interpreted distinction is sort of unimportant - I certainly wouldn't refer to myself as a "Python programmer", because all I do is use matplotlib to make figures for publication, but the guys and gals who wrote matplotlib are most certainly "Python programmers" in my book.