23
votes
HTML is the most significant computing language ever developed. Underestimate it at your peril.
Link information
This data is scraped automatically and may be incorrect.
- Title
- HTML Is Actually a Programming Language. Fight Me
- Authors
- Tim Carmody, Gear Team, Christopher Null, Brenda Stolyar, Matthew Korfhage, Chris Dixon, David Miliband, Arvind Narayanan, Grace Browne, Coleen M. Carrigan, Rob Jackson, Azeem Azhar, Emi Nietfeld, Vaclav Smil, Ethan Mollick, Ali Winston, Ben Dowsett
- Published
- Jan 6 2025
- Word count
- 645 words
It seems like there are two claims: that HTML is a programming language, and that it is very significant in its impact. I don't see why these are smooshed together. By most meaningful definitions in the technical realm, HTML isn't a programming language. But it is significant in its impact and utility. People shouldn't be elitist about languages and what is "real" programming. But we also don't need confuse definitions. We can recognize its utility and import while acknowledging it is a markup language.
I honestly don’t think the author actually knows what they are arguing. They talk about their first experience with HTML with two examples that cannot be done with HTML alone.
Are you talking about this?
Today you can't do these with HTML alone, but back in the day, you could, with the
<blink>
and<marquee>
tags. Browsers have since stopped supporting these elements, because they're annoying. But in the early 90s, you could very easily do this in pure HTML. Simpler times!I'm referring to the interactive magic 8-ball and the form. They would need some sort of server-side processing to do the form - where is the message sent, and how? The magic 8-ball would be either javascript, or more likely use some sort of CGI program.
The <marquee> tag actually still works. I tried it in Firefox, Chrome, and Safari, and it worked in all of them. Weirdly with a low refresh rate in Safari.
<blink> is burning in hell where it belongs. 🙃
It would be an amazing April fools gag for the browsers to bring the blink tag back for a day and wrap all header tags in them. Have it opt out if any accessibility features are enabled to not be a jerk to people, and watch the Internet drown in horrible retro style for a day.
The tradition of web companies fucking with their users on April 1 is one of the last surviving remnants of the chaotic wild west days of the early internet. And this idea, were it to be implemented, would surely kill it for good.
<blink> still lives in my heart </blink>
<blink>s</blink>laughter
Credit
Saw this on an art installation (neon sign) back when I was a grad student
Statistically speaking that <blink> tag probably lived on a MySpace page!
It was annoying enough, along with garish colors and font sizes, that part of the reason for Facebook's success was a simpler interface that limited what you could do. It seemed like a good thing at the time, little did anyone know they were breaking ground on the first walled garden.
It seems like the author has some notion that a programming language is somehow more respectable than a markup language, and HTML's historic importance means it should be elevated to that same level of respect. That just doesn't make sense to me. A language is defined by its utility, not its respectability. We wouldn't call BB Code or Markdown programming languages, would we?
HTML was the SGML-derivative chosen to represent hypertext on the web. It defines DOM and AOM trees, and lays out content in a semantic way. This isn't programming, but it isn't supposed to be. HTML serves as the foundation for the web, and the bedrock that CSS and JS were originally built on.
Arguably, HTML is important because it's a markup language, not in spite of it. It allowed users to create and share useful documents in the early World Wide Web even before scripting and styling became available. HTML performs its job amicably, and we thank it for that, even if it's not a programming language.
I almost commented pretty much the same thing, but decided that I was too irritated by the tone of the article to feel like I'd be commenting in good faith. The subtitle as used for this thread is a fine statement that could've lead to an at least okay article; the actual title less so.
Really? Pedantically, the title is technically correct, or at least the objective parts are correct, and the subtitle isn't.
A computing language is a very broad term, which does include data languages and markup languages. The other clause is, then, that HTML is the most important computing language. You can make that argument, "importance" is subjective, so there's a way to make it work.
As we've already somewhat discussed on this site, there's obviously the elitism of "html is not a programming language" thing.
I think the main reason you see this is because if someone says they have 4 years of html experience, that does NOT mean they can jump in for a normal developer position. This mattered a lot more in the early internet days as opposed to now, where you're probably just using some flavor of JS for your front end which overlaps heavily with the pure html positions, but it's something that is important to actually recognize.
Now they probably can be trained for that position, but if you're going for the spot vs someone with 4 years of python/C#/Java, well it's a safer bet to take them.
Without trying to champion the title position (HTML is the most significant programming language ever developed), I am curious if you have seen people having "X years of experience in HTML" in the current era?
I could see it being a thing in the late 90s / early 2000s, when people were still hand-coding[1] lot of websites, sure. But now? It seems like it would be impossible to get any years of experience in HTML alone and not some kind of framework. I imagine anyone hand coding HTML is almost certainly a programmer doing it for fun/on principle/for masochism.
Not who you asked, but not often. I do see the occasional reaching application for entry level positions from folks that list static HTML. They are usually office admin type folks trying to in smaller offices trying to laterally get into an entry level role in anything IT to help their prospects for advancement. That usually means they try and snag everything they can in their work environment, even silly things like hard coding HTML.
More often though I see WordPress and other CMS/wysiwyg experience listed, with some home hobby shop projects rounding out other skills. I don't run interviews as much as I used to, but I still see that odd out of place reference.
Yeah this is why I said it’s more an early Internet thing, and I think it started there.
I do know someone who does SEO/marketing who’s done some light html and I could see that kind of person maybe causing the same issue but I agree it’s not as much a thing these days
I don't particularly care about what a tool is called as long as it gets used right. But being pedantic: there are very specific criteria commonly used to determine if something is truly a "programming language".
now for using a tool right... Javascript could (and probably does) have multiple novels about its atrocities. Technically a "programming language" though.
From the article: "What other programmers might say dismissively is something HTML lovers embrace: Anyone can do it. Whether we’re using complex frameworks or very simple tools, HTML’s promise is that we can build, make, code, and do anything we want."
It seems to me the author has never used a programming language. I can think of a dozen tasks I can do in vanilla C or even shell scripts that HTML couldn't begin to address. The "Anyone can do it" claim also applies to C and shell scripts. It's honestly not that hard.
I wish web developers like this would just stay in their lane. Y'all can have a ball making great websites and doing that SEO thing. Us coders and sysadmins will be keeping the systems your stuff is running on secure and performing well. Just accept HTML is a markup language and go do your thing, mkay?
I guess us full stack devs can just go kick rocks.
I'm assuming this was just a joke, but I'm going to reply semi-seriously anyway.
Full stack devs may be the most aware of the divide. No matter how much a full stack dev may love HTML they still won't even consider HTML a programming language capable of fulfilling their backend needs.
LOL. You guys can drive in all lanes.
Whenever anyone asks me for evidence that people overwhelmingly bring up the "HTML is not a programming language" bullshit in order to be condescending jackasses to people whose skills they consider beneath theirs, I'm going to link to this comment.
Thanks!!
</html>Maybe you meant this towards web developers who only use HTML (which must be a vanishingly small number), but I wouldn't dismiss web devs so easily. Despite being prototypal, JS knowledge is very transferrable to other C-style languages. Modern language features provide a good mix of imperative and declarative programming, OOP, and even a little functional programming with ES6's map/reduce/filter, etc. You've got to know it all.
Sure, you're not allocating memory, navigating pointers, or reimplementing quicksort for the 50th time, but you've got your own patterns to learn. Understanding the event loop, lexical scoping, mutation observers, proxies, async, and the prototype itself. There's random features like hoisting, strictness, node traversal, closures and IIFEs. You'll need to learn build scripts and compilers, minification, concatenation, secret management, and endless APIs, each of which may require dependency injection, modules and scripts, and avoiding cyclic dependencies. You need caching, compression, state management and routing. Debugging requires more than breakpoints and function stacks, but understanding flame graphs, performance charts, and network waterfalls. Pages need to be accessible, searchable, and secure; each of which has their own entire fields of expertise.
The web is a big, beautiful mess, and JS in particular is a melting pot of ideas from other languages. So I'm afraid that web devs really can't stay in their lane, because their job often requires doing it all.
Is there literally anyone here who would claim that JS (or any definition of HTML that specifically includes JS) is not a programming language?
Anyone who genuinely believes that JS is not a programming language, please respond here. Otherwise I'm going to assume you don't exist.
Uh, I like how the author just casually listed TURING COMPLETENESS besides "looking easy". That's a somewhat important attribute for a programming language lol.
There's already a lot of posts on the article, which I don't find very persuasive, so I won't dwell on it.
In terms of whether or not HTML is a programming language, first you have to define what a programming language is. There's no universal body, but I'll present one I agree with. A programming language is a formal language with a specification (which can be formal, or implicit via a reference implementation) which defines its execution, which is trivially turing complete.
So, even though there's a way to torture CSS into being turing complete, I still wouldn't count it as a programming language.
HTML is not a programming language, because the specification for its execution, which is the browser engine, only replaces the elements in its element graph with visual nodes in the browser. It is not turing complete.
I think an interesting thing to think about is that the "specification of execution" part is important, arguably the most important part. You could with not a lot of effort use the HTML syntax to write a lisp variant. That combination - HTML syntax, lisp-like executor - would definitely be turing complete.
But HTML syntax, browser renderer is not.
Lisp is in general interesting to think about in this space, since it's a very transparent data language, like html, or json, or yaml, which is also a programming language, since it has an execution engine.