With this criteria we can say that HTML is not a programming language. HTML is not Turing complete, it doesn't have the ability to make decisions. HTML cannot do computations, it just stores constants. And finally lacks a mechanism to do abstractions.
I may be wrong but this is my way to differentiate programming languages from other kinds of languages. I would love to hear some counterexamples if someone wants to prove me wrong.
I teach computer science to undergrads and write for The Renegade Coder. I'm most likely taking care of my daughter, watching the Penguins, or reading manga.
Location
Columbus, Ohio
Education
B.S. in CE from CWRU 2016; M.S. in CSE from OSU 2020; PhD in EED from OSU 2024
Honestly, I don’t know that I agree, but I like that you lay out some criteria in the same way that I did.
Currently, I don’t feel like there is a set of checkboxes that can be used to decide what is and isn’t a programming language. As a result, I choose to leave things more nebulous. In other words, if a machine can derive meaning from some data, that data is a programming language.
That said, I think you raise a good question. What does it mean to program? If flow control (or Turing completeness) is the criteria you use, then you can start to draw some lines.
Ultimately, I guess my issue with these arbitrary distinctions is that they can be used to marginalize people (not just languages). In other words, suddenly engineers aren’t real programmers because they use a language that isn’t general purpose.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
This article really makes you think. In my opinion, what we are trying to do it's separate languages into 2 categories:
It's hard to classify languages, but I think that there are a few requisites for a language to be considered a programming language:
With this criteria we can say that HTML is not a programming language. HTML is not Turing complete, it doesn't have the ability to make decisions. HTML cannot do computations, it just stores constants. And finally lacks a mechanism to do abstractions.
I may be wrong but this is my way to differentiate programming languages from other kinds of languages. I would love to hear some counterexamples if someone wants to prove me wrong.
Nice article btw.
Honestly, I don’t know that I agree, but I like that you lay out some criteria in the same way that I did.
Currently, I don’t feel like there is a set of checkboxes that can be used to decide what is and isn’t a programming language. As a result, I choose to leave things more nebulous. In other words, if a machine can derive meaning from some data, that data is a programming language.
That said, I think you raise a good question. What does it mean to program? If flow control (or Turing completeness) is the criteria you use, then you can start to draw some lines.
Ultimately, I guess my issue with these arbitrary distinctions is that they can be used to marginalize people (not just languages). In other words, suddenly engineers aren’t real programmers because they use a language that isn’t general purpose.