Markdown — wie krank ist das denn?

Markdown LogoAm Anfang war das Wort. Menschen schreiben seit Jahrtausenden. Sie schreiben von links nach rechts oder von rechts nach links. Oder sie schreiben von oben nach unten.

Als die Menschen merkten, dass ein Wort noch keine Bedeutung hat, sondern nur ganze Sätze, erfanden sie ziemlich früh Satzzeichen und Absätze, um die Schrift weiter zu strukturieren. Am Anfang waren es, wie bei den nordischen Runen, noch einfache Punkte, dann kamen Ausrufe- und Fragezeichen, Kommata, Doppelpunkte und Semicolons.

Das sind so in etwa auch die Möglichkeiten, die man bis in die 80er Jahre noch bei Schreibmaschinen hatte. Da gab es noch keine Fett- oder Schrägschrift. Zeitungen konnten da schon lange Zeit viel mehr: Schrift konnte in riesigen Lettern auf der Seite eins prangen, sogar in verschiedenen Farben.

In den 80er Jahren kam dann die Computertechnik in Form von Homecomputern in die Wohnzimmer. Und dann, als jeder einen PC und ein Modem hatte, kam irgendwann das Internet. Und mit ihm kam HTML.

Frühes HTML

In der frühesten Version von 1992 gab es nur ganz wenige Tags für die Formatierung der Texte. Es gab grob gesagt Titel, Absätze, Überschriften in verschiedenen Ebenen und Verlinkungen auf andere Texte. Zur Darstellung des Textes konnte man nicht viel einstellen: Entweder konnte es normaler fließender Text sein, wobei Zeilenumbrüche ignoriert wurden aber durch das <p> Tag bewusst gesetzt werden konnten. Es gab Listen, vorformatierten Text, zum Beispiel für Code und die Möglichkeit mit einem Highlight-tag Schrift hervorzuheben.

Seitdem ist HTML wesentlich komplexer geworden. Das heutige HTML5 hat über 100 Tags mit denen HTML-Texte ausgezeichnet werden können. Heute ist zudem das Erscheinungsbild (CSS) von der Syntax (HTML) getrennt. Man kann also selber Farbe, Form und Position jeden Elementes selbst festlegen.

Zudem wurde die Möglichkeit geschaffen, Webseiten nicht nur darzustellen, sondern auch im Webbrowser Programme laufen zu lassen (Javascript), die Dinge dynamisch verändern können oder sogar die Webseite selbst erst komplett zusammenbauen, so dass ganze Anwendungen heute im Webbrowser ausgeführt werden können — alles mit HTML und seinen Begleitern CSS und Javascript.

Die Sehnsucht nach der Einfachheit

Wie verständlich ist da doch die Sehnsucht nach einer neuen Einfachheit. Warum kann man Texte nicht einfach wieder so schreiben, wie das früher auf der Schreibmaschine war. Überschriften wurden einfach mit Bindestrichen oder Gleichheitszeichen hervorgehoben (man hatte ja nichts anderes), Aufzählungen wurden mit Bindestrichen dargestellt oder durchnumeriert, für Absätze wurden einfach Leerzeilen eingefügt.

Es ergibt sich dabei ein vertrautes Bild, Text, wie wir ihn auch aus normalen Textdateien oder aus dem E-Mail kennen:

Das Ende des Abendlandes
========================

Das Ende des Abendlandes steht kurz bevor. Folgende Anzeichen sind heute schon deutlich zu erkennen:

1. Die Menschen werden immer dekadenter
2. Alles geht nur noch online
3. Sogar für das Schreiben braucht man heute Computer

Geht doch. Einfacher Text, den jeder lesen und verstehen kann. Und man muss kein HTML lernen. Nun kam jemand auf die Idee, dass man doch diesen Text auch zur Anzeige in Webbrowsern in echtes HTML umwandeln könnte. Da ändert sich zwar nicht viel, aber es sieht doch schöner aus und fügt sich besser ein. Und, schwupps, schon ist aus einfachem Text eine Auszeichnungssprache geworden.

Was ist der Unterschied: Bei Text kann ich schreiben was ich will, bei einer Auszeichnungssprache muss ich bestimmte Konventionen beachten, damit das Ganze richtig angezeigt wird. Es heißt dann nicht mehr Text, sondern Markup oder eben Markdown.

Warum ist das krank

Nun fragt sich der besorgte Bürger natürlich, warum er eine Auszeichnungssprache lernen soll, wenn er in jedem Textprogramm Texte ganz natürlich schreiben kann, ohne etwas besonderes lernen zu müssen? Versteht eine Schreibkraft, wie das Dokumentenformat von Microsoft Word aufgebaut ist? Muss ein Blogger oder ein Mitglied von Facebook wissen, wie sein Blog oder Facebook seine Texte intern darstellt? Nein. Und warum nicht? Weil jeder Mensch für seine Texte einen Editor braucht und es nicht einzusehen ist, warum der Mensch sich die Arbeit machen soll, wenn der Editor es kann. Der Editor bewahrt den Schreiber außerdem vor Fehlern. Schonmal bei HTML vergessen, ein Tag zu schließen?

1. Postulat: Kein elektronischer Text kann ohne Editor geschrieben werden.

Aber was macht ein solcher Editor nun eigentlich? Er übersetzt das, was der Mensch schreibt, in für Maschinen speicherbare Daten. Das muss er eh tun. Der Buchstabe A wird zum Beispiel zu einer Zahl 65, B zu 66 und so weiter. Eine 65 kann man nicht lesen, ein A schon. Lädt ein Mensch einen Text wieder in den Editor, werden aus den Zahlen wieder Zeichen.

Warum also soll ich als Schreiber noch eine zusätzliche Ebene einführen und den Text in einer besonderen Art und Weise schreiben, damit der Editor da noch etwas zusätzliches reininterpretieren kann?

2. Postulat: Der Editor übersetzt Daten in Schrift und nicht der Schreiber.

Aber es ist doch viel einfacher, wenn ich mit der Tastatur ein paar Zeichen einfüge und der Text dadurch Überschriften, Listen, Fettschrift und bekommt. Viel Effekt mit wenig Aufwand? Schauen wir einmal:

Ist dies ...

*Dies ist fett*

... wirklich einfacher als dies ...

<b>Dies ist fett</b>

Ist dies ...

=== Überschrift ===

... wirklich einfacher als dies ...

<h3>Überschrift</h3>

Ist es vor allem dann noch einfacher, wenn ich es selbst schreiben muss, anstatt einmal im Editor ein Tastaturkürzel zu drücken oder die Maus zu klicken? Ist eine Fettschrift mit Sternchen einzuleiten in einem ungenügenden Editor wirklich einfacher, als in einem genügenden Editor Fettschrift einfach als Fettschrift zu sehen? Gibt es einen Grund, warum ich als Schreiber Textauszeichnungen im Rohformat lesen muss?

3. Postulat: Ein genügender Texteditor stellt Textauszeichnungen in der vom Schreiber gemeinten Weise dar.

Warum ist ein normaler Text einfach? Er ist einfach, weil es nur ganz wenige Möglichkeiten der Darstellung gibt und wenig technische Dinge, die ich wissen muss. Will ich mehr Möglichkeiten, dann muss ich komplexer werden.

Aber ein Text muss auch vom Computer verstanden und geprüft werden. Eine HTML-Datei hat Tags in eckigen Klammern und alles andere ist normaler Text. Das kann ein Editor oder ein Programm einfach interpretieren (parsen) und verarbeiten.

Nehme Ich Markdown, dann habe ich zunächst einfachen Text, bei dem jedes Feature nun aber auf andere Art und Weise interpretiert werden muss: Überschriften entweder durch Unterstreichen in der nächsten Zeile oder durch vor- und nachgestellte Gleichheitszeichen. Listen werden durch Bindestriche am Zeilenanfang eingeleitet und Blocktext durch eine Einrückung des gesamten Textes durch mindestens vier Leerzeichen.

Einen Link kann ich einfach einfügen und er ist ein Link. Aber will ich einen Link hinter einem Wort verstecken, will dieses ggf. noch farbig gestalten und noch einen Hover-Effekt haben, so dass ich ein Tooltip bekomme, wenn ich mit der Maus drüber gehe, dann wird es komplex und hässlich. Das ist dann nicht mehr einfach zu lesen und verfehlt so den ursprünglichen Zweck des neuen Datenformates.

Will ich dann noch weitere Möglichkeiten, wie Fußnoten oder Annotierungen, dann wird es vollends grausam. Der Text wird zu einem riesen Kuddelmuddel, da er ja in Rohform verständlich sein soll, es aber nicht mehr ist. Völlig ad Absurdum geführt wird es nun, wenn ich den Text im Markdown-Format nun noch um Inline-HTML-Elemente erweitere. Ich habe also nun auch noch einen Mix aus verschiedenen Formaten. Das inzwischen unleserliche Markdown und darin das angeblich ja sowieso nicht lesbare HTML. Fragt sich, warum das nun einfacher werden soll, vor allem für Programmierer.

4. Postulat: Einfachheit entsteht aus der Kombination von klaren Regeln und wenigen Möglichkeiten.

Man fragt sich natürlich, wie es überhaupt so weit kommen konnte. Und eine mögliche Antwort wäre, dass heutige Webbrowser zwar komplexe HTML-Seiten darstellen können, aber nicht ohne zusätzliche Programmierung einen Editor dafür haben. Und wer möchte sich schon HTML (oder sonst ein Datenformat) in Rohform anschauen?

Resumé

Der Wunsch nach Einfachheit ist vollkommen legitim. Aber es bleibt eben nur einfach, wenn ich auch mit wenigen Möglichkeiten auskomme. Wenn ich doch alle Möglichkeiten von HTML5 haben möchte, dann verliere ich die gute Lesbarkeit einfachen Textes und ebenso die gute maschinelle Verarbeitbarkeit von einem klar strukturieren Datenformat.