A colleague recently pointed out that IEEE Spectrum had an interactive tool by which you could explore the top programming languages in various areas (e.g., mobile, web, enterprise, and embedded). Besides noting that my favorite web programming language barely made it into the top ten for the Web (Perl, which they mistakenly called PERL), I was astonished by something.
They included HTML and called it “A specialized language for describing the appearance and content of Web pages.” Say what? If they had called their tool “The Top Languages” (leaving out “Programming”), then fine, but they didn’t.
This nonsense, especially coming from IEEE of all places, set me off. I decided I would have to instruct them about what makes a programming language. I fired up OmniGraffle and got to work. Soon I had the chart you see here, which defines what makes a programming language a programming language for IEEE or anyone else who needs help figuring it out.
Then a different colleague pointed out the XSLT edge case. It’s an edge case because although you can use it to write loops, you can’t run it independently — you need a separate XSLT processing engine like Sax or XSLTproc to execute it. So it is really the combination of XSLT plus a processing engine that can be considered a programming language, given my definition above.
But one thing is perfectly clear — HTML does not make the cut. Also, oddly enough, when you look at only the “Web” programming languages HTML comes in 8th in the list — that’s right, 8th! — below my favorite language Perl. Go figure that one out.