3 ms·
There are two ways to go about answering this: 1. You could try a formal definition -- such as Turing completeness 2. You could accept a colloquial definition
by projectramo 11y ago
There are two ways to go about answering this:
1. You could try a formal definition -- such as Turing completeness
2. You could accept a colloquial definition. This definition has to be extracted from the things that people call programming languages.
If you opt for #1, then you have to accept you have abandoned #2. There are things that are Turing complete which people in the ordinary use of English may not think of as programming languages. (For instance: an actual Turing Machine with the infinite tape).
If we go with #1, knowing full well that it may be counter-intuitive, then we are left with a technical question which, at least, can be answered. You can see if rule 110 or whatever can properly be implemented. You can decide if some feature of the browser allows for it and so forth. At least you know what the exercise is.
If you decide you want to capture people's intuitive sense of a "programming language" then you have to intuition monger. I think intuitions are informed by the use of the word "language" as well.
So, for instance, people may "program" a VCR, but no one calls that using a programming "language." This is because it does not feel language-like to us. Same with an actual Turing machine. If you transcribe the instructions of the Turing machine into instructions like "1 - go forward, 2 - print a 1, 3 - go back" etc, then suddenly it "feels" like a language.
If you accept that you are intuition mongering, I think you would have to poll people who are familiar with HTML and other languages and ask them. (I suspect they would say, in general, that it is not).
Of course, #2 may change as the language evolves and our sense of what a "language" is evolves with it.