Ich bin HTML-Fetischist. Markup konzipieren und schreiben finde ich super. Darum verfolge ich auch mit grossem Interesse die Entwicklung von HTML 5, der kommenden neuen Version der «Sprache», ohne die es keine Webseiten gäbe. Und natürlich interessiert mich auch der Bezug zu Flash.
Denn eigentlich ist HTML 5 gar kein Flash-Killer; es ist dazu weder konzipiert noch als solcher technisch ausreichend gerüstet. HTML 5 ist nach wie vor sprichwörtlich das: eine Hyper Text Markup Language.
Natürlich wird HTML 5 bei Fertigstellung ein gigantischer Schritt nach vorne sein und ist es jetzt schon. Es spricht überhaupt nichts dagegen, HTML 5 schon heute zu verwenden. Es bringt sogar einige Vorteile mit sich. Aber all diese Erweiterungen sind hauptsächlich nur semantische – sie fügen neue Elemente hinzu, um die Inhalte in ein sinnvolles (sinnvoller als bisher) Dokumentkonstrukt einzubetten, welches dadurch “logischer” mit CSS und Javascript zusammen spielt.
Aus Entwicklersicht ist HTML 5 ein Segen und es macht Spass, die neuen Elemente zu verwenden. Die kommende Version von codeline.ch wird komplett auf HTML 5 umgestellt sein.
Flash-Bashing
Adobe Flash ist momentan fast täglich in den Tech-Medien vertreten – oftmals in negativem Zusammenhang. Nicht zuletzt dank Steve Jobs Anmerkungen anlässlich der Präsentation des neuen iPads, ist Flash in schlechtes Licht gerückt worden. «Flash ist tot, lang lebe HTML 5!» so könnte man Jobs Aussagen zusammen fassen. Auch Google forciert HTML 5 und hat seine Eigenentwicklung «Google Gears» eingemottet. Mit Gears verfolgte Google den Ansatz, Teile von Webseiten dem Benutzer offline zur Verfügung zu stellen, inklusive Datenspeicherung. HTML 5 verfügt ebenfalls über Mechanismen, Daten beim Nutzer zu speichern.
Jede Nachricht zum Thema «HTML 5 ja, Flash nein» wird heftig in der Community diskutiert. Dabei tendiert diese Diskussion aus meiner Sicht etwas zweidimensional zu geraten: es geht oftmals um zwei Elemente (sic!): video und canvas.
video
Das video-Element ermöglicht ein simples Einbinden von bewegten Bildern – genauso wie das audio-Element für Ton gedacht ist. Mehr aber auch nicht. Die Idee dieser Elemente ist nicht einmal besonders neu: das embed-Element (und sein Kumpel aus den Browser-Wars, der object-Tag) ermöglichen die Einbettung schon lange. Neu ist nur der semantische Unterschied in der Benennung der Elemente; video ist einfach aussagekräftiger als embed.
canvas
Apples CEO lässt es sich auch nicht nehmen, die hohe Prozessorlast und vielen Programmabstürze, verursacht durch Flash, hervorzuheben. Zugegeben, er hat schon recht. Flash hat bei mir oftmals für Abstürze gesorgt (was aber durchaus auch durch schlechte Programmierung der Flash-Inhalte verursacht worden sein kann). Und ja, der Prozessor wird stark beansprucht – manchmal mehr, manchmal weniger. Aber rechenintensive HTML 5 Demos (geht nur mit Safari, Opera oder Firefox) brauchen auch ziemlich Saft.
Die canvas gilt überhaupt als das ultimative Feature, welches Flash ins Grab bringen wird. Das Problem ist nur: es gibt keine Editoren, die einen vergleichbaren Komfort gewähren, um canvas-Inhalte (SVG) erstellen zu können. Genau genommen gibt es noch gar keine; alles muss programmiert werden. Da bietet Flash doch schon eine viel komfortablere IDE.
Ich wage mir auch nicht auszumalen, wie es wäre, Werbebanner mit der canvas zu realisieren… Sowas könnte jedoch auch mit CSS3 umgesetzt werden (Safari oder Chrome nötig).
Bezüglich der Prozessorlast ist aber Rettung in Sicht (hoffentlich). Die neusten Versionen des Adobe Flash Players bieten GPU-Beschleunigung. Dabei wird die Videoverarbeitung an die Grafikkarte übergeben (dafür ist sie ja auch da). Die Browserhersteller wollen ebenfalls nachziehen, wie Mozilla.
Ende der Fahnenstange
Hier endet jedoch die schöne neue HTML 5 Welt und ein Rückfall in die dunklen Zeitalter der Browserkriege droht: Es gibt beispielsweise (momentan) keinen gemeinsamen Standard zwischen den Browserherstellern für den zu verwendenden Video-Codec beim video-Element. Firefox und Opera verwenden den lizenzfreien Ogg Theora Codec, Apple und Google H.264, wobei letzterer mittlerweile einen eigenen Codec – WebM – initiiert hat. Sogar die HTML 5 Working Group ist zerstritten.
Für einen Websitebetreiber würde dies – falls auf Flash verzichtet werden soll – bedeuten, dass eine Video-Datei in mehreren unterschiedlichen Formaten konvertiert und gespeichert werden muss. Das ist ökonomisch schlicht nicht sinnvoll. Flash kennt dieses Problem nicht. Ein klarer Pluspunkt.
Hinzu kommt die Verbreitung: Flash ist de-facto überall. HTML 5 ist abhängig von dem verwendeten Browser (und der Version) und daher meiner Meinung nach nur regional aussagekräftig messbar. Ein hübsches Beispiel ist hier der Verweis auf die regionalen Browser/Version Statistiken von StatCounter, zB. China.
Mein persönliches Fazit: Flash bleibt Flash.