[latex]Mae govannen![/latex]
Ich habe heute einige schwere Probleme und daher keine Konzentration, um auf alles einzugehen oder jede Formulierung hundertprozentig abzusichern (kann auch sein, daß ich viel unsinn schreibe, ich kanns heute nicht besser), daher nur ein kurzer Abschnitt:
Der Spaß z.B. bei jQuery ist doch das einheitliche Konzept von Knotenlisten und Chaining, bei Prototype und Mootools die »erweiterten« Elementobjekte.
Ich halte gerade chaining (nicht nur im Kontext JS-"Framework") in vielen (nicht allen) Fällen für sehr schlechten Programmier-Stil. Es wird einfach davon ausgegangen, daß die Funktion schon das zurückgeben wird, was man erwartet. Und wenn dies nicht so sein sollte, hat man ein Problem, und ein JS-Anfänger steht dann da und läßt irgendwelche Foren das Problem für sich lösen.
Ich würde noch nicht einmal eine einfache Form, z.B. document.getElementById("bla").style.width = "200px";
schreiben, sondern immer den Rückgabewert von document.getElementById abfragen, möglichst auch noch den erwarteten (node|Objekt)Typ.
Solche Frameworks vermitteln den Eindruck, man müsse nur ein paar Zeilen Code schreiben (oder per c&p einfügen) und sich ansonsten nicht um Javascript-Programmierung kümmern. Und wenn irgendwas nicht so klappt, wie man es sich vorstellt, fängt man an, alles aufzudröseln.
YAHOO.util.Dom.setStyle(YAHOO.util.Selector.query("div li.orange"), 'width', '123px');
Hingegen:
Mootools: $$('div li.orange').setStyle('width', '123px')
jQuery: jQuery('div li.orange').css('width', '123px')
Und genau das halte ich für Augenwischerei und den angekreidetetn "syntatic sugar". Was habe ich davon, wenn ich nur eine Zeile in meinemCode habe, aber dafür im Hintergrund Unmengen von Funktionen durchlaufen werden müssen? Ich finde es nicht mehr, aber jemand hat in einem _konkreten Beispiel_ nachgewiesen, daß um einen solchen Einzeiler für eine relativ simple Aktion zu erreichen, im Hintergrund innerhalb des Frameworks 27 oder 28 Funktionsaufrufe getätigt wurden. Genau das Gleiche hat er mit 3 Funktionen hinbekommen.
Cü,
Kai
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?