Es gibt Zeitgenossen, die geradezu militant eine strikte Unterscheidung von Auszeichnungs- und Programmiersprachen propagieren (anstelle von Auszeichnungssprachen wird häufig auch von Markup- Sprachen gesprochen). Nicht selten steckt dahinter der verletzte Stolz eines Programmiererherzens, das mit ansehen muss, wie sich plötzlich junge Schüler, die ein paar HTML-Elemente kennen, als Programmierer bezeichnen. Obwohl die Trennung zwischen Markup- und Programmiersprachen nicht immer so klar ist wie propagiert (z. B. ist XSLT eine XML-basierte Markup-Sprache, die aber wie eine Programmiersprache prozedural interpretiert wird), so ist es doch sinnvoll, auf die Gemeinsamkeiten und Unterschiede zumindest von HTML und Programmiersprachen hinzuweisen.
Gemeinsamkeiten sind:
- Sowohl Markup- als auch Programmiersprachen sind künstliche Sprachen, welche die Aufgabe haben, einem Computer oder Computerprogramm etwas mitzuteilen oder anzuweisen.
- Sowohl Markup- als auch Programmiersprachen werden als Quelltext notiert. Bestimmte Zeichen, Zeichenfolgen und Schlüsselwörter im Quelltext werden beim Verarbeiten des Quelltextes als Bestandteile der künstlichen Sprache erkannt und entsprechend interpretiert.
Unterschiede sind dagegen:
- Mit Markup-Sprachen werden Dokumente erzeugt, mit Programmiersprachen Scripts oder Programme.
- Dokumente von Markup-Sprachen werden von einem Parser gelesen, der die Dokumentstruktur analysiert, während Scripts oder Programme als eine Folge von Anweisungen abgearbeitet werden, sei es von einem Interpreter oder vom Betriebssystem.
- Eine Programmiersprache gilt nach landläufiger Ansicht dann als Programmiersprache, wenn sich mit ihrer Hilfe eine sogenannte Turingmaschine nachbauen lässt. Eine Turingmaschine besteht aus einem Speicher mit Feldern. In jedes Feld kann ein Zeichen geschrieben werden. Die Turingmaschine kann den Speicher beschreiben bzw. überschreiben, und zwar auf Grund eines Programms. Die Turingmaschine verarbeitet und berechnet also einen Input und erzeugt daraus einen Output. Auszeichnungssprachen sind dazu nicht in der Lage.
Aus Anwendersicht bedeutet der Unterschied erst einmal, dass Markup-Sprachen leichter zu erlernen sind als Programmiersprachen, da sie lediglich Daten mit Bedeutung auszeichnen, während Programmiersprachen das Konzipieren und Realisieren komplexer logischer Abläufe erfordern.