HTML is not a programming language.

I keep seeing this misconception popping up.  In all walks of life, in all sorts of specification documents.  For some reason people seem to be of the mistaken belief that creating web pages in HTML is somehow “programming”,  as in computer programming, as in that thing I’ve spent 23 years learning, refining and mastering.

Allow me to disabuse you of this notion.  HTML is not a programming language.  It has none of the neccessary elements of a programming language.  It has no comparison structures, it has no programmatic flow control structures, the only thing that it has in common with a programming language is that it is, at least loosely, structured.

HTML is a markup language.  It tells a computer how a designer would like a webpage to be rendered and nothing more.  A computer program takes input and produces output, an HTML document is input, the rendered image on screen being the output.

Of course, web-pages can include programming code, usually in the form of JavaScript, Java Applets, Flash animations, ActiveX objects et al. but these are programs which are embedded inside an HTML document, not really part of the document at all.  Other web-pages are generated on the fly by programs, some of which look superficially like HTML pages, but again, the HTML document itself is the output and input in these models, not the program.

Calling HTML a programming language is basically the same thing as calling your resume a computer program, which I’m certain for most of you out there, it is not.