Gehört JavaScript wirklich die Zukunft der Web Anwendungen?

In letzter Zeit rückt die Webentwicklung (zumindest des Frontends) mit den typischen Web 2.0 Technologien wie standardkonformes HTML, CSS der neuesten Generation und Ajax / JavaScript immer mehr in meinen Blickwinkel. Das bedeutet nicht, dass in diesem Bereich tatsächlich mehr passiert als sonst, sondern kann auch lediglich bedeuten, dass mir das Augenfällige dann doch noch aufgefallen ist. Ich bin auch nicht mehr so der Frontendentwickler wie noch vor acht oder zehn Jahren und wenn dann eher in Adobe Flex.

Anyway, es tut sich was im Webbereich und gerade im Bereich der offenen Standards. Neue Technologien sprießen, Frameworks werden immer besser und leichter einzusetzen und Altbewährtem werden neue Aspekte abgewonnen. Wer wie ich schon etwas länger im Webapplication Developement dabei ist, kennt einen Teil der Bewegung, die jetzt aufgezogen ist unter dem Stichwort DHTML. Schon vor rund zehn Jahren war man durchaus in der Lage mittels JavaScript DOM Bäume zu manipulieren und einiges an Dynamik in statische Webseiten bringen. HTML und CSS aber auch JavaScript entwickelte sich fort und brachte immer neue Möglichkeiten.

Neu hinzugekommen (und an das ist das wirklich Neue) ist, dass man aus einer Webseite heraus, Daten nachladen kann, etwas, dass vorher nur proprietären Technologien wie Flash oder Applets möglich war. Ajax fand sich schnell als eingängiges Brand für asynchrone Requests die Daten mittels JSON oder XML von einem Backend holten und darstellten.

Mit Ajax kamen die Frameworks, die Animationen, völlig neue Widgets für HTML und Interaktivität auf Webseiten brachten und den Datenaustausch mit Backends vereinfachten. Mit ExtJS und bspw. jQuery UI stehen komponentenbasierte Frameworks zur Verfügung, die sonst eher im Bereich von Java und Flex zu suchen waren. Neue Browserversionen überbieten sich mit immer schnelleren JavaScript-Engines und ein Ende der Entwicklung ist noch nicht abzusehen.

Und ein Blick in die Glaskugel (wobei eigentlich schon alles bekannt ist) zeigt, dass mit Anwendungstypen wie Google Wave oder Google Docs, Calendar etc. der Browser als Applikationsträger immer wichtiger wird und das eigentliche Betriebssystem zurückgedrängt wird. Googles angekündigtes Betriebssystem Chrome OS scheint vorwiegend als Browserruntime zu dienen. HTML 5 und immer schnellere JavaScript Engines zeigen schon heute was mit Video und Animationen bis hin zum Raytracing im Browser möglich ist – von den neuen Gestaltungsmöglichkeiten mit CSS 3 ganz zu schweigen. Da wird selbst die Luft für Rich Internet Technologien wie Flash, JavaFX und Silverlight dünner.

Aber sollte die Zukunft der Anwendungsentwicklung wirklich in JavaScript liegen? Diese Sprache, die so unleserlich und unschön ist. die noch nicht einmal einen eigenständigen Namen von ihren Schöpfern bekam, sondern sich als Java Irgendwas bezeichnen lassen musste – ohne dabei irgendeine vorteilhafte Eigenschaft von Java zu haben? Ich will und kann es mir nicht recht vorstellen. Selbst wenn die Tools einmal ausgefeilter sind, wird es immer noch eine große Mühe sein, JavaScript zu entwickeln – und damit meine ich nicht nur das eine oder andere Framework zu benutzen, sondern richtig zu programmieren.

Gestandenen Anwendungsentwicklern ist noch nicht einmal ein einigermaßen ausgereiftes Framework wie Flex mit einer relativ elaborierten Sprache wie ActionScript 3 ausreichend, um komplexe Anwendungen zu schreiben. Wie soll das dann erst mit JavaScript vonstatten gehen, wenn wir mal den Umweg über Googles Web Toolkit beiseite lassen?

Auch wenn vieles danach aussieht als würden die Anwendungsoberflächen der Zukunft in JavaScript programmiert werden will es mir nicht wirklich in den Kopf. Trends und Hypes gehen und kommen im Internet schneller als sonst wo aber an den Grundfesten der Softwareentwicklung wird nicht so schnell gerüttelt, das braucht Zeit. Das Versprechen der Offenheit und Plattformunabhängigkeit der Webstandards ist da, aber das wird bspw. auch von Java gegeben. Und wenn sich Adobe entscheiden sollte den Flashplayer zu öffnen, wird wieder ein Konkurrent um die Technologie der Webanwendungen gleichberechtigte Ansprüche anmelden können.

Es ist verblüffend was heute mit Webstandards und Ajax möglich ist, aber das Entwicklungsmodell ist nicht überzeugend. Zu viele Einzeltechnologien mit Interdependenzen und kein so ausgereifter Toolsupport wie bspw. in Java, ganz zu schweigen von Browser-Inkompatibilitäten. Aber JavaScript als Entwicklungssprache muss nicht die Zukunft gehören. Über Google Wave, die vermutlich am weitestgehende Ajax Anwendung sagen die Entwickler selbst: Ohne das Google Web Toolkit (was Javacode in JavaScript/Ajax “kompiliert”), also direkt in JavaScript programmiert, wäre Google Wave nie möglich geworden.

  1. July 11th, 2009 at 12:07 | #1

    Witzig, JavaScript zu verdammen und im gleichen Atemzug ActionScript in den Himmel zu heben.

    ActionScript kann man erst seit AS3 wirklich ernst nehmen. Hinzu kommt, dass beides auf dem ECMA-Standard basiert. Ja, die API und die Tools sind andere, aber wegen den Tools nun die Sprache zerreden?

    AJAX geht übrigens genauso lange wie DOM-Scripting – aber erst als Google es massiv einsetzte, haben sich alle getraut es zu benutzen.

    Gegenpunkt: Wenn die Flex/Flash-Applikationen folgende Punkte verbessern werden sie für mich interessanter, hier ist es nämlich genau andersrum.
    - Browserfunktionalitäten nicht torpedieren (zum Beispiel mittlere Maustaste -> neuer Tab)
    - Deeplinking-Fähigkeit/History (Ok, ist schon besser geworden)
    - Seite so wie sie gerade ist speichern oder drucken (nein, ich möchte keine extra Druckansicht aufrufen, auch keinen “drucken”-Button in Flash haben sondern einfach die Browsereigene Druckfunktion an beliebiger Stelle aufrufen).

    Was sagt es denn über JavaScript aus, dass Google, Facebook und andere große Anwendungen massiv darauf setzen und nur bei Medienwiedergabe auf Flash? Sogar Facebooks Chat ist in HTTP/AJAX umgesetzt und nicht Socket/Flash.

  2. July 11th, 2009 at 13:25 | #2

    Nun ja, also in den Himmel loben sieht anders aus! Ich merkte ja an, dass Flex für Anwendungsentwickler immer noch nicht leicht zugänglich ist, gerade auch weil AS3 einen Scripting Hintergrund hat. Flex ist bei weitem nicht perfekt, nur vom Entwicklungsmodell (Sprache, API, Tools) ist Flex JS einfach überlegen. Die einzige Möglichkeit, JS zu entwickeln, ohne dass es zur PITA wird ist via GWT.

    AS3 ist ja auch nicht der Weisheit letzter Schluss, nur mit JavaScript will ich nicht die Anwendungen der Zukunft entwickeln, zumindest wenn es nicht sein muss ;o)

    BTW: Ajax wurde nach DOM-Scripting zuerst von MS eingeführt, für Outlook Web Access, die anderen Browser zogen erst später nach und da gab es DOM Scripting schon einige Zeit.

  1. No trackbacks yet.