Chronos:
Well, actually you can write conditionals and loops in HTML. They’re probably not what you had in mind, but it is possible. I’m wondering at your requirement, though. If I write code in an accepted language (say C++), however I don’t actually write a loop or a conditional, does that mean I’m not programming?
But I digress; you asked for proof of looping and conditionals in HTML. A simmple loop can be constructed with the META / refresh element. You can have a page automatically load a different page and the second page automatically load the first, and so on. Granted, this loop is of limited usefulness, but it IS technically a loop. Conditionals are much easier to demonstrate and more useful. Consider the ‘ALT’ attribute for some elements. This option renders text IF the browser does not support rendering of the principle element. Also consider special elements like <NOFRAMES> and <NOSCRIPT>, that render pages differently, based on support conditions. On a very primitive level, all tags can be considered to be conditionals: IF <B> THEN TurnOnBoldFace … IF </I> THEN TurnOffItalicFace… OK, that may be stretching it a bit, but it’s not radically different than setting attributes in a language like LISP based on a predicate.
Also, to further blur the distinction between HTML and a “real” programming language, the HTML spec refers to data types, objects, classes, declarations, assignments, event driven actions, scope, inheritance and precedence. These are all programming constructs. Hyper links, especially to anchors in the same document or frames, look a lot like function calls.
Given the amount of time I’ve spent ‘debugging’ HTML code, it certainly feels like programming sometimes. So, if it looks sort of like a duck and it quacks sort of like a duck… maybe it’s a duck.
Intuitively, I agree with your premise (coding HTML is not programming), however I’ve yet to see strong evidence to the contrary, in this discussion or others, so I’m withholding my official judgement until someone says something truely definitive…
Arjuna34:
That’s too simplistic, I think. There are a number of non-Turing programming models ‘out there’. Analog computers, BBS machines, artificial neural networks, and finite directed graphs to name a few.