hallo guys today in this class we well lern about HTML is not a programming language. so let’s start this class
we first take an overview deck of this class, we are going to get:
- HTML is not a programming language.
- Why HTML is not your typical programming language?
(Your theme may already use a H1 for the post title)
- “HTML is a markup language, not a programming language”
(Incorrect heading level)
- “HTML doesn’t have logic”
- “HTML is not ‘Turing complete’”
- So, is HTML a programming language?
- 😢 No Logic! No Fun!
- 😵 HTML can’t make choices
- 😖 HTML can’t reuse the code
- 😭 HTML is bad in maths
- 🤡 HTML can’t modify your data
- 🥱 HTML can’t deal with inputs and give output
- 😱 HTML doesn’t give any errors
- Let’s Connect
- What Is a Programming Language?
- HTML Is Declarative
- HTML Is a Markup Language
- HTML Is Not Complete, But…
and many more….Toh stay in class till the end
I have seen it on Linkedin as well as on other social networking sites such as Quora, Reddit where people don’t consider it as a programming language. Often, people are trolled if they say that they know HTML “programming language”. In this story, I am going to shed my two cents on why it is like that and what’s all ruckus about HTML over the internet.
Why HTML is not your typical programming language?
The HTML was only used to mark up the text for the browser to read and interpret as web page content. It tells the browser which parts were headings, which were paragraphs, and which were links, and the browser displayed them as such. HTML is used for structural purposes on a web page, not functional ones.
Why it’s not a programming language? some of the examples…
- 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 carries 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.
So, let’s do a recap! Programming languages have ways of executing instructions over and over again in loops. Loops, such as — if-else statements, and other such as while loops are called flow control statements. All programming languages have these flow control statements, but HTML (and Microsoft Word) do not.
Because HTML lacks these features, it cannot be called a programming language. One does not “program in HTML” nor could one “write HTML code”. You should never list HTML on your resume under “programming languages”.
But lets just put off our legs on the accelerator Let’s not get too harsh on HTML though. I am not against it but the fact is that HTML really shines when you use it in conjunction with an actual programming language, such as when using a web framework. That’s when you can start serving up dynamically created web pages and database applications.
HTML is not a programming language.
I’ve heard that sentence so many times and it’s tiring. Normally, it is followed by something like,
It doesn’t have logic, or,
It is not Turing complete,.so… obviously it is not a programming language. Like it’s case-closed and should be the end of the conversation.
Should it be, though?
I want to look at typical arguments I hear used to belittle HTML and offer my own rebuttals to show how those claims are not completely correct.
My goal is not to prove that HTML is or is not a programming language, but to show that the three main arguments used for claiming it is not are flawed or incorrect, thus invalidating the conclusion from a logical point of view.
“HTML is a markup language, not a programming language”
This statement, by itself, sounds great… but it is wrong: markup languages can be programming languages. Not all of them are (most are not) but they can be. If we drew a Venn diagram of programming languages and markup languages, it would not be two separate circles, but two circles that slightly intersect:
A markup language that operates with variables, has control structures, loops, etc., would also be a programming language. They are not mutually exclusive concepts.
TeX and LaTeX are examples of markup languages that are also considered programming languages. It may not be practical to develop with them, but it is possible. And we can find examples online, like a BASIC interpreter or a Mars Rover controller (which won the Judges’ prize in the ICFP 2008 programming contest).
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.
“HTML doesn’t have logic”
This claim demands that we clarify what “logic” means because the definition might just surprise you.
As with Turing-completeness (which we’ll definitely get to), those who bring this argument to the table seem to misunderstand what it is exactly. I’ve asked people to tell me what they mean by “logic” and have gotten interesting answers back like:
Logic is a sensible reason or way of thinking.
That’s nice if what we’re looking for is a dictionary definition of logic. But we are talking about programming logic, not just logic as a general term. I’ve also received answers like:
Programming languages have variables, conditions, loops, etc. HTML is not a programming language because you can’t use variables or conditions. It has no logic.
This is fine (and definitely better than getting into
OR/etc.), but also incorrect. HTML does have variables — in the form of attributes — and there are control structures that can be used along with those variables/attributes to determine what is displayed.
<noscript> – which are rudimentary control structures and have been part of the standard for decades. I’m referring to elements that will respond to the user input and perform conditional actions depending on the current state of the element and the value of a variable. Take the
<summary> tuple or the
<dialog> element as examples: when a user clicks on them, they will close if the
So just saying alone that HTML isn’t a programming language because it lacks logic is misleading. We know that HTML is indeed capable of making decisions based on user input. HTML has logic, but it is inherently different from the logic of other languages that are designed to manipulate data. We’re going to need a stronger argument than that to prove that HTML isn’t a form of programming.
OK, this is the one we see most often in this debate. It’s technically correct (the best kind of correct) to say HTML is not Turing complete, but it should spark a bigger debate than just using it as a case-closing statement.
I’m not going to get into the weeds on what it means to be Turing complete because there are plenty of resources on the topic. In fact, Lara Schenck summarizes it nicely in a class where she argues that CSS is Turing complete:
In the simplest terms, for a language or machine to be Turing complete, it means that it is capable of doing what a Turing machine could do: perform any calculation, a.k.a. universal computation. After all, programming was invented to do math although we do a lot more with it now, of course!
Because most modern programming languages are Turing complete, people use that as the definition of a programming language. But Turing-completeness is not that. It is a criterion to identify if a system (or its ruleset) can simulate a Turing machine. It can be used to classify programming languages; it doesn’t define them. It doesn’t even apply exclusively to programming languages. Take, for example, the game Minecraft (which meets that criterion) or the card game Magic: The Gathering (which also meets the criterion). Both are Turing complete but I doubt anyone would classify them as programming languages.
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.
To add insult to injury, it is obvious that many of the people parroting the “HTML is not Turing complete” mantra don’t even know or understand what Turing-completeness means. It is not an award or a seal of quality. It is not a badge of honor. It is just a way to categorize programming languages — to group them, not define them. A programming language could be Turing complete or not in the same way that it could be interpreted or compiled, imperative or declarative, procedural or object-oriented.
So, is HTML a programming language?
If we can debase the main arguments claiming that HTML is not a programming language, does that actually mean that HTML is a programming language? No, it doesn’t. And so, the debate will live on until the HTML standard evolves or the “current definition” of programming language changes.
But as developers, we must be wary of this question as, in many cases, it is not used to spark a serious debate but to stir controversy while hiding ulterior motives: from getting easy Internet reactions, to dangerously diminishing the contribution of a group of people to the development ecosystem.
Or, as Ashley Kolodziej beautifully sums it up in her ode to HTML:
Independent of the stance that we take on the “HTML is/isn’t a programming language” discussion, let’s celebrate it and not deny its importance: HTML is the backbone of the Internet. It’s a beautiful language with vast documentation and extensive syntax, yet so simple that it can be learned in an afternoon, and so complex that it takes years to master. Programming language or not, what real
Why HTML is not a Programming Language?
If HTML was the first language you have learnt like me, then I am pretty sure that it must have been a little disappointing for you after realizing that HTML is not a programming language and is a markup language instead. This means that you cannot call yourself a programmer just by knowing HTML.
However, we hear this a lot but when we actually reach out to people to ask them what’s the reason for HTML not being a programming language, most of the time probably will not have any answer.
Actually it’s not that straightforward either but here are the top 7 reasons why developers call HTML a non-programming language:
One of the main reasons is that unlike other programming languages, HTML is incapable of logic building. That means it’s very limited to just a bunch of tags. And you cannot do all sorts of cool things you do with your other programming languages.
HTML doesn’t support conditional statements like
else, which is one of the core features of probably all the programming languages I’ve ever known. It fails to compare values and make useful decisions out of it. I
HTML again fails to provide the facility for reusability of the code. Well, there are ways to apply CSS properties to multiple elements but as you see, it’s CSS doing all the job not HTML so yeah not a programming language.
PS: CSS is not a programming language either.
HTML cannot do any maths which is not a bad thing in my opinion because then you don’t have to worry about losing your mind behind those nasty operators. However, this can be seen as a disadvantage as being able to do a bit of maths is essential for a programming language. HTML is a slowly evolving language so who knows we may get some ability to do maths within HTML in near future. But for now, HTML is only as good as I am when it comes to maths.
Since HTML doesn’t care about modifying our data, it is incapable of storing it either. It cannot accept any input except for the
<input> tag but that doesn’t matter as the data isn’t stored anywhere. Same when it comes to giving output. Yeah I know it can display text on the screen but that’s not the output we are talking about. The output should be something generated step by step by the language itself & its values should differ as per the input value. Which we know it’s not the deal with HTML.
This is probably something almost everyone hates & loves about HTML. Hates because it’s so difficult to find the mistakes you have done into your hundreds of lines long code and loves because even if there’s some mistake in a certain element, rest all the elements will be displayed on screen anyways. Now it’s up to you to decide if you like this or not. However, giving reasonable errors is a good property of programming languages which we wish HTML also had.
So there we go here were the top 7 reasons HTML is not a programming language.
- What are your top reasons for not calling HTML a programming language?
- Are there any other properties you know which add to point of HTML not being a programming language?
Let us all know your thoughts and opinions on this by posting in the discussions.
Thank you so much for reading! I hope you fun reading and learnt something new today.
If you like my work please consider Buying me a Coffee so that I can bring more projects, more class for you.
HTML is a programming language by the majority of accounts. It is a markup language and it ultimately gives declarative instructions to a computer. This is the definition of a computer program, making HTML a programming language.
FIND YOUR BOOTCAMP MATCH
- Career Karma matches you with top tech bootcamps
- Get exclusive scholarships and prep courses
However, there is an ongoing debate in the programming community as to where HTML fits into the definition of a programming language. The concept of a programming language has specific criteria, and many people believe that Hypertext Markup Language is not a programming language. Other people take a broader view and have no trouble defining it as a programming language. So, is HTML a programming language or not?
This video gives you the facts on the debate. In this guide, you will learn about the elements that combine to make a programming language and how HTML fits into the family of software development codes.
What Is a Programming Language?
Before you strike out on your own and jump into a web development bootcamp, it’s crucial to get the details on what exactly makes for a programming language. Knowing what programming languages make it easier to understand which languages may not meet the requirements. Much of the debate is a semantic one, of course—whether it qualifies for the formal definition of programming language or not, HTML sees massive use in sites all over the world. Labels matter, though, even in the computing world.
» MORE: Everything You Need to Know About the Top Web Development Technologies
The accepted notion of a programming language is that it is a collection of instructions, commands, and syntax used to build software programs. There are low-level languages, which computers use without requiring translation. And, there are high-level languages that allow developers to write programs using a syntax similar to human language. High-level languages require translation so computers are able to understand the instructions.
HTML Is Declarative
When you start getting into arguments about whether HTML is a coding language, you often hear about imperative and declarative programming languages. If you’re new to the development community, this can seem a bit confusing, but a little explanation is all it takes to figure it out. To begin with, an imperative language instructs computers both what they need to do and how they should go about doing it. Meanwhile, declarative languages aren’t concerned with how the computer accomplishes its tasks, as long as the desired result makes it to the screen.
HTML is a declarative language and all of the instructions you provide when you use HTML follow that paradigm. When you use HTML, you tell the computer that you want to see visuals, but you leave it to the deployment package to determine exactly how it produces those visuals. Because you don’t have to focus on means when working with HTML, you eliminate a large part of your task. This feature makes HTML ideal for automation.
Career Karma entered my life when I needed it most and quickly helped me match with a bootcamp. Two months after graduating, I found my dream job that aligned with my values and goals in life!
Venus, Software Engineer at RockbotFIND YOUR BOOTCAMP MATCH
HTML Is a Markup Language
Now that we’ve established a few guidelines to help us determine what HTML isn’t, let’s look at what it is. To begin with, HTML is a markup language. Not only is it a markup language, but it is the most popular one in the world, with XML a close second. It’s even part of both languages’ names. Markup languages are ideal for new techies who might not have the chops to dig deep into computer code.
Markup languages employ tags to establish definitions for a document’s elements. These tags are readable by humans (a characteristic of a high-level language, if you recall), and they contain standard words instead of the sort of syntax you often see in programming languages. Tags allow users to define page sections and establish information on the elements within each section.
HTML Is Not Complete, But…
HTML’s failure to meet all the standards of a Turing-complete language disqualifies it as a programming language in some people’s eyes. However, using Turing completeness as the end-all criterion is problematic as many of the most popular coding languages use standard regular expressions—and this feature means that those languages don’t meet the Turing-complete standard, either.
Because of the above arguments, though pure HTML is a markup language that cannot change system states, many still consider it a programming language. It still provides instructions to the computer (a program), even if that program is not dynamic.
There you go, web-coding tech folks. The debate about whether HTML is a programming language has been going on for years and our guide helps to familiarize yourself with the issues. Wherever you land on the issue, there’s no argument that HTML is crucial for modern web development and is as essential to the Internet as any coding language.
Hope you have understood completely what we have been told in this class….If yes then also join our upcoming classes and share your feed.Thank you