Authoritative References


Throughout my research on this topic, I've found several useful references from authors who've shared their views, the most salient of which I have provided with a synopsis, link, and whether the author was for, against, or undecided as to whether HTML is a programming language or not.

Google

For

When you Google "HTML" the very first thing you see is Programming Language, but take that with a pinch of salt. According to Wikipedia, this should probably say Computer Language. I'm sure many of you will read this and think "Well, the internet is notoriously full of incorrect information".

Ben Romy - 2012 Alumnus, Syracuse University

Against

Ben Romy's article argues that HTML is not a programming language because it's not capable of performing logical operations. Instead, HTML encapsulates, or "marks up" content within HTML elements.

Programming languages have functional purposes. HTML, as a markup language doesn't really "do" anything in the sense that a programming language does. HTML contains no programming logic. It doesn't have common conditional statements such as If/Else. It can't evaluate expressions or do any math. It doesn't handle events or carry out tasks. You can't declare variables and you can't write functions. It doesn't modify or manipulate data in any way. HTML can't take input and produce output. Think of it this way: you can't compute the sum of 2 + 2 in HTML; that's not what it's for. This is because HTML is not a programming language.

Professor David Brailsford - University of Nottingham

For

Professor Brailsford is a host of the popular YouTube channel, Computerphile. In his video about HTML, he suggests that HTML is a very restricted form of programming language, and makes the distinction between imperative programming and declarative programming. It's also worth watching his other videos about Turing completeness and where HTML beats C.

Kenzie Academy - New South Hampshire University

Against

This article seems a little confusing at first. Whilst it makes some good points (and some bad ones), the article ultimately suggests that HTML is not a programming language, but begins with a quote that clearly states that it is.

Developed by computer scientist Tim Berners-Lee in the early 1990s, HTML (HyperText Markup Language) is one of the most widely used programming languages — a cornerstone of the World Wide Web. More often than not, you interact with it every time you jump into your web browser and surf the internet.
A programming language must meet specific criteria, and many people believe that Hypertext Markup Language is not a programming language. Others view it as a programming language in a broader sense. Here are a few bullet points that show the differences between HTML and programming languages like JavaScript and Python.
  • Programming languages involve logical and arithmetic operations along with several algorithms. Markup languages just include HTML tags to define the elements of a web page.
  • By using various algorithms, programming languages can be used to program a machine or computer. The purpose of markup languages is to define, process, or style the text, so it can be presented more effectively.
  • As compared to programming languages, markup languages are more human-readable.

StackOverflow

Undecided

The consensus on this StackOverflow question seems to be more in favour of HTML not being a programming language, although most contributors seem to suggest that it's just a markup language, or use the argument of Turing completeness to justify their answer, both of which are addressed in the arguments page.

No, HTML is not a programming language. The "M" stands for "Markup". Generally, a programming language allows you to describe some sort of process of doing something, whereas HTML is a way of adding context and structure to text.
YES, a declarative programming language. Any instruction that tells the computer to do something is a programming language. So even after all these years, I still stand by my answer. HTML is a programming language. Something that isn't a programming language would be XML.

Alvaro Montoro - CSS Tricks

Undecided

Alvaro's article makes some excellent points, many of which are reiterated on the arguments page. His goal is not to prove whether HTML is or is not a programming language, but rather to dispel the main arguments, which are commonly flawed or incorrect, thus invalidating the conclusion from a logical point of view.

While some markup languages might be considered programming languages, I'm not saying that HTML is one of them. The point is that the original statement is wrong: markup languages can be programming languages. Therefore, saying that HTML is not a programming language because it is a markup language is based on a false statement, and whatever conclusion you arrive at from that premise will be categorically wrong.
The definition of what programming is (or is not) changes with time. I bet someone sorting through punched cards complained about how typing code in assembly was not real programming. There's nothing universal or written in stone. There's no actual definition.
Turing-completeness is a fair standard, I must say, but one that is biased and subjective — not in its form but in the way it is picked. Why is it that a language capable of generating a Turing Complete Machine gets riveted as a “programming language” while another capable of generating a Finite State Machine is not? It is subjective. It is an excuse like any other to differentiate between “real developers” (the ones making the claim) and those inferior to them.

Darcy DeClute - Scrumptuous Inc.

Against

Darcy DeClute's article makes many of the same arguments as the articles above. HTML isn't Turing complete, and it can't perform any sort of arbitrary computation. Rather it just "marks up" content. This article also investigates the combination of CSS and HTML and whether they meet the threshold to qualify as a programming language, ultimately suggesting that they don't. According to Darcy "it's easy to write your first HTML program" which is a little tongue-in-cheek.

"HTML doesn't allow for logic, control, data storage and retrieval, looping, or anything else that a programming language does," said JD Lien, a senior web developer at Edmonton Public Library. "It's far from being Turing complete. It's a markup language for structuring documents."
One question that often arises is if CSS is a programming language, or if the combination of CSS and HTML meets the threshold to qualify as a programming language. Unfortunately, they don't.
HTML is not a programming language. It's a markup language. In fact, that is the technology's name: HyperText Markup Language. That self-identified fact alone should settle the debate.