Permalink

Was ist ein guter Standard?

Rückwärtskompatibilität

Es gibt zwei Arten von Rückwärtskompatibilität: die einer aktuellen Version einer Spezifikation zu einer vorangehenden Version und die einer neuen Technologie zu einer älteren Technologie, welche sie ersetzt.

Niemand vergisst die vorherige Version, denn es gibt nichts, was Entwickler einer neuen Spezifikation so gut kennen, wie die vorherige Version, die sie zu ersetzen gedenken. Rückwärtskompatiblität wird dabei immer heiß diskutiert.

Letzteres ist allerdings weniger offensichtlich. Es ist in gewisser Hinsicht das Gegenteil zu Erweiterbarkeit und Modularität. Während diese beiden Aspekte hervorheben, dass eine Technologie auf eine Art und Weise entwickelt werden sollte, dass sie auch in Zukunft mit neuen Technologien zusammenarbeiten wird, betont Rückwärtskompatibiltät, dass es wichtig ist, gut mit dem zusammenzuarbeiten, was aktuell da ist. Keine neue Technologie wird ins Nichts hinein entworfen.

Eine neue Technologie hat normalerweise nicht nur in Bezug auf technische Gesichtspunkte mit einer früheren Version kompatibel zu sein, sondern auch mit den Wörtern und Metaphern, die Nutzer gebrauchen, um die alte Technologie zu beschreiben. Neue Paradigmen einzuführen, bringt immer Probleme mit sich, die gegen zukünftige Vorteile aufgewogen werden müssen.

Nehmen Sie CSS als Beispiel: Leute, die HTML verwenden, und gewiss auch die meisten Leute, die Textverarbeitungsprogramme benutzen, sind gewohnt, Style-Informationen direkt den betreffenden Elementen hinzuzufügen. Um zu gewährleisten, dass Stylesheets sofort akzeptiert werden, muss CSS Leuten erlauben, ihre Arbeit in genau dieser Weise fortzuführen und zusätzlich ihre Möglichkeiten zu erweitern.

Als gegenteiliges Beispiel ist XSL zu nennen. Diese Sprache basiert auf einem anderen Ansatz als Stylesprachen: die Leute erstellen zunächst das Styling in Form eines Templates, danach werden darin die Elemente eingefügt. Diese Vorgehensweise erfordert mehr Motivation vom Nutzer, aber dafür eröffnet sie neue Möglichkeiten. Das Zielpublikum sind Benutzer, die die neue Funktionalität brauchen und die Möglichkeit haben, das neue Paradigma zu lernen. Sie müssen sich dafür aneignen, wie man Rekursion und Iteration anwendet und wie man ein Dokument beschreibt, das erst in Zukunft existieren wird, wie zum Beispiel einen Report, der aus einer Datenbank generiert wird.

Manchmal ersetzt eine neue Technologie eine vorherige, allerdings ist es selten, dass die alte vollständig von der Bildfläche verschwindet. PNG ist prinzipiell in der Lage, GIF komplett zu ersetzen, und XHTML kann HTML vollständig ersetzen. Aber selbst in solchen Fällen ist eine Form der Rückwärtskompatibilität in Form von Technologien zur automatischen Konvertierung von Ressourcen in das neue Format notwendig.

»Automatisch« bedeutet hierbei, dass die erforderliche Menge an Intelligenz notwendigerweise begrenzt sein sollte. SVG ersetzt PNG teilweise, nämlich dann, wenn PNG dazu verwendet wird, Diagramme oder Graphen darzustellen. Das lässt sich in SVG besser lösen, aber es gibt keine Rückwärtskompatibilität von SVG zu PNG. In diesem Fall ist der Nutzen von SVG für Bilder dieser Art natürlich so groß, dass sich niemand über den Mangel an Kompatibilität beschwert (aber selbst wenn, SVG unterstützt eine einfache Konvertierungs-Methode: die PNG-Grafik lässt sich in einem SVG-Objekt ohne jegliche Interpretation verpacken).

Das Web als solches ist rückwärtskompatibel entworfen. Die URLs, die den Ort einer Ressource angeben, erlauben den Zugriff über FTP und andere Protokolle, nicht nur über HTTP, und HTTP wiederum ist für beliebige Datei-Typen vorgesehen, nicht nur HTML. Und als letztes Beispiel: HTML erlaubt, jeden beliebigen Dateityp zu verlinken (über das Element a) oder einzubinden (durch die Elemente img oder object), nicht nur HTML-Dokumente und PNG-Grafiken.