Archiv für Februar, 2010

Adobes langer Weg auf die mobilen Devices

Adobe steht, was seine Schlüsseltechnologie Flash angeht, gegenwärtig ein wenig unter Druck. Kleinlaut werden Fehler behoben, die schon seit etlichen Versionen den Flashplayer unter Mac zum Absturz bringen und verzweifelt wird versucht, die Flash Runtime auf möglichst allen mobilen Devices unterzubringen. Auf allen? Da gibt es eine Firma namens Apple, die Flash um keinen Preis auf iPhone, iPad und iPod touch haben will. Begründet wird das vorwiegend damit, dass Flash zu ressourcenhungrig sei. Ein weitaus wichtigerer Grund dürfte jedoch sein, dass mit Flash eine alternative Runtime hinzukommt und somit die Alleinkontrolle über das, was an Anwendungen auf das iPhone kommt nicht mehr in Apples Hoheit liegt.

Scheint der Kampf um den Flashplayer auf dem iPhone verloren und steht er “nur” auf Android und anderen mobilen Plattformen zur Verfügung geht es nun um andere Wege, Flashtechnologie als Anwendungsplattform auf die mobilen Endgeräte zu bringen.

Adobe versucht die Restriktionen auf dem iPhone zu umgehen, indem mit der kommenden Version 5 der Creative Suite ein Tool (Compiler?) mitgeliefert wird, das aus beliebigen Flash-Anwendungen native iPhone-Apps erzeugt. Diese unterliegen dann nicht mehr Einschränkungen von Apple, denn sie sind ja native Apps. Für die anderen mobilen Plattformen bedient sich Adobe einer Technologie, die es auf den Desktops dieser Welt schon seit zwei Jahren gibt: Adobe Air. Um mittels der Flashtechnologie semi-native Applikationen auf möglichst mobilen Endgeräten zu ermöglichen, entwickelt Adobe die Air Runtime  zunächst für Android andere Betriebssysteme wie Blackberry OS und später auch Windows Mobile sollen folgen.

Auch wenn es mit diesen Schritten weiterhin nicht möglich sein wird, Flash-Video auf dem iPhone anzusehen, gehen diese Schritte in eine ganz andere, bedeutendere Richtung. Adobe könnte so Flash / Flex zu der universalen Entwicklungstechnologie machen, die auf Desktops, mobilen Devices und auf allen weiteren möglichen Endgeräten läuft. Das “Write once run anywhere”-Motto von Java wäre dann wieder mit einer anderen Technologie auferstanden. Und da Adobe die komplette Toolchain zur Entwicklung von solchen Anwendungen in seiner Hand hat, ist die kommerzielle Motivation auch klar.

HTML 5 vs Flash

Nicht zuletzt befeuert durch die kolportierten Äußerungen von Steve Jobs zu Flash und HTML 5 wird es einmal Zeit, sich des Themas unvoreingenommen zu widmen. Wir nutzen zwar Adobe Flash Technologie in Form von Flex, kleben aber nicht in dem Sinne an einer Technologie wenn es bessere Alternativen dazu gäbe.

Eines der Hauptargumente, das die Ablösung von Flash durch HTML 5 untermauern soll, ist der Einsatz von Video auf Webseiten. Flash hat Webvideo erst salonfähig und massenkompatibel gemacht, weil es kein zusätzliches Plug-in benötigte außer dem, was zumeist ohnehin schon vorhanden war. Von Version zu Version wurde die Qualität und die Performance der Videos besser. Mittlerweile lassen sich Videos in HD ansehen und bald auch in Ansätzen Hardware beschleunigt.

HTML 5 erlaubt nun auch das Abspielen von Videos ohne Plug-in, aber nicht in allen Browsern, sondern nur etwa in Safari oder Google Chrome – bei YouTube etwa kann man die Default-Anzeige umstellen. Die anderen mögen nachziehen, jedoch sieht man daran ein Problem bei HTML 5 und seinen Komplementär-Technologien: Es ist vor allem erst einmal ein Standard. Ein Standard, der nicht dazu verpflichtet von allen Browserherstellern gleich schnell implementiert zu werden. Es kann noch nicht einmal die Garantie gegeben werden, dass der Standard jemals in allen Browsers überhaupt umgesetzt wird – man erinnere sich beispielsweise an die Alleingänge von Microsoft in früheren Versionen des Internet Explorers.

Schaut man sich die großen Player im Web-Videogeschäft einmal, ist man über die reine Darstellung von Videoinhalten zumeist schon hinaus. Auf YouTube etwa werden in die Videos hinein Flashelemente gerendert, die entweder Zusatzinformationen, Werbung oder bei Musiktiteln Links zum direkten Kauf des Tracks einblenden. Diese Overlays in Webvideos stehen erst am Anfang ihrer Möglichkeiten. Reines Videoplayback wird zwar noch wichtig sein, aber durch neue, interaktive Formate ergänzt werden. Hier müssen HTML 5 und auch vermutlich auch HTML 6 passen und falls es doch einmal gehen sollte, wird es sicherlich etliche Jahre dauern, bis es überall zur Verfügung steht – wenn überhaupt.

Wenn es alleine um Video-Playback geht wird man Flash nicht mehr unbedingt benötigen. Aber Flash war nie nur ein Videoplayer sondern immer schon viel mehr, wird aber auch in diesem Feld seinen Platz weiterhin behaupten können.

Ein weiteres Thema in Sachen kommende Webstandards und Flash ist die Frage nach 3D im Browser. Flash kann schon seit langem 3D darstellen, es gibt verschiedene Engines, die von der Frame Rate her locker als Player für anspruchsvolle 3D Spiele dienen können. Mit den jüngeren Flashplayer-Versionen wird 3D auch immer intensiver von der Runtime unterstützt. Flash ist hier schon, wo HTML mit seinen zaghaften Experimenten gerade erst beginnt. 3D CSS ist sicherlich beeindruckend aber es ist momentan nur in experimentellen Versionen des Browserframeworks Webkit möglich, was beispielsweise die Basis für Apples Safari darstellt.

Auch bei 3D stellt sich die Problematik, dass der Zeitraum bis 3D in (eventuell) allen Browsern verfügbar sein sollte, so groß ist, dass Flash einige Jahre Zeit haben wird, seine Fähigkeiten zu erweitern und zu verbessern.

Es gibt sicherlich noch etliche andere Beispiele, an denen man die Problematik zwischen einem Standard und einer konkreten Runtime diskutieren kann. Das Problem ist immer, dass der Runtime-Hersteller dank der Proprietät der Runtime einfach seinen Standard setzt. Und durch die extrem große Verbreitung der Flash Runtime, sichert sie den technologischen Vorsprung und die Entwicklungsgeschwindigkeit, den sie gegenüber den offenen Standards hat.

Selbst wenn der Flashplayer unter Mac, um Steve Jobs Meinung aufzugreifen, vielleicht nicht ganz so performant wie sein Windows-Pendant ist, so muss man auch überlegen, was die Runtime leistet, wenn sie CPU-Ressourcen verbraucht: HD Video, 3D, Spiele, Rich Internet Applications etc. Ein leerer Flashfilm oder eine leere Flexanwendung verbraucht kaum CPU-Zyklen. Der Verbrauch an Prozessorpower  liegt zum einen daran, was die Runtime abzuarbeiten hat und zum anderen wie es der Entwickler programmiert hat.

Die Entwicklungen, die HTML 5, 3D CSS und die anderen, neuen Frontend-Technologien vollziehen ist sicherlich bemerkenswert und für Frontend-Entwickler eine nette Spielwiese. Aufgrund einiger zaghafter Anfänge aber bereits das Ende der Flash Technologie Plattform einzuläuten ist mindestens fünf Jahre verfrüht und im gegenwärtigen Stadium auch nicht sachlich. Und letztlich ist es das alte Katz und Maus Spiel: Flash prescht voran und wenn die Webstandards nachziehen, hat Flash wieder einen so gewaltigen Vorsprung und so weiter und so fort…