Comment by falcor84
8 hours ago
I think that it is a debate, and it depends on the role of HTML in your system.
If all you're doing is using HTML to "annotate a document with its structure and its formatting", then yes, I'll accept that it's not quite programming, but I've not seen this approach of starting with a plain non-html document and marking it up by hand done in probably over two decades. I do still occasionally see it done for marking up blog posts or documentation into markdown and then generating html from it, but even that's a minuscule part of what HTML is used for these days.
Your mileage my vary, but what I and people around me typically do is work on hundreds/thousands of loosely coupled small snippets of HTML used within e.g. React JSX, or Django/Jinja templates or htmx endpoints, in order to dynamically control data and state in a large program. In this sense, while the html itself doesn't have control flow, it is an integral part of control flow in the larger system, and it's extremely likely that I'll break something in the functionality if I carelessly change an element's type or attribute value. In this sense, I'm not putting on a different hat when I'm working on the html, but just working on a different part of the program.
> React JSX, or Django/Jinja templates
Those are not HTML. PHP neither, even when used as a templating language for HTML.
> htmx endpoints
Not really familiar with htmx, but I would say this is HTML augmented with some additional mechanisms. I don't know how I would describe this augmented HTML, but I'm not applying my "not programming" statement to htmx (I probably could, but I haven't given enough thoughts to do it).
> In this sense, I'm not putting on a different hat when I'm working on the html, but just working on a different part of the program.
I agree with this actually. I wouldn't consider that writing HTML (or CSS) is really a separate activity when I'm building some web app.
> In this sense, while the html itself doesn't have control flow, it is an integral part of control flow in the larger system
That's correct but I don't see what it has got to do with the question of whether HTML is a programming language or not.
Strings do not have control flow but strings are integral part of larger programs that have control flow. So what? That doesn't make strings any closer to being programming languages.
It's a question of semantics. What I'm saying is that the way many of us use html in practice in 2026 is less like arbitrary strings and more like db connection strings, where most of our focus is not on whether a bit of text is an article or an aside, but about how it participates in the control flow across different components in our architecture.
From another perspective, I'm not familiar with any present day company, where the html they use in their source code is sufficiently simple and distinct from the rest of the program to be managed by non-programmers. The only html that is just used as strings is that used for individual posts in a crm or marketing tool's cms, typically stored in a database rather than the source code repository.