
An der FH Salzburg (Multi Media Art) brandete gestern im Zuge der Vortragsreihe Multimedia-Programmierung ein äußerst interessante Diskussion über die Verwendung dynamischer Datenaustauschtechnologien auf.
Im Prinzip ging es nur um eines Welchen Sinn hat Flash?
Diese Frage hat sich bis jetzt nie für mich gestellt, aus dem einfachen Grund, weil die Beschäftigung mit einem Hype nie mein Fall war, doch was ist AJAX überhaupt.
Grundsätzlich ist es ein im HTTP 1.1 Protokoll definierter Weg HTML-Requests ohne einen Reload durchzuführen. Die eigentliche Mächtigkeit ergibt sich aber erst seit ca. 1/2 Jahr mit der Entwicklung von offenen Java-Script Libraries für diese Technologie die zeitgesteuerte Abläufe einfach ermöglichen. Als tolles Beispiel ist eben jenes System anzuführen, an dem ich gerade eben diesen Text tippe, WordPress setzt mit TinyMCE und der Kategorieverwaltung stark auf AJAX.
Es ermöglicht eine bis dahin in Websites nie gekannte Interaktivität und Usability. Allerdings muss man ganz klar feststellen, dass dies aber erst der Anfang eines großen Schrittes sein kann. Erst eine GUI und ein leistungsstarkes Authoring, bzw. Codekonzepte und der Einsatz von JavaScript-Spezifikation 2 erlauben große Projekte mit stabilem Coding.
Aber nochmal zurück zum Anfang, was ist Flash?
Flash setzt seit Version 7(Flash MX 2004) auf 2 getrennte Authoring-Umgebungen, eine für Animationskünstler und Designer und die Professionel-Variante für Programmierer. In diesem Zusammenhang sind auch 2 Entwicklungsumgebungen besonders hervorzuheben, der in Eclipse implementierte FDT-Editor und ein von Alessandro Crugnola programmierter Open-Source Editor namens SEPY.
Seit diesen Versionen ist ein für Programmierer sinnvolles API-Handling zumindest teilweise implementiert und ermöglicht prinzipiell die Produktion von stabilem sauberen Code. Auch die Produktion von Komponenten und die Entwicklung des Flex-Framework haben wesentlich dazu beigetragen mächtige RIA´s (Rich Internet Application) zu designen.
Diese Trennung der Programmteile war ein wichtiger Schritt um die Prioritäten von Flash neu zu definieren. Flash ist historisch betrachtet ein Tool für Designer und Animateure und entwickelte mit ActionScript eine mehr oder minder fähige Sprache, die auf die Zeitleistenfunktionalität aufsetzte. Mit der Zeit wurde die Entwicklung von Applikationen derart wichtig, dass sich die Sprache auf einer komplett falschen Basis rasant entwickelte. Durch Einführung von ActionScript 2 wurde der erste richtige Schritt getan und die von Adobe/Macromedia veröffentlichte Spezifikation von ActionScript 3 verspricht eine weitere Steigerung.
Wenn man versucht Flash nicht als ein Tool für alles zu betrachten, sondern jeweils die Stärkten der unterschiedlichen Versionen als eigenständiges Entwicklunsgerät zu verwenden ist meiner Meinung nach der 1. Schritt getan. Flash für Entwickler muss ein Compiler werden(wie es bei MTASC bereits als OpenSource umgesetzt wurde) der auf ein starkes, mächtiges und großes Framework aufsetzt.
Flash für Designer und Animationskünstler muss eine zeitleistengesteuerte Oberfläche bleiben und auf die Stärke des Small Web Format (SWF) setzen. Die Überlegenheit die diese Applikation von anderen und natürlich von AJAX unterscheidet ist ein Austausch der einzelnen Komponenen von Entwickler und Designer ist einfach und schnell zu realisieren, die Oberfläche für eine RIA oder ein Spiel sind in einem einzigen Programm zu realöisieren und ermöglichen dem Einzelnen und dem Team eine feste Entwicklungsstruktur für Projekte zu integrieren. Die Verwendung von Editoren wie FDT und SEPY ist mit seinen Refactoring und Entwicklungswerkzeugen ein erster Schritt in Richtung Applikationsentwicklung.
Wenn jetzt natürlich der berechtigte Einwand kommt, Java und Co. sind “richtige Programmiersprachen” und für die Applikationsentwicklung vorgesehen, muss man hier prinzipiell recht geben, allerdings der wirtschaftliche Faktor ist bei Webapplikationen ein wesentlicher im Gegensatz zur Softwareentwicklung, betrachtet man die Durchlaufzeiten bei Desktop-Anwendungen im Vergleich zu Webanwendungen ist dieser gravierend, da die Test und Entwicklungszeiten im Web nur einen Bruchteil ausmachen.
Flash kann eine Lösung für zukünftige Präsentationen im Webbereich und interaktive Anwendungen werden. Was meiner Meinung nach auszuschließen ist, das AJAX und ähnliche Entwicklungen in die Präsentationssparte eindringen können.
Interessanter ist der Vergleich im Bereich interaktiver Anwendungen. Sobald die Entwicklungswerkzeuge und Frameworks von AJAX eine genügend entwickeltes Stadium erreichen, wird die Implementierung um ein vielfaches kostengünstiger und einfacher zu lösen sein als mit bisherigen Flash-Applikationen. Allerdings mit einer Einschränkung, die Strukturen erfordern auch ein serverseitiges Lösungsmodell, dass zu 100% kompatibel sein muss und natürlich in der Einfachheit der Client-Entwicklung nicht nachstehen soll, Macromedia/Adobe haben hier den Vorteil von 10 Jahren Entwicklungszeit und eine Konformität innerhalb der Produktlinie, die zwischen den unterschiedlichen Entwicklungswerkzeugen einen nahezu reibungslosen Austausch ermöglicht.
Wie Fr. Mairitsch (Studiengangsleitung Multi Media Art) ziemlich treffend formulierte ist es eine Frage der Timeline und der Dimension Zeit an dem sich diese Fragestellung entscheiden wird. Fr. Jellinek (Studiengangsleitungsstv. Multi Media Art und Head für Multi Media Programmierung) brachte ein meiner Meinung nach weiter interessantes Argument, das die Entwicklung eines neuen Client und Backend-Modells wie mit Ruby, die beidseitig auf dieselbe Technologie und Struktur aufsetzen der Weg in zukünftiger Webentwicklung darstellt.
Der Konkurrenzkampf Flash vs AJAX und Co. um interaktive Webanwendungen wird in den nächsten 5 Jahren sicher interessant zu beobachten. Eines sollte man aber nie vergessen, Flash bietet ein in eine Sandbox (Flash Virtual Machine) implementiertes geschlossenes Sytem. Es wird auch eine Frage der Performance und natürlich der Wirtschaftlichkeit. Der einzige Vergleich der in dieser Diskussion hinkt und deshalb auch nicht angesprochen wurde ist der Vergleich Director – Flash und Flash – AJAX, weil diese Systemvergleiche meiner Meinung nach auf Grund der unterschiedlichen Ausgangssituation nicht möglich ist.(Geschlossenes System, proprietär, etc.).
Was AJAX aber absolut einen Startvorteil verschafft, bestehende und bekannte Strukturen zu verwenden und als Open-Source Implementierung natürlich frei verfügbar zu sein.