Startseite    

Flex vs. Java

oder

die Abgründe der Internetprogrammierung oder...

Warum wird das Rad immer wieder neu erfunden?

Als ich irgendwann um 1995 meine ersten Schritte im Internet machte, beschäftige mich zunächst hauptsächlich die Syntax von HTML und die Suche nach Programmen, welche auf einfache Art und Weise animierte, transparente gif-Grafiken herstellen konnten. Der Netscape Navigator konnte außerdem bereits Frames und so stand dem geordneten Erstellen von Internetseiten nichts im Weg. Die Einwahl erfolgte zu Hause per Modem und in der Firma, in der ich arbeitete, per ISDN – freilich immer nur so lange online wie nötig, das Wort Flatrate war in Deutschland noch nicht geboren.

Aber das Internet war in aller Munde – insbesondere Firmen wussten aber noch nicht so recht was sie damit anfangen sollten. Meinem damaligen Chef zeigte ich voller Stolz eine erste kleine Homepage mit Logo und Aufzählung der Dienstleistungen, welche die Firma im Internet präsentieren sollte. Mein Chef fand das Abrufen via Browser allerdings zu kompliziert und wusste nicht so recht ob des Sinnes des Ganzen, also ließ ich die Fortführung bleiben.

1997 war es dann schon recht einfach und günstig sich eigene Domains zuzulegen und in direkter Vorarbeit zu meiner heutigen Tätigkeit begann ich damit alle möglichen Firmen aus dem Tuningbereich ins Internet zu bringen. Dies waren meist 5-Seiter, eine Startseite mit möglichst knalligem Startbild, eine Über-uns-Seite, Kontakt sowie ein bis mehrere Seiten auf denen Produkte oder Dienstleistungen dargestellt wurden. An dieser elementaren Grundstruktur von Webseiten hat sich bis heute nichts geändert.

Geändert haben sich dafür die Techniken mit denen die Webseiten erstellt und dargestellt werden. Mein erstes Kontaktformular, welches tatsächlich auch die eingegebenen Daten auf Korrektheit prüfte, programmierte ich über die CGI–Schnittstelle in Perl. Das erste was ich über Perl dachte war: Wieso um Gottes Willen hat jemand Perl programmiert, wenn es doch schon C gab? Natürlich wurde Perl wegen der Unzulänglichkeiten der bestehenden Programmiersprachen entwickelt, von denen es zu diesem Zeitpunkt schon eine Menge gab. Aber behauptet heute wirklich jemand allen Ernstes, Perl wäre leichter zu erlernen oder mächtiger als C? Es gibt für jedes nur erdenkliche Problem Lösungen und Bibliotheken. Da braucht mir auch keiner mit regulären Ausdrücken anzukommen.

Am Anfang war Perl

Aber gut, die meisten Internetseiten, die serverseitige Auswertungen zu erledigen hatten, nutzten Perl–und so lernte ich mich ein. Schnell folgten umfangreiche Skripte und schließlich, als mein erster wirklich großer Internetshop mit tausenden von Artikeln lief, lernte ich Perl zu lieben. Kein Tool hat mich in der Geschwindigkeit, wie es große Textdateien durchforstet, bis heute mehr beeindruckt. Doch mit dem Einsatz der ersten Datenbanken änderte sich dies. PHP in der Version 3 schickte sich an Perl das Handwerk zu legen. Wiederum war mir nicht ganz klar, warum: Der Sprachumfang war geringer, es war ein weiteres abgespecktes C-Derivat, und die direkte Einbettung in den HTML-Code, der den Umweg über die CGI-Schnittstelle erübrigte, gab es mit Embedded Perl auch schon lange.

Wichtige Erkenntniss: Es scheint unter Programmierern und Informatikern ein stillschweigendes Abkommen zu geben Tools und Programmiersprachen lieber sterben zu lassen als weiter zu entwickeln. Oder möglichst schnell neue Technologien einzusetzen, einfach weil sie neu sind. Ach so, Freaks, die an überholter Technik festhalten, gibt es auch jede Menge (und Spinner die ihre Schränke mit alten ATARI-Computern vollstopfen).

Natürlich gibt es aber stets unverdrossene, die sich nicht von Weiterentwicklungen abbringen lassen, selbst wenn alle Welt inzwischen mit dem vermeintlich besseren arbeitet. Und so steht zum Zeitpunkt, als ich diesen Artikel schreibe, bereits die Version 6 von Perl in den Startlöchern, mit vielen tollen Features: Regexes und Grammatiken, die mächtigen Nachfolger von Regular Expressions, erlauben das automatische Parsen mit kontextfreien Sprachen (hört sich gut an). Ein ausgefeiltes Objektmodell mit Mehrfachvererbung, Rollen, Darstellungspolymorphie und vielem mehr (hm, das ist ja wirklich was neues *gähn*).
Einfache Interaktion mit anderen Programmiersprachen (warum?). Einfache Handhabung von Unicode-Strings auf Grapheme-Ebene (ok). Junctions, also Überlagerung verschiedener Werte in einer Variablen (ach du sch****). Einfach zu lernen, da man auch mit einer Teilmenge der Sprache schon sehr weit kommt (Guter Witz!). Viele Möglichkeiten, Code gleichzeitig auszuführen: STM (Software Transactional Memory), Threads, Events und Autoparallelisierung. Tja, ich werde es mir nicht mehr antun.

Evolution im Paralleluniversum

In der Zwischenzeit, so etwa um 1998 rum schickte sich PHP an, Perl und ASP in der Webentwicklung den Rang abzulaufen. Nun, es war einfach und kostenlos verfügbar. (PHP = rekursives Akronym für „PHP: Hypertext Preprocessor“, Backronym aus „Personal Home Page Tools“) Natürlich ein C-Derivat. Und natürlich konnte es bei weitem nicht so viel. So ist es bis heute geblieben. Eine Menge Leute machten damit aber ihre persönliche Evolution durch (man muss seine Fehler selbst machen, damit man daraus lernt) und so besteht das Web heutzutage aus einem Großteil irgendwie ähnlich, aber individuell zusammen gestrickter PHP-Skripten.

Müßig wäre es, jetzt auch noch auf Ruby on Rails oder Python einzugehen. Ich denke Sie wissen inzwischen auf was ich hinaus möchte: Auch bei zig weiteren Programmiersprachen (und das nur fürs Web) wurden auf Grund der scheinbaren Unzulänglichkeiten anderer Sprachen oder Interpreter neue, scheinbar bessere entwickelt, und jede Entwicklergruppe hat für sich seine eigene kleine Geburt durchgemacht um dasselbe herzustellen. Hoffnung: Bei vielen Geburten ist bestimmt auch ab und zu ein Genie darunter.

Vom Server zum Client

Doch halt - es gab noch zwei weitere Entwicklungen im Internet, die es näher zu beleuchten gilt. Java Applets auf der einen, und den Flash Player auf der anderen Seite. Und hier wird es inzwischen, mit wesentlich moderneren Ansätzen, wirklich professionell. Dabei sind die Ansätze grundverschieden: Das Java Applet ist als Folge kompliziertester Programmierer-Hirnverenkungen anzusehen und Flash aus der spielerischen Lust an bunten Bildern entstanden. Wie das?

Ein Java-Applet ist ein Computerprogramm, das in der Programmiersprache Java verfasst wurde und üblicherweise in einem Webbrowser ausgeführt wird. Die Applets wurden eingeführt um Programme direkt im Webbrowser ablaufen und mit dem Benutzer interagieren zu lassen, ohne Daten über die Leitung zum Server versenden zu müssen. Client-seitig wir die Java VM (Virtual Maschine) dafür benötigt. Java-Applets waren Ende der 1990er Jahre mit ein Grund für den Erfolg und die schnelle Verbreitung von Java. Neben Applets existieren auch Servlets, das sind ebenfalls Java-Programme, die allerdings auf dem Server ausgeführt werden.

Schön gedacht, aber leider sehr kompliziert in der Entwicklung. Allein die Installation des Java SDK stellt den ambitionierten Webentwickler vor hohe Hürden. Es gibt zig Varianten die stetigen Updates unterliegen und sich deutlich in der Abwärtskompatibilität unterscheiden. Auch die clientseitigen Updates für die Browser haben es in sich - hier passieren mitunter merkwürdige Dinge denen man recht hilflos ausgeliefert ist. Auch die Java-Bibliotheken machen es dem Webentwickler nicht einfach - jahrelange Erfahrung ist schon Voraussetzung für zügiges Arbeiten. Ein weiteres Manko: Die schwachen Grafikfunktionen bzw. die komplizierte Handhabung derer Bibliotheken.

Adobe Flex

Genau in diese Nische setzten sich Macromedia/Adobe mit ihrem Konzept, eine einfache Entwicklungsumgebung für den Flash-Player bereit zu stellen: Ein Player, der ohne großartigen Installationsaufwand auf jedem Computer läuft und bei den Browsern standard ist. Einbettung von Videos und Animationen ohne Probleme durch Interaktion mit dem Flash-Player. Schnittstelle von der Grafik zur Animation. Einfache und verständliche Bereitstellung der wichtigsten GUI-Elemente mit direkter Schnittstelle zum Flash-Player auf der einen, und zu serverseitigen Funktionen (per XML) auf der anderen Seite. Ein kurzes Wort: Flex. Ein Tool zum programmieren von Rich Internet Applications (RIA). Hiermit lassen sich auf einfache Weise ansprechende, interaktive und schlanke Webanwendungen konstruieren. Diese Anwendungen haben den Vorteil, daß sie nicht nur funktionell (wie z.B. ein Applet) bestechen, sondern zudem auch noch gut aussehen, gute Nutzbarkeit und Ergonomie bieten und äußerst portabel sind. Dies ist heutzutage ein wichtigerAspekt, insbesondere bei der Webentwicklung (Stichwort Web 2.0), wo die Optik eine enorme Rolle spielt. Die neue Generation der Webentwicklungen stützt sich auf Kreativität und Zusammenarbeit.

Mit Funktionen wie der Anwendungsintegration von LiveCycle ES, der PDF-Dokumenterstellung und der Integration in Frameworks wie Hibernate und Spring hat Flex sogar die Lösung für die Verbindung zwischen RIAs und
der Java - Welt.

Den krönenden Abschluss präsentierte Adobe seit Flex in Version 3 mit
dem AIR - Tool. Hier beisst sich die Katze in den Schwanz. Nicht vom Desktop zur Webanwendung, wie es Microsoft oder SUN vormachten, sondern von der Webanwendung zum Desktop-Programm. Mit AIR lassen sich Desktop-Anwendungen aus Flex-Applikationen generieren.

Womit wir wieder am Anfang wären. Das Rad wurde erneut neu erfunden. Aber das macht nichts. Denn man freut sich ja schließlich auch über jeden neuen Porsche der auf den Markt kommt.

Stefan Neumann
Geschäftsführer ACA GmbH
Advanced Computer Advertisement

Zum Seitenanfang
ACA GmbH Webdesign Reutlingen/Tübingen| Rechtliche Hinweise | Datenschutz | Impressum | Kontakt | Seitenübersicht