Was habe ich davon, wenn ich nur eine Zeile in meinemCode habe, aber dafür im Hintergrund Unmengen von Funktionen durchlaufen werden müssen?
Ganz viel. Ich kann sehr schnell zu Ergebnissen kommen und in meinem Quellcode kümmere ich mich um die reine Programmlogik, anstatt mich immer wieder mit dem Durchlaufen von Knotenlisten aufzuhalten.
Natürlich habe ich einen Overhead dadurch, aber dieses Tauschgeschäft habe ich bei Vereinfachung, Abstraktion und Frameworks immer. Problematisch wird das nur, wenn darunter wirklich die Performance leidet. Das tut sie aber m.M.n. nur wenig. JavaScript explodiert hinsichtlich Performance. Wir leben in einer Welt, in der es die JavaScript-Interpreter mit anderen hochoptimierten Plattformen aufnehmen können, auf der dicke Anwendungen laufen. Außerdem lässt sich so ein Chaining-System auch sehr einfach umsetzen.
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.
Genau das gleiche bestimmt nicht. Die Flexibilität wird eben durch Komplexität in der Bibliothek erkauft. Mag sein, aber ehrlich gesagt: Inwiefern betrifft mich das negativ? Ich habe schon oft neben der jeweils verwendeten Bibliothek programmiert, wenn ich Performance brauchte. Aber 90% aller Operationen sind 08/15 Event-Handling, Traversing, Manipulation usw. Dabei kommt es auf eine Millisekunde mehr oder weniger einfach nicht an, diese Standardsachen sind mittlerweile einfach schnell, ob mit oder ohne Bibliothek. Was dort durch viele Funktionsaufrufe verloren geht, gewinne ich dadurch, dass die tatsächlichen Operationen sehr stark optimiert sind, weil mehrere Jahre Entwicklung in der Bibliothek stecken. Da bin ich »zu Fuß» gar nicht unbedingt schneller, speichereffizienter usw.
Mathias