Dienstag, 7. August 2007 |
Kolumne
AJAX, Asynchronous JavaScript and XML, ist nur eine Möglichkeit
und nicht unbedingt die beste, um Rich Internet Applications, RIAs, zu
realisieren. AJAX-Anwendungen kämpfen wie alle HTML-basierten
Webanwendungen mit einem altbekannten Problem: der
berühmt-berüchtigten Browser-Inkompatibilität. Eine
einfache Lösung für dieses Problem hat Raju Bitter anzubieten.
NX: Hallo
Raju! Du bist Evangelist für OpenLaszlo in Deutschland. Kannst du
uns mit wenigen Worten sagen, was OpenLaszlo ist?
RB: OpenLaszlo ist die
weltweit einzige Plattform für die Entwicklung von Rich Internet
Applications, mit der man gleichzeitig AJAX- und Flash-Anwendungen
für den Browser entwickeln kann. Die OpenLaszlo-Plattform wird von
der kalifornischen Firma Laszlo Systems entwickelt und unter der IBM
Common Public License als Open-Source-Software zur Verfügung
gestellt. OpenLaszlo-Anwendungen werden in der OpenLaszlo-spezifischen
Programmiersprache LZX geschrieben. LZX basiert auf W3C-Standards
wie XML, XPath und JavaScript, was den Einstieg für
DHTML-Entwickler erleichtert. Technisch betrachtet handelt es sich um
eine
Java-Webanwendung, in der über ein Java-Servlet der LZX-Compiler
aufgerufen wird und die in LZX programmierte Anwendung in
JavaScript-Code oder Flash-Bytecode umwandelt. Der so generierte Code
wird dann im
Browser oder auch in Embedded-Systemen ausgeführt.
NX: Woher
kommt der Name OpenLaszlo?
RB: „Open“ steht
natürlich für Open Source, Laszlo stammt vom Namen der Firma
Laszlo Systems, die wiederum nach László Moholy-Nagy,
einem ungarischen Maler, Fotografen und Bauhaus-Professor benannt
wurde. Genau genommen besaß ein Designer und Mitbegründer
von Laszlo Systems eine Katze mit dem Namen Laszlo, die nach
László Moholy-Nagy benannt war und den Namen für
Laszlo Systems lieferte.
NX: Welche
Vorteile bietet OpenLaszlo gegenüber AJAX?
RB: Wenn wir über die
existierenden AJAX-Toolkits wie Dojo, Prototype, Scriptaculous
sprechen, so handelt es sich dabei um JavaScript-Bibliotheken, mit
denen man RIAs entwickeln kann. Die Entwickler von OpenLaszlo hatten
bei der Gründung der Firma im Jahr 2000 die Vision,
plattformübergreifend RIAs mit variablem Skinning (Anm. d. Red.:
„Aussehen“) und anpassbaren Komponenten zu entwickeln. Es
werden also niemals die Browser-eigenen Komponenten verwendet, sondern
immer die OpenLaszlo-spezifischen. Auch die Animations- und
Layoutengine ist im OpenLaszlo-Server enthalten und damit auf
verschiedene Runtimes übertragbar. Deshalb ist es möglich,
eine einheitliche User-Experience über AJAX, Flash und weitere
zukünftige Runtimes
–
Java, für das es schon einen Player
gibt, vielleicht Silverlight oder SVG
–
liefern zu können, ohne
dass der Entwickler sich mit Cross-Browser-Scripting und zum Beispiel
Flash-ActionScript beschäftigt.
NX: Und
welche Nachteile hat es?
RB: OpenLaszlo wird in der
LZX-Programmiersprache programmiert. Um mit OpenLaszlo AJAX- oder
Flash-Anwendungen zu entwickeln, muss man zuerst LZX erlernen. Leider
gibt es außer Eclipse-Plug-ins mit Autovervollständigung bis
jetzt keine visuellen Composer für OpenLaszlo. Wenn auch die
Dokumentation zu OpenLaszlo und LZX gut ist, gibt es erst zwei
englischsprachige Bücher zum Thema, und die Integration von
OpenLaszlo in Frameworks wie Spring, Ruby on Rails, Grails und PHP Cake
oder Symfony ist noch nicht gut dokumentiert.
NX: Welche
Rolle spielt XML bei OpenLaszlo?
RB: LZX selbst ist XML, der
Datenaustausch zwischen Server und Client ist auf XML ausgerichtet
–
Databinding über XPath-Ausdrücke. Ohne XML wäre
OpenLaszlo nicht denkbar, der deklarative Ansatz der Entwicklung von
Oberflächen wurde von Adobe Flex und Microsoft mit XAML
aufgegriffen, OpenLaszlo war hier entweder Vorbild wie bei Flex
oder Vorreiter wie bei XAML.
NX: Warum
nutzt OpenLaszlo als Beschreibungssprache gerade XML?
RB: Für die Etablierung
einer neuen Programmiersprache ist es unerlässlich, auf
bestehenden, etablierten Standards aufzubauen. Der deklarative Ansatz
der Entwicklung von Interfaces unter Verwendung von HTML-Tags war einer
der weltweit erfolgreichsten Standards und unerlässlich für
den Erfolg des Internets. Wir glauben, dass dieser Technologieansatz
auch für den Bereich der Rich Internet Applications erfolgreich
ist. Adobe mit MXML und Microsoft mit XAML bestätigen unseren
Ansatz.
NX: Siehst
du Alternativen zu XML in diesem Bereich?
RB: Von vielen
Java-Entwicklern bekommen wir die Frage gestellt: Warum ermöglicht
ihr nicht die Generierung von Flash- oder AJAX-Applikationen über
Java-OpenLaszlo-API-Aufrufe? Dahinter steckt natürlich das
Gefühl, lieber in Java zu programmieren als mit einer Mischung aus
XML-Tags und JavaScript. Andererseits zählt Gartner Laszlo Systems
mit OpenLaszlo zu den Cool Vendors in Application Development 2007. Als
Grund wird hier ausdrücklich genannt, dass OpenLaszlo die
einzige RIA-Plattform darstellt, in der Entwickler das Interface in
einer deklarativen (nichtprozeduralen) Weise definieren können
und gleichzeitig verschiedene Laufzeitumgebungen anvisieren können
(AJAX, Flash und die Java 2 Plattform, Micro Edition). Der deklarative
Ansatz bei der Entwicklung wird hier also klar als Vorteil gesehen,
auch wenn es innerhalb des Teams schon die Überlegung gab, ob man
nicht auch die Entwicklung über reinen JavaScript-Code besser
unterstützen sollte.
NX: Welche
besondere Unterstützung bietet OpenLaszlo für XML-basierte
Web Services?
RB: Alle gängigen
Standards werden unterstützt, allerdings abhängig vom
Deployment der OpenLaszlo-Applikation: Wir unterscheiden zwischen dem
SOLO-Modus und dem Proxied-Modus beim Deployment. Bei SOLO werden
HTTP-Requests, XML-over-HTTP, also REST-API-Aufrufe unterstützt.
Im Proxied-Modus fungiert der OpenLaszlo-Server als Request-Proxy. Dann
werden SOAP, Java-RPC und XML-RPC unterstützt, es muss dann aber
ein Java-Webserver
–
Tomcat, Websphere, Weblogic usw.
–
installiert
sein, auf dem der OpenLaszlo-Server läuft.
NX: Welche
weiteren XML-Standards unterstützt OpenLaszlo? XPath, XSLT oder
gar XQuery?
RB: Beim Mapping der
Datenobjekte auf XML-Dateien wird XPath verwendet. XSLT oder XQuery
kommen noch nicht zum Einsatz. Der Grund hierfür ist die fehlende
Unterstützung durch die Flash-Runtime.
NX: Wie
siehst du die Konkurrenz von XAML und Silverlight, dem
Flash-Konkurrenten aus dem Hause Microsoft?
RB: XAML und Silverlight
bieten – nicht auf JavaScript-Ebene, sondern auf Ebene der Common
Language Runtime – eine erheblich höhere Performance als
Flash oder DHTML und AJAX. Da Silverlight bei Windows Vista
vorinstalliert ist, kann man damit rechnen, dass Silverlight Flash
innerhalb der nächsten zwei Jahre erhebliche Konkurrenz bereiten
wird. Die fehlende Hardwareunterstützung für den
Flash-Player, aber auch für herkömmliche AJAX-Anwendungen,
wirkt sich gerade auf mobilen Geräten sehr stark aus. OpenLaszlo
4.0 macht es durch die neue Architektur problemlos möglich,
weitere Runtimes, zum Beispiel also auch Silverlight,
hinzuzufügen. Entsprechend nehmen wir Silverlight nicht so sehr
als Konkurrenz war, sondern planen langfristig auch die Generierung von
Silverlight aus LZX Code.
NX: Worin
unterscheiden sich LZX und XAML?
RB: XAML füllt für
Microsoft eine Lücke im Bereich der .NET-Entwickler. XAML ist
darauf optimiert in Kombination mit Sprachen wie C# oder anderen
.NET-Sprachen moderne Interfaces zu entwickeln. .NET liefert hier den
serverseitigen Technologiestack. LZX wurde unabhängig von der
serverseitigen Technologie
–
PHP, Java, .NET, Python, Ruby
–
entwickelt. Wir bevorzugen keine Technologie. Während OpenLaszlo
ab der Version 4.0 zunehmend CSS unterstützt, muss in XAML die
Formatierung über neu zu erlernende Tags vorgenommen werden.
NX: Ist XUL ein direkter Konkurrent zu LZX?
RB: Wir nehmen XUL nicht als
Konkurrenten wahr, es gab innerhalb des Mozilla-Teams auch schon
Interesse, LZX nativ durch den Browser zu unterstützen. Wer einen
Blick auf erfolgreiche OpenLaszlo-Anwendungen wirft, wird erkennen,
dass der Schwerpunkt bei OpenLaszlo auf gebrandeten Anwendungen mit
einer guten User Experience und Fluid Interfaces liegt, was wir auch
als „Cinematic User Experience“ bezeichnen. XUL wird zum
Erstellen von Applikationen mit einem Standardkomponentenset verwendet,
das Branding der Anwendung steht nicht im Vordergrund.
NX: Ich
danke dir für das Gespräch!
Raju Bitter arbeitet seit
Januar 2007 als OpenLaszlo-Evangelist für die weltweite
OpenLaszlo-Community im Auftrag der Firma Laszlo Systems. Mit der
Entwicklung von
OpenLaszlo-Anwendungen begann er im Jahr 2004, zeitgleich mit dem Open
Sourcing der Technologie. Über OpenLaszlo sowie die Themen
Semantic Web, Mobile Rich Internet Applications und Technologietrends
in Südkorea und Japan berichtet er in seinem Blog unter
www.openlaszlonaut.de.
Martin Szugat ist als
freiberuflicher Fachautor und Berater mit den Schwerpunkten XML, .NET
und Java tätig. Über XML und verwandte Themen berichtet er
außerdem in seinem Blog
www.aboutxml.de.