HTML Vor- und Nachteile?

3 Antworten

Bezogen auf die Sprache bist du auf die vorgegebene Palette an Elementen und Attributen aus dem Standard beschränkt. Ob man das als vorteil- oder nachteilhaft bezeichnen möchte, kann man als generellen Streitpunkt werten. Immerhin besteht durch die Begrenzung ein allgemeiner Standard und dieser lässt bereits sehr eindeutige Datenbeschreibungen zu.

Aufgrund der Historie ist dieser Standard nach und nach gewachsen. Wenn man sich die Bezeichner einmal genauer anschaut, fällt auf, dass sie inkonsistent sind. Es werden Abkürzungen (a, b, p) aber auch voll ausgeschriebene Namen (article, footer, section) verwendet.

Auch wenn die Lernkurve eher niedrig ist (das heißt in dem Fall: Es ist leicht verständlich), gibt es dennoch einen höheren Lernaufwand aufgrund des recht komplexen Regelwerks (Bsp.: ein Paragraph hat nichts in einer Headline verloren, oder ein Blockelement in einem Inline-Element). Dieses ist wiederum logisch aufgebaut / nachvollziehbar. In gewisser Weise könnte man sagen, es wäre intuitiv. Die Praxis zeigt aber irgendwie stets etwas anderes. Viele Nutzer setzen sich nicht richtig mit der Sprache auseinander und bauen Konstellationen, die der erwähnten Logik zufolge nie und nimmer richtig sein könnten.

Vielleicht könnte man noch die gewisse Klobigkeit kritisieren (immerhin müssen für Elemente, die auch über einen expliziten Endtag besitzen, die Namen zweimal ausgeschrieben werden und es gibt jedesmal das Klammerpaar <>), doch das hält den Code auch leicht lesbar und verständlich. Zum Vergleich kann man sich ja einmal eine Template Engine wie JADE / Pug anschauen.

Ein weiterer Nachteil der Sprache sollte die Möglichkeit sein, über Interfaces (z.B. style-Tag und -Attribut) andere Sprachen (CSS, JavaScript, ...) direkt einzubinden. Das bedeutet, man kann Logik, Styling und Markup ziemlich wild miteinander vermischen.

Mitunter der größte Pluspunkt von HTML ist seine Transparenz und die Möglichkeit, es kostenlos nutzen zu können. Man benötigt keine kostenlastige Spezialsoftware oder irgendwelche Lizenzen, um die Sprache zu nutzen. Dokumentationen wie MDN oder die Spezifikation vom W3C sind frei einlesbar.

Bezogen auf den Einsatz im Web ist einmal wieder die Länge der Tags ein Kritikpunkt. Es sind halt viele teils unnötige Zeichen, die da von Server zu Browser transportiert werden müssen. Ein Minifying trägt nur reduziert zur Lösung der Datenlast bei. Doch Google empfiehlt in seinen Style Guides nicht umsonst, unnötige Tags möglichst wegzulassen.

Es besteht außerdem eine Abhängigkeit zu Browsern, ob das Markup korrekt interpretiert werden kann oder nicht. So wurde der HTML5-Standard damals erst nach und nach übernommen, alte Browserversionen könnten mit neuen Tags wie section oder aside gar nichts anfangen. Allerdings sollte man dies nicht so sehr als Kritikpunkt nehmen, eher ist es ein Problem, dass die Browser mit verschiedenen Modi versuchen, eine gewisse Abwärtskompatibilität herzustellen und dabei ziemlich fehlertolerant vorgehen (immerhin geht eine Webseite dadurch nicht gleich vollends in die Brüche). Aber auch die Unterschiede zwischen aktuellen Browsern sollten nicht unerwähnt bleiben. Ob und wie aktuelle Attribute behandelt werden und wie die Elemente am Ende aussehen, unterscheidet sich ja von Browser zu Browser aufgrund unterschiedlicher Rendering Engines. Beispiele dafür liefern die input-Typen file und number.

Die weite Verbreitung / Monopolstellung von HTML macht es einfach, zum einen Lernmaterial und Support zu finden und zum anderen, überhaupt Webseiten für verschiedene Browser zu entwickeln. Im Grunde bietet dies sogar die Möglichkeit, Nutzern nahezu plattformunabhängig Daten verfügbar zu machen. Es wird ja nur ein Internetbrowser und eine verfügbare Internetverbindung benötigt.

Doch bekanntermaßen ist HTML auf sein Dasein als Markupsprache begrenzt. Aufgrund dessen gab es ab und an schon den Ansatz, HTML in irgendeiner Form ersetzen/verdrängen zu wollen (s. Java Applets, Microsoft Silverlight, Adobe Flash, Thicky, Shoes, u.a.), um dynamische, interaktive Anwendungen einfacher bauen zu können . Ein Versuch vor etwa sieben Jahren war das QmlWeb-Projekt, welches im Prinzip QML-Code zur Ladezeit der Webseite via JavaScript geparsed hat, um dann schließlich Knoten im DOM anzulegen. Mit HTML5 sind immerhin ein paar Dynamiken hinzugekommen - z.B. die Option, Eingabefelder validieren zu können, ohne selbst explizit JavaScript-Code schreiben zu müssen.

Folgendermaßen kann man diesen letzten Absatz zusammenfassen, dass man die Tatsache, dass Webseiten auf verschiedene Technologien angewiesen sind, um Inhalte dynamisch / interaktiv darzustellen, als Negativpunkt werten kann. Auf der anderen Seite ist dies (wie ich oben schon erwähnt habe), auch positiv, denn so werden Styling, Markup und Logik nicht zu sehr miteinander vermischt (bzw. es ist nicht zwingend notwendig). Zudem können die einzelnen Ressourcen (CSS-Dateien, Markup, Skripte, etc.) sogar gut parallel geladen werden.

Im Entwicklungsprozess lässt sich die Basis von Webseiten zwar schnell zusammenbauen und gut mit Validatortools prüfen. Dennoch können Template Engines u.ä. die Tipparbeit wesentlich verringern.

??? Was meinst du mit Vor und Nachteile? HTML ist halt die Sprache um Webseiten grundlegend aufzubauen, das ist das Argument.

Ob Vorteile oder Nachteile, man muss es am ende des Tages können um eine Webseite zu bauen.