DEV Community

David Lorenz
David Lorenz

Posted on

⚡️HTML is not a programming language

Btw, CSS also isn't a programming language. I know what you think: I'm gonna put some roast on this iffy post from this arrogant guy who is trying to talk down the language.

First and foremost: If you only code in HTML you are a programmer, no discussion needed ♥️. The definition of a language does not change your worthiness or your job title.

Let me elaborate why writing this blogpost is important and essential and why it is not about "being right". My assumption is that the discussion is purely based on insecurities and fear.

Why do you even care?

People on twitter seem to fight for the right that HTML is a programming language. The essential question is why do people argue about it? I don't get it. The definition of what HTML is does not change anything about the fact that HTML is the crucial language to create websites and web apps - fact.

People confuse programming language and being a programmer

Maybe that is one of the fears that people have: If neither HTML nor CSS is a programming language then am I even a programmer by just using HTML/CSS? Sure thing, you are! Even though the word has the same origin being a programmer and programming language are still different things.

Let's take the Wikipedia Definition:

A computer programmer, sometimes called a software developer, a programmer or more recently a coder (especially in more informal contexts), is a person who creates computer software.

So even if you do not code at all e.g. by designing systems architecture you are part of the programmers world.

Why it is important to acknowledge that HTML is not a programming language?

In very simple words: Because if we go by the majority of scientifical definitions then it is often described as a Markup Language (HTML= Hypertext Markup Language) as opposed to programming language. We are living in a world that often confuses facts with opinions and hence create problematic discussions that wouldn't even be worth the energy simply because it does not change a single thing about the outcome.

Let's face Wikipedia again:

Markup languages like XML, HTML, or troff, which define structured data, are not usually considered programming languages.

There is a "trivial" and a not-so-trivial explanation. The not-so-trivial one is about language possibilities, turing completeness and so on and so forth which I do not want to elaborate in detail here because.
A more trivial approach is: If you can build a calculator based on users input with it then it most likely can be considered a programming language. Bash can do that, JS can do that, HTML cannot. You can define input fields in HTML but HTML cannot process them and sum/multiply. CSS can partially calculate but then again it is extremely constrained to "hardcoded" values and not arbitrary input.

And by the way: SQL can also only calculate things to a constrained extent. You cannot write a full program in SQL. SQL is a declarative language. But back to the actual point: Why would you care to make it a "programming language"? You are a programmer nevertheless.


I am not trying to be "right". That is not the whole point of this post. Generically spoken I would really love to see a world where we come together and share what's available in science rather than creating an "opinion" about things that science has a clearer view on. That can be troublesome in any topic e.g. vaccination.

A good start here is to ask questions: "Can you provide me some more information why HTML wouldn't be considered a programming language?" or vice versa.

That is the world that I am looking for. A proper, scientifically based discussion (how they are very often found in good responses on StackOverflow).

I just do not get the point why a simple word triggers so many people.

Peace & Love

Discussion (6)

djchsu11 profile image
djchsu11 • Edited on

I'm sorry, but this article is inaccurate at best and misleading at worst. You're sacrificing accuracy for the benefit of feel-good nonsense. HTML and CSS do nothing beyond telling a browser how text should be displayed on a screen. You are not creating software, to suggest such is disingenuous. Sure, you can take an extremely broad stance of the wikipedia quote you mentioned, but if you apply for a programming position at a company and only know project management or HTML then you are likely not going to get the job.

This is not to suggest that HTML and CSS are easy; far from it. However, programming is defining logic to work upon some sort of incoming event or data and the structures required to implement logic do not exist in a markup language. You may as well call someone who hand writes JSON objects a programmer since it affects how software interprets data.

These types of articles lower the overall content quality of this site and should be removed by moderators.

activenode profile image
David Lorenz Author

Hello @djchsu11 . Thank you for your comment although I feel like you are falling into the aforementioned part of people who argue aggressively maybe out of some insecurities.

This makes me sad because I also have a very strong feeling you have not read the actual article as a wholesome piece.

I am not sure if you understood the intent of the article. Your comment is not constructive at all and only talking-down without actual stated facts or references.

It feels like you have only picked one single part of the article (=> "you are still a programmer if you write HTML/CSS") and also it feels that you are feeling triggered for some unknown reasons needing to talk that statement down. If you have read my article you will very much notice that I point out that neither HTML, nor CSS and not even SQL are programming languages. However being a software engineer (or alias=coder/programmer as also stated in the above quote) today can have many facets simply because of the huge amount of possibilities that exist. You could even be just setting up databases and writing well-performing SQL functions that can then be used by other engineers in your team.

Software Architects rarely write actual implementations. Such that the same statements would apply that you stated. A software architect is not a programmer. I am not sure what you are trying to achieve with your comment.

Honestly your comment is the type of comments that make the internet a worse place. Simply because you are stating your actual opinion as a fact. Which - if you read my article - I did not. I stated why HTML etc are not programming languages but I also stated that you are still on the path of a programmer.

Whenever we recruit people we always talk about programmers. Why would it make sense in your world to tell someone "you are not a programmer!". That's just pure evil and nothing beyond that. If we need someone in our team that codes HTML/CSS/SQL or whatever declarative language than no one would ever have the idea to talk that persons job title down. Simply because the natural follow-up is that people learn more and more. Yes I even state you are being a programmer if you start your first "Hello World" in HTML. Because that is what people need. We do not need persons talking down other persons.

I am really really really sad about the way you wrote that comment. Pointing out your opinion is one thing, doing it the way you did it is another one. I hope you are getting better.

djchsu11 profile image

Don't worry, I'm fine. Thank you for your concern.

You say that I would need to call a software architect "not a programmer" by my definition. I agree. A software architect is not a programmer, though they may occasionally do programming tasks and have probably worked as a programmer at some point.

Programmers do use HTML and CSS and SQL. A person who only knows SQL is not a programmer though - they are likely a DBA or data engineer or something like that. Knowing HTML and CSS on their own is not a particularly useful skillset without JavaScript - instead of being disingenuous with people to farm likes on a website, maybe you should have spent your time writing an article to introduce a beginner to JavaScript.

Like you say - the title of "programmer" isn't something prestigious or difficult to obtain, so why the need for this article to begin with? It seems like you are the one who is placing unneeded emphasis on this word. It is not cruel to say that someone is not a carpenter even if they know how to use a hammer and saw - despite these being tools that carpenters also use.

I would not call myself a systems administrator because I know how to set up a tomcat server.

Thread Thread
activenode profile image
David Lorenz Author • Edited on

A tl;dr response to your last comment is: It shows that for a specific reason you want to define the term "being a programmier" differently in what all of my previous companies did or what a big part of literature does.

That's fine and up to you. But it's nothing that makes my blog post wrong/falsy. And this is the crucial point for me here. You were stating your opinion on this with the saying "my post should be removed" which is nothing but toxicness honestly. Not constructive, not fact-based.

Even if you were primarily creating templates with HTML/CSS you wouldn't be downgraded in ANY of the companies I worked with as "not being a programmer" simply because you are on the "programmers track" and again: Because literature uses these terms interchangeably even though HTML clearly is a declarative language. Your carpenter+hammer sample lacks a bit of realism since most definitely you'd call yourself a carpenter if you are starting out as a carpenter even if your knowledge up to this very point is limited to using a hammer.

Those are my final words to it and I still wish you a nice day and I hope that for any future comments also on other people you try to be more constructive and helpful than destructive because this is what especially younger people or tech-newbies will drastically demotivate.

Thread Thread
djchsu11 profile image

Your post contributes nothing besides feel-good nonsense. That is why it should be removed.

To anyone reading this - yes, if all you want is to be able to call yourself a programmer in your head, feel free to if all you know is HTML/CSS. While you're at it, take a statistics class and call yourself a machine learning engineer, and take a whittling class and call yourself a carpenter.

If you actually want to get a job as a programmer, I would recommend getting a working knowledge of a programming language, and potentially start by looking at one of the better articles on this site. If all you've written in a programming language is a hello world - then yes, you are a programmer. Keep on with it if it is interesting to you.

And if you, OP, read this comment, then I want you to know that it is not my purpose here to be constructive, helpful, or even agreeable toward you - I only hope to enlighten others that this is not a realistic point of view that you hold.

Thread Thread
activenode profile image
David Lorenz Author

Your post contributes nothing besides feel-good nonsense. That is why it should be removed.