How can I convey the idea of a programming language vs. a markup language? When I try and teach web development to absolute beginners, I seem to always get a question about the roles of HTML/CSS/JS and about how the browser renders the HTML. It seems to me that the confusion lies in an explanation of what a markup language is as compared to a regular language (e.g. python, C, java, ruby). What is the best way to give an overview of what HTML is while being sure that my students understand HTML as a markup language?

Would it be useful to include some of the history of HTML? Preface it by teaching markdown? Or some other way?
I also have this problem frequently.  I use the example of Microsoft Word, and I would say something like this:

"Word allows you to give a document the appearance that you'd like.  You can bold, you can center, you can change font sizes.  Word is creating a markup (in this case, it is generating a type of markup called XML).  "Markups" mark up text, just like it sounds.

But, could you create Word itself in Word?  You can edit fonts, you can center text... but does any of that give you the capability to make a whole program like Word?  Similarly, you can't use Word to make Firefox, Chrome, or the alarm clock on your phone.

Markup languages only format documents, but when you need to actually make a function calculator, or an iPhone app, or a video game, that's when you need code instead."