Im Blog von Dirk Niemeier bin ich eben auf die interessante Diskussion gestoßen, ob HTML als Programmiersprache anzusehen ist oder nicht.
Dirk geht davon aus, dass HTML keine Programmiersprache ist, da sie turing-unvollständig sei (nach Alan Touring, dem Hauptbegründer der theoretischen Informatik). HTML beinhaltet keine mathematische Funktion, mit der man Berechnungen durchführen kann.
Obwohl ich ebenfalls der Meinung bin, dass HTML keine Programmiersprache ist (sondern vielmehr “nur” eine Beschreibungssprache / Markup-Language), kann man sich über eine Definition wohl weiterhin streiten.

Keine mir bekannte normative Definition verlangt, daß eine Programmiersprache Turing-vollständig sein oder Berechnungen ausführen können muß. HTML ist eine künstliche Sprache mit eindeutigen Anweisungen an einen Computer. Und damit wäre HTML eine Programmiersprache.

Andererseits sollten für eine Programmiersprache einige Vorraussetzungen erfüllt sein. Z.B. sollten Daten verarbeite werden können. Dies gilt für reines HTML schon einmal nicht. Deswegen für eine Programmiersprache Turing-Vollständigkeit vorauszusetzen würde ich dennoch als zu harte Bedingung ansehen. Wie LISP zeigt, ist noch nicht einmal das Vorhandensein von Variablen zwingend nötig. Allerdings wird ohne konditionale Anweisungen eine sinnvolle Verarbeitung von Daten nicht möglich sein und diese Aspekt fehlt HTML grundsätzlich.