Posted by Carsten Bormann
Sun, 12 Mar 2006 06:22:00 GMT
Montag bis Donnerstag dieser Woche fand in San Diego die diesjährige Auflage der O’Reilly-Konferenz „Emerging Technology“ statt.
Meine Präsentation zu PANIC-Mode fand am Donnerstag in einem völlig überfüllten
Raum statt. Sie ist wohl ganz gut angekommen, aber wurde natürlich
völlig überschattet von Steve Yens unmittelbar darauffolgender Präsentation zu Trimpath und NumSum.
Eine eindrucksvolle Demonstration dafür, daß JavaScript eine vollwertige Programmiersprache ist, mit der man auch nichttriviale Systeme schreiben kann.
(Ein Problem dabei ist heute oft, daß dieselbe Geschäftslogik, die clientseitig in der JavaScript-Anwendung abläuft, auch auf Server-Seite implementiert sein muss.
Steve Yens Idee: mehrfaches Programmieren dadurch vermeiden, daß man denselben Code, der im Browser läuft, im Server durch den JavaScript-Interpreter Rhino ausführen läßt.)
Leider reichte die Zeit nicht für seine ganze Präsentation.
Nachdem der sichtbarste Online-Nachfolger von Microsoft Word writely gerade durch Google übernommen wurde, kann man Steve mit seinem Excel-Nachfolger nur ähnliches Glück wünschen.
Zur Konferenz selbst:
Tim Bray hatte ein ähnlich gemischtes Gefühl wie ich.
Die Produktpräsentationen waren zum Teil wirklicht wenig erhellend; andererseits liefen in den Tracks durchaus auch interaktive Segmente unter „Products and Services“, die ich nicht hätte missen wollen.
Zur Organisation insbesondere des letzten Tages gab es bereits einen vernichtenden Artikel, dem ich nichts hinzuzufügen habe.
(Vielleicht das nächste mal das Hotel rechtzeitig buchen, so daß die ganze Zeit geeignete Räume für die Konferenz zur Verfügung stehen?)
Natürlich findet der wichtigste Aspekt von Konferenzen außerhalb der Vortragssäle statt, und über diesen Bestandteil kann ich mich nicht beklagen.
Was waren (außer Steve Yens Auftritt) die Highlights?
- microformats. Schon einige Zeit ein Thema, jetzt definitiv heiß.
- RSS ist als Informationsbus des Web inzwischen unumstritten, am besten in seiner standardisierten Form Atom (nur Microsoft scheint letzteres noch nicht ganz begriffen zu haben). Interessant z.B. auch, wie Ning seine gesamten Daten über Atom-Feeds anbietet.
- Ein Microsoft-CTO, der seine neueste Erfindung in Firefox demonstriert.
(Der Microsoft-Mann, der später geschniegelt im Dreiteiler auftauchte, war auch nicht schlecht, aber seine Präsentation habe ich bereits wieder vergessen.)
- Für den Vortrag von Bruce Sterling kam ich leider terminbedingt zu spät — alle sagten aber, er sei sehr, sehr gut gewesen. Ich hoffe, da wird noch mehr gebloggt.
- cutetracker, eine von vielen Anwendungen in Ning.
- Clay Shirky versucht, Entwurfmuster herauszuarbeiten, um eine Site mit benutzergenerierten Inhalten vor dem Abstieg in Flamewars o.ä. zu bewahren — u.a., um „die Leser vor den Schreibern zu schützen“.
- „Wenn die ungelesenen Einträge im Feedreader heute noch nicht wichtiger erscheinen als die im Mailreader — sie werden es bald sein“ (Rael Dornfest frei zitiert nach ruminate).
- Die EFF hat die wichtigen Gerichtsverfahren der nächsten Jahre vorhergesagt. Darunter: „PatentTrollCo verklagt AJAX-Sites“ — da es nicht schwer sein dürfte, bestehende Patente solange umzuinterpretieren, bis sie irgendwann AJAX-Techniken betreffen, lohnt sich Patent-Wegelagerei im „long tail“ der kleinen Sites (die bei der Wahl, 5000 Euro Lösegeld zu zahlen oder einen Rechtsstreit wegen eines dubiosen Patents zu riskieren, nicht lange nachdenken müssen). Glücklicherweise ist der anwesende EFF-Rechtsanwalt Jason unter anderem für das Patent-Busting bei der EFF.
- (Off-Topic:) Jeff Han hat sein „Multi-Touch“-Interface demonstriert. Überzeugt hat mich vor allem, wie man alle drei 2D-Transformationen (Verschieben, Skalieren — „Zoom“, Rotieren) auf einer virtuellen Oberfläche mit intuitiv wirkenden Gesten abbilden kann. Und Hut ab vor der genial einfachen technischen Realisierung…
Darüber hinaus konnte, wer das noch nicht woanders mitbekommen hat, sich über anstehende Themen wie Identity 2.0, oder auch über Mechanical Turk und andere Leitinnovationen des vergangenen Jahres informieren.
Gelegentlich wurde auch versucht, zu postulieren, daß nach Mittelalter und Neuzeit (ging offenbar bis 1980) nun das Zeitalter der Attention Economy angebrochen ist. Das war das Thema dieser Konferenz, und die Grundbeobachtungen stimmen sicherlich nach wie vor. Aber ob wir wirklich alle Schmetterlinge sind, die, statt den Nektar der Attention Economy zu trinken, noch wie Raupen denken, wir müßten die grünen Blätter der Markt-/Geld-/Industrie-Wirtschaft verspeisen (Michael H. Goldhaber)?
Spannender (weil konkreter) fand ich den immer wieder durchscheinenden Trend der Alphabetisierung der „Benutzer“ — vom User Generated Content über die Websiteentwicklungsumgebung Ning bis hin zu den von IBM und JotSpot vorgestellten Wiki-basierten Anwendungsentwicklungsumgebungen. Vielleicht wird die nächste Generation in der Schule (des Lebens) nicht nur Word, PowerPoint und Excel gelernt haben, sondern — mittels geeigneter Umgebungen — auch genug programmieren können, um die kleinen und mittleren IT-Probleme des täglichen Lebens selbst anpacken zu können. Man kann ja träumen.
Tags AJAX, attention, etech, etech06, microformats, panic-mode | 1 comment | 293 trackbacks
Posted by Carsten Bormann
Thu, 23 Feb 2006 10:38:00 GMT
Es gibt jetzt ein Patent zu AJAX (genauer: rich-media applications via the internet).
Das wird in den Blogs noch genug diskutiert werden, ich spare mir das hier.
Eines ist sicher: Die Welt braucht Erfinder wie Neil Balthaser!
Zum Glück gibt es in Europa (noch) keine Softwarepatente.
(Wenn nur die Patentämter das auch wüßten…)
Posted in AJAX | Tags AJAX, patent, submarine | 1 comment | 358 trackbacks
Posted by Carsten Bormann
Wed, 14 Dec 2005 12:36:00 GMT
Vor ein paar Stunden hat die viel beachtete neue Web-Entwicklungsumgebung Ruby on Rails die
Version 1.0 erreicht.
1.0 wie in „Firefox 1.0“, nicht wie in „Windows 1.0“.
Rails demontiert gerade mit erstaunlicher Geschwindigkeit die Vormachtstellung der bisherigen Alpha-Tiere der
Web-Entwicklung — mindestens in den Köpfen,
aber zunehmend auch in großen missionskritischen Umgebungen.
Was hat die Freigabe von Rails 1.0 mit AJAX zu tun?
Rails war das erste große Web-Framework, das AJAX als selbstverständlichen Aspekt mit unterstützte.
Mit Rails 1.0 sind insbesondere aber auch die JavaScript-Bibliotheken Prototype 1.4 und
Scriptaculous 1.5 freigegeben worden.
Diese Bibliotheken haben jetzt eine Menge fokussiertes Bug-Fixing hinter sich;
zu erwarten ist eine recht stabile Basis für fortgeschrittene AJAX-Anwendungen — auch für
solche, bei denen die Serverseite (noch?) nicht Rails heißt.
Zurück zu Rails:
gem install rails --include-dependencies ist angesagt.
Studierende an der Universität Bremen können sich übrigens
schon mal auf meine Lehrveranstaltung „Produktive Web-Entwicklung“ im
Februar freuen. (Als nächstes auf der Agenda: Kurse, die
auch außerhalb der Universität zur Verfügung stehen.)
Posted in AJAX, rails | Tags AJAX, rails, ruby, web-entwicklung | no comments | 592 trackbacks
Posted by Carsten Bormann
Tue, 29 Nov 2005 08:06:00 GMT
Will man AJAX für die Echtzeit-Darstellung von Informationen benutzen,
so möchte man, daß der Client vom Server über jede relevante Zustandsänderung sofort
informiert wird.
Dafür eignet sich am besten eine HTTP-Verbindung, die vom Browser
offengehalten wird, und in die der Server neue Daten einspeist, sobald
diese verfügbar sind.
Dabei gibt es jedoch zwei Klassen von Problemen:
Serverseite
Die heute üblichen Web-Server wie Apache sind nicht sehr gut darin,
viele gleichzeitig offene Verbindungen zu verwalten. Man möchte
eigentlich die Echtzeit-Verbindungen trennen von den
HTTP-Verbindungen, über die große Datenmengen geschaufelt werden.
So verwendet S6 einen Synchronisationsserver, der mitteilt, wann
ein neuer Zustand vorliegt — der Client kann dann (über eine separate
Verbindung) Daten nachfordern.
(Bei S6 ist dieses Nachfordern noch nicht in Benutzung, weil das
zugrundeliegende System S5 die Präsentation vorweg als ganzes lädt, aber man
kann sich S6 durchaus auch mit mehr AJAX-Funktionalität vorstellen.)
XMLHttpRequest läßt aber aus Sicherheitsgründen nur Zugriffe auf
dieselbe Domain zu, von der auch die Seite selbst stammt — eine
sinnvolle Erweiterung der same origin policy, der wichtigsten Grundlage
der JavaScript-Sicherheit.
Bei S6 bedeutet das, daß die inhaltsschweren HTTP-Zugriffe vom selben
Server beantwortet werden müssen wie die Synchronisations-Zugriffe.
Das ist auch der Grund für den etwas instabilen Aufbau des
Demo-Servers:
Ein Webrick-Server unter http://tzi.org:2000/s6.html liefert sowohl
Inhalte als auch Synchronisation. Webrick ist aber als Server für
Inhalte nicht besonders effizient (außerdem belegt der Apache-Server
den Port 80 auf tzi.org, so daß Webrick auf den wenig
Firewall-freundlichen Port 2000 ausweichen mußte).
Als Alternative wird die S6-Demo deswegen unter
http://www.tzi.org/~cabo/s6/s6.html auch über Apache angeboten.
Im Proxy-Modus werden die Synchronisationsanfragen an den
Webrick-Server weitergeleitet. Das bedeutet aber, daß jeder
S6-Follower eine andauernde Verbindung zum Apache-Server
aufrechterhält (was unser Webmaster zum Glück noch nicht recht
wahrgenommen hat :-).
Nicht skalierbar.
Clientseite
Selbst wenn bessere Proxy-Server das serverseitige Problem mit der
durch die XMLHttpRequest-Sicherheit geforderten Serverbindung lösen
würden, gibt es noch einen anderen Grund, Synchronisationsanfragen von
Inhaltsanfragen trennen zu wollen:
Um die Web-Server nicht zu überlasten, haben Browser meist eine
Begrenzung für die Anzahl der HTTP-Verbindungen, die gleichzeitig zu
einem Server geöffnet werden — dieses Maximum liegt heute im
allgemeinen bei zwei. Wird davon eine für Synchronisationsanfragen
dauerhaft belegt, wird die andere zum Flaschenhals. (Und hat ein
Client erst einmal zwei Echtzeit-Anwendungen vom selben Server offen,
geht für den Client auf diesem Server gar nichts mehr.)
Auch hier wäre es also höchst sinnvoll, XMLHttpRequest-Anfragen auf
mehrere Domänen verteilen zu können: Inhalte von www.tzi.org,
Synchronisationsanfragen von sync.tzi.org.
XMLHttpRequest weigert sich aber
(aus guten Gründen) hartnäckig, Domain-übergreifende Anfragen
zuzulassen. (Eine etwas offenere Sicherheitspolitik wird zwar
gelegentlich diskutiert, aber das nützt natürlich nichts für die
nächsten ein, zwei Jahre.)
Der Durchbruch
Abe Fettig, seines Zeichens Entwickler der interessanten Plattform
JotSpot Live (mehr dazu in einem anderen Blogpost),
beschrieb gestern abend seinen Ansatz, mit der
JavaScript-Eigenschaft document.domain die beschriebenen
Sicherheitseinschränkungen von XMLHttpRequest teilweise zu umgehen.
Die Eigenschaft document.domain stellt seit NetScape Navigator 2.0
eine Möglichkeit zur Verfügung, die same origin policy auf mehrere
Server mit einer gemeinsamen Haupt-Domain auszudehnen: In unserem Fall
(www.tzi.org und sync.tzi.org) würde man also document.domain
auf tzi.org stellen, und dann sind Cross-Domain-Zugriffe möglich.
Ganz so einfach ist es bei XMLHttpRequest allerdings nicht: Die Domain
muß genau übereinstimmen!
Die grobe Idee von Fettig: Der JavaScript-Code mit dem XMLHttpRequest für den zweiten Server wird in
einen iframe verfrachtet, der im Gegensatz zum Hauptdokument von
dieser zweiten Domain (z.B. sync.tzi.org) geladen wird.
Das Problem ist damit darauf reduziert, eine Kommunikation zwischen
iframe und Hauptdokument (geladen z.B. von www.tzi.org) zu
ermöglichen — und hier kommt uns document.domain zu Hilfe.
Der naheliegende Ansatz ist es, im iframe zunächst den XMLHttpRequest
durchzuführen, dann document.domain auf die gleiche übergeordnete
Domain zu stellen, die man vorher schon im Hauptdokument eingestellt
hat (in unserem Fall wäre das tzi.org).
Nach dieser Änderung kann man vom iframe aus auf das
Hauptdokument zugreifen, um das Ergebnis mitzuteilen.
Problem: nachdem im iframe document.domain auf den Wert tzi.org umgesetzt ist,
funktioniert natürlich kein weiteres XMLHttpRequest zu sync.tzi.org
mehr. Mein Ansatz wäre nun wohl gewesen, für weitere Anfragen dann eben
weitere iframes zu erzeugen.
Fettig hat hingegen einfach probiert,
document.domain wieder auf den alten Wert (in unserem Beispiel wäre
das sync.tzi.org) zurückzusetzen. Siehe da: In IE und
Safari/Konqueror funktioniert das auch. In Mozilla/Firefox und Opera leider
nicht (was ich für eine valide Interpretation der
same origin policy halte), und da kommt schon der nächste Trick: Fettig
hebelt die Kommunikationsbeschränkungen zwischen Hauptdokument und
iframe einfach ein bißchen aus, indem er ein weiteres iframe
dazwischenschiebt (ebenfalls aus sync.tzi.org geladen), das das eigentliche
Kommunikations-iframe erzeugt, dort eine Variable installiert, die auf
eine im Zwischen-iframe definierte Closure (JavaScript-Funktion)
verweist.
Im Zwischen-iframe kann dann document.domain auf tzi.org gesetzt
werden, um mit dem Hauptdokument zu kommunizieren; das
Kommunikations-iframe verbleibt in der Domain sync.tzi.org.
Mozilla/Firefox (und nur dieser)
hat nichts dagegen, und die Kommunikation flutscht über diesen kleinen
Umweg. (Fettig hat noch keine Lösung für Opera, aber das ist ihm
nicht so wichtig.) Jetzt brauchen wir nur noch eine Methode, um
zwischen den beiden Lösungen umzuschalten: die erste wirft ja bei
Mozilla/Firefox eine Ausnahme; die wird abgefangen und es wird auf die Mozilla-Alternative umgeschaltet.
Was für ein Hack, aber:
Today’s “hack” is tomorrow’s “standard”.
Ein Durchbruch im doppelten Sinne
Ich würde mich bei der ganzen Sache wesentlich wohler fühlen, wenn die
für Mozilla/Firefox erforderliche Kommunikation über die
Zwischeninstanz mit dem Kommunikationskanal Closure sich nicht so sehr
wie ein Sicherheitsloch anfühlen würde, das auch für bösere Zwecke
genutzt werden kann und deswegen in zukünftigen
Mozilla/Firefox-Versionen wieder geschlossen wird. Als nächster
Schritt ist jetzt wohl eine Runde vernünftiger Security-Analysen
angesagt.
Posted in AJAX | Tags AJAX, Echtzeit, S5, S6, security | 2 comments | 291 trackbacks
Posted by Carsten Bormann
Sun, 27 Nov 2005 15:29:00 GMT
Viel Gerede um Windows Live Mail.
Am häufigsten genanntes Feature: AJAX.
Endlich wie Gmail‽
Einspruch, Euer Ehren: Windows Live Mail funktioniert offenbar nur mit Internet Explorer.
Was nicht in Firefox funktioniert, ist aber kein AJAX.
Erinnern wir uns: Die wichtigste Neuerung des AJAX-Ansatzes gegenüber
bisherigen Versuchen, Rich Internet Applications zu bauen, war
ja, standardbasiert vorzugehen. Keine neuen Plugins, keine neuen Browser. Standardbasierter als Firefox wird ein Browser wohl kaum ⇒
was in Firefox nicht geht, ist vielleicht interessant, aber jedenfalls
kein AJAX.
Hoffen wir, daß Microsoft bei der Ankündigung „Firefox support is
coming soon“ in Wirklichkeit gemeint hat: „Web support is coming
soon“…
Posted in AJAX | Tags AJAX, Kahuna, Live, Mail, WLM, Windows | no comments | 503 trackbacks
Posted by Olaf Bergmann
Fri, 21 Oct 2005 02:31:00 GMT
Anfang Oktober fand in San Francisco zum zweiten Mal die
internationale Konferenz zum Web 2.0 statt. Wie bei
Konferenzen zu aktuellen Modethemen üblich, waren unter den
Ausstellern auch viele neu gegründete Unternehmen, die den Markt mit
frischen Ansätzen bereichern. Beispiele für Startups, die auf
AJAX-Technologie auf der Clientseite webbasierter Anwendungen setzen,
sind Meebo und Zimbra. Beide Unternehmen haben sich
im weitesten Sinne auf Messaging-Anwendungen mit Web-Interface
spezialisiert, ein Feld, das auch Google Talk
besetzen möchte.
Mit Instant Messaging (IM) wird ein Modethema der vergangenen
Jahre aufgegriffen und ajaxifiziert. Ein wesentliches Merkmal von
klassischen IM-Anwendungen ist der eingebaute Presence-Dienst, der
Auskunft über die Verfügbarkeit von eingetragenen Nutzern
erteilt. Für jeden Kontakt im Adreßbuch der IM-Anwendung
(oft Roster oder Buddy-List genannt) kann man sofort sehen, ob
diejenige Person gerade erreichbar ist oder nicht gestört werden
möchte.
Klassische IM-Protokolle wie Jabber/XMPP oder SIMPLE
unterscheiden sich von webbasierten Ansätzen durch ihre push-basierte
Architektur; da jeder Teilnehmer einen eigenen Serverprozeß aufsetzt,
können Nachrichten bei Bedarf an den betreffenden Teilnehmer gesendet
werden. In einer Client/Server-Architektur hingegen müssen die Clients
regelmäßig Anfragen stellen, um neue Informationen zu erhalten.
Dies ist auch der Ansatz, der im AJAX-Buch angedeutet
wird. Mit dem Ajax.PeriodicalUpdater aus der Bibliothek
Prototype lässt sich eine Buddy-List sehr einfach
aktualisieren. Alternativ ließe sich auch der PeriodicalExecuter
dafür einsetzen, allerdings lässt sich dieser nicht so ohne weiteres
stoppen, wenn er erst einmal läuft – der Browser wird dann sehr
schnell zum Speicherfresser.
Auf den ersten Blick erscheint das Polling gegenüber den
push-basierten Lösungen nicht sehr attraktiv. Doch die
Ende-zu-Ende-Kommunikation hat einen großen Nachteil: Sie harmoniert
nicht gut mit Middleboxes, also Geräten, die sich zwischen Sender
und Empfänger einer Kommunikationsbeziehung befinden und den normalen
Protokollablauf beeinflussen können. Die bekanntesten Vertreter dieser
Art sind NATs und Firewalls. Beide haben ihre Berechtigung, machen
eine reibungslose Kommunikation aber sehr schwer. Das Ergebnis
sind Keep-Alive-Mechanismen und Verrenkungen wie STUN, um von
außerhalb erreichbar zu sein.
Webbasierte Anwendungen können dieses Problem getrost
vernachlässigen: Sobald Web-Traffic durch die Firewall gelassen wird,
was selbst in den meisten Unternehmen heutzutage übliche Praxis ist,
kann die bidirektionale Kommunikation über TCP beginnen. Bereits vor
einigen Jahren haben Web-Services diese asymmetrische
Kommunkationsbeziehung genutzt, um Schwierigkeiten mit Firewalls und
NATs zu umgehen. Und das ist auch der Grund, warum SOAP fast
ausschließlich über HTTP transportiert wird…
Keine Frage, Polling über HTTP gibt es schon lange und wird es immer
geben. Das XMLHttpRequest-Objekt wird diesen Aspekt aber wieder
stärker in den Vordergrund rücken. Mit welchen Lasten muss ein
Server-Betreiber nun plötzlich rechnen? Wie viele Filedeskriptoren
sind gleichzeitig offen zu halten? Welche Bandbreite erfordern die
Antworten? Wie unterscheidet man das erwünschte Polling von einer
DOS-Attacke?
Posted in AJAX | Tags AJAX, InstantMessaging, Presence | no comments | 434 trackbacks
Posted by Carsten Bormann
Tue, 18 Oct 2005 07:05:00 GMT
Wer kennt das Problem nicht: Man telefoniert mit jemandem (oder gleich
mit einer ganzen Telefonkonferenz) und möchte seine Ausführungen mit
ein paar Folien untermalen. Wie bekommt man es hin, daß die
Gesprächspartner im Laufe der Präsentation immer jeweils dieselbe
Folie sehen wie man selbst?
Einsatz für AJAX.
Man nehme:
- S5, die Web-Präsentationslösung von Eric Meyer
(ja, der bekannte CSS-Guru);
- etwas AJAX-Code (natürlich unter Benutzung einer
AJAX-Bibliothek wie prototype), und
- 75 Zeilen Ruby als Server für die Synchronisation.
Ergebnis: S6, Synchronized Simple Standards-based Slide Show System.
Die Benutzungsschnittstelle folgt der bewährten Alternative:
Führe (Lead)
Der Browser des Vortragenden teilt dem Synchronisationsserver jeden
Folienwechsel mit.
Folge (Follow)
Browser von Zuhörern werden vom Synchronisationsserver sofort
benachrichtigt, sobald der Vortragende auf eine andere Folie schaut
als sie selbst, und schalten dann ebenfalls auf diese Folie um.
Geh aus dem Weg (Get out of the way)
Will man unabhängig vom Vortragenden blättern, kann man „aus dem
Weg gehen“ — die Aktionen des Vortragenden haben dann keinen
Einfluß mehr auf den Browser.
Lädt man eine S6-Präsentation in den Browser, ist man zunächst in
letzterem Modus (das ist aber mit einer Zeile JavaScript
konfigurierbar).
Tippt man ein „L“, dann betritt man den Führungsmodus, mit „F“ kommt
man in den Folgemodus (meine Folien haben diese Information als
Hilfetext auf der ersten Seite). Mit „G“ geht man (wieder) aus dem
Weg.
(Das ganze probiert man am besten vor der Telefonkonferenz mit ein
paar Browserfenstern aus. Getestet in IE6, Firefox, Safari. Opera hat
seinen eigenen merkwürdigen Slideshow-Modus, mit dem ich noch nicht
ganz klar komme.)
Der Synchronisationsserver kann mehrere Folienpräsentationen
gleichzeitig synchronisieren — der URI der Präsentation dient als
eindeutiger Bezeichner einer Gruppe (notfalls kann man mit
unterschiedlichen Fragmentbezeichnern, die von S5 im allgemeinen
ignoriert werden, mehrere Sitzungen mit demselben Foliensatz
voneinander trennen).
Die Idee, S5 um Synchronisation zu erweitern, ist übrigens so gut, daß
auch jemand anders sie inzwischen gehabt hat. Im Vergleich
zu S6 fehlt der Echtzeitaspekt (der Server wird einfach alle 2.5
Sekunden angefragt), das Multiplexing über den URI, und die klare
Trennung der verschiedenen Betriebsarten. Dafür hat Teemu
Arina auch den inkrementellen Aufbau der Folien in S5
adressiert, wozu ich noch nicht gekommen bin, und seine Version läuft
auch in einem normalen Web-Server wie Apache.
Eric, Teemu und ich sind jetzt dabei, das alles zu sortieren.
Vielleicht kann ich demnächst über eine Release berichten…
(Update: Die Links auf den experimentellen Web-Server stimmen jetzt. Danke, Oliver. Mental note: Niemals 10 Minuten vor einer Vorlesung bloggen :-)
Posted in AJAX | Tags AJAX | 9 comments | 498 trackbacks
Posted by Olaf Bergmann
Fri, 14 Oct 2005 23:51:00 GMT
AJAX schwimmt gerade auf einer Hype-Welle, wie wir sie in vielen Bereichen der Informationstechnologie in den letzten Jahren häufig gesehen haben (von verteilten Datenbanken über Mbone-Konferenzen zu DHTML, Web-Services, usw). Bei diesem natürlichen Prozess wird ein Schlagwort gern stellvertretend für eine ganze Klasse von Konzepten, Technologien oder neuen Denkansätzen verwendet. Der Begriff selbst beschreibt dann nicht immer
genau das, was damit gemeint ist. So entbrannte im Blog von Simon Willison im April eine längere Diskussion darüber, ob der Begriff AJAX zweckdienlich sei — zwei Monate nach dem Essay von Jesse James Garrett. Matthew Haughey spricht dann auch ziemlich deutlich aus, was technologiezentrierte Entwickler häufig verdrängen: Die Marketing-Abteilung weiß am besten, wie sich Technologie verkaufen läßt — selbst wenn es sich um altbekannte Technologien handelt, die die Entwicklergemeinde für sich neu entdeckt hat.
Was AJAX angeht, zeigt sich gerade das “X” nur als bedingt belastbar. Vielfach setzen AJAX-basierte Anwendungen asynchrone Kommunikation und JavaScript ein, aber es wird weit und breit kein XML verwendet. Der Grund dafür sind die Anforderungen an die Plattformunabhängigkeit: Auch im Jahr 2005 kann XML-Unterstützung nur bei sehr wenigen Browsern vorausgesetzt werden. Mit HTML (nicht XHTML) oder auch einfach zu parsierenden Legacy-Formaten ist man immer auf der sicheren Seite und muß sich nicht in die Abhängigkeit bestimmter Browser-Eigenschaften begeben, die wiederum Feature-Sniffing voraussetzen würden.
Posted in AJAX | Tags AJAX, Kritik | no comments | 434 trackbacks
Posted by Carsten Bormann
Fri, 14 Oct 2005 20:14:00 GMT
An einem Artikel aus dem Online-Auftritt der österreichischen
Zeitung „Der Standard“ hat sich eine heiße Diskussion über den Sinn
und Unsinn von AJAX entzündet. Hier meine kurze Zusammenfassung der
Standpunkte der AJAX-Kritiker:
Flash konnte das schon immer
Ja. Allerdings eben nicht mit dem standardisierten Web zusammen,
sondern immer in der schönen bunten Flash-Welt isoliert.
Meine Reaktion, wenn ich mich auf einer Site im Flash-Käfig wiederfinde:
Ich will meinen Browser wieder haben!
Der Versuch, die Flash-Welt mit AJAX unter dem Begriff „Rich
Internet Applications“ über einen Kamm zu scheren, demonstriert
schon ein wenig den Bedarf, diesen Nachteil durch geeignete
Wortschöpfungen zu verschleiern.
Im AJAX-Buch diskutieren wir aber auch durchaus eine
Flash-basierte Alternative zur reinen AJAX-Lehre.
Beispielcode dafür, daß sich AJAX und Flash sogar hervorragend
vertragen können, findet sich hier, mit einer Demo dazu.
Andererseits wird dieser Rückgriff auf eine proprietäre Technologie
durch die zunehmende Verbreitung von SVG,
z.B. in Firefox und
Safari, in Zukunft vielleicht seltener erforderlich
sein. Für die Interaktion mit Ton und Video in Webseiten ist
Flash allerdings noch Stand der Technik; auch hier hilft AJAX
drumherum dabei, eine Web-Anwendung zu behalten.
Browser konnten das schon lange, es hieß nur DHTML etc.
Ja. Allerdings haben wir in den letzten 12 Monaten viel darüber
dazugelernt, wie man mit AJAX eigentlich sinnvoll arbeitet. Es
gibt jetzt design patterns (Entwurfsmuster), an
die vor einem Jahr niemand gedacht hat. Sehr schöne Bibliotheken
wie Prototype und Scriptaculous sind entstanden und haben
eine erstaunliche Reife entwickelt. Neue Anwendungen, die sich so
gänzlich anders anfühlen als das „alte Web“, sprießen wie Pilze aus
dem Boden.
Es lohnt sich auch für ausgefuchste Web-Entwickler, zu verfolgen,
was in AJAX-Land passiert.
AJAX ist kein Allheilmittel, bringt auch Nachteile, …
Ja. Vor allem ist eine Überdosierung schädlich (wie damals bei
Flash). Auch dazu mehr im Buch.
Und nein, man braucht keine neuen Browser (oder Plugins), man muß
(trotz des irreführenden Namens) durchaus nicht mit XML AJAXen, etc.
Auch das erklärt natürlich alles das Buch.
(Kann es sein, daß ich mich wiederhole?)
Posted in AJAX | Tags AJAX, Kritik | no comments | 764 trackbacks
Posted by Carsten Bormann
Mon, 10 Oct 2005 20:43:00 GMT
Am 14.10.2005 ist es soweit: Das erste deutschsprachige Buch zum Thema AJAX wird ausgeliefert.
Warum AJAX? Das Web wird sich in den nächsten Monaten und Jahren ändern („Web 2.0“). AJAX spielt eine wichtige Rolle dabei, das Interaktionsdesign vom Hypertext-Paradigma zur Web-basierten Anwendung weiterzuentwickeln.
Warum ein Buch? Es gibt natürlich viel Information im Web. Das gute alte Medium Buch ist aber zum Einarbeiten in neue Themen immer noch schwer zu schlagen.
Warum auf deutsch? Das ist in einer Web-Welt, die fast nur noch auf englisch arbeitet, schon schwerer zu beantworten. Ich selbst arbeite gerne in beiden Sprachen. Für die Lehre (und das ist eben eine meiner Aufgaben) ist die Muttersprache der Lernenden aber immer noch am besten geeignet. Englischsprachige Bücher zu AJAX kommen gerade auf den Markt, warum also nicht ein deutschsprachiges schreiben?
Posted in AJAX, self | Tags AJAX, Buch, deutsch | 2 comments | 3852 trackbacks