Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme“

mindraper

me[code].Java(Script)

hi.

eure meinung würde mich interessieren: was würdet ihr den vorzug geben – js-frameworks wie jquery und dojo oder vanilla javascript?

meine ansicht zu diesem thema ist relativ eindeutig: wann immer möglich vanilla js. nachfolgend die begründung für meine ansicht.

1)
vanilla js

vanilla js ist nicht nur sehr viel schneller als jedes framework, es bietet zudem die größte kontrolle über das verhalten des codes, erzeugt weniger (teils massiv!) overhead und macht mich nicht abhängig von code, den jemand anderes schreibt, pflegt und wartet. dazu kommt, dass das verständnis von "echtem" javascript massiv einfluss darauf hat, wie effinzient ich code mit hilfe eines frameworks schreibe und ich kann, falls mir das preferierte framework das was ich brauche nicht bietet, es selbst einbauen.

nachteilig an vanilla js ist sicherlich, dass mein code länger ist und ich selbst mögliche fehlerquellen vermeiden/ausmerzen muss. ich denke da beispielsweise spontan an das auffinden von dom-knoten, das registrieren von eventlistenern und ein nicht einheitliches event-object bei den verschiedenen browserherstellern. das sollten die häufigsten auftreten probleme bei den meisten sein.
sicherlich sind für diese "problembereiche" lösungen in sicht und es wird besser werden. beispielsweise mit den aufkommen von querySelectorAll, dem IE-seitigen einbinden von w3c-standardmethoden wie addEventListener usw. dennoch muss ich – wie gesagt – für ältere browser immer noch einen workaround basteln (wahnsinn übrigens, wie weit verbreitet der IE7 noch ist!).

2)
jQuery

jQuery nimmt mir definitiv viel arbeit ab, da ich mich nicht mit fehlerquellenvermeidung herumschlagen muss. mein code wird auch tatsächlich kürzer, was i. d. R. zu einer einfacheren lesbarkeit führt – allerdings nur, weil die größe des codes geringer ist. jQuery implementiert zudem dinge, die es so in vanilla js gar nicht gibt wie beispielsweise animationen und cross-browser ajax-methoden.

nachteilig an jQuery ist allerdings definitiv, dass es ein vergleichsweise "schwergewichtiges" framework ist (~ 200kb!), viele dinge wie beispielsweise die angesprochenen animationen hohen overhead erzeugen und ich bei der nutzung von jQuery abhängig bin von den jQuery-entwicklern und nicht mehr agieren, sondern eig. nur noch re-agieren kann. sofern ich die jQuery-JS auf meinen eigenen server schmeiße, kann ich mir die abhängigkeit natürlich sparen, mir gehen aber auch sämtliche vorteile eines cdn-hostings verloren. zwar gibt es extrem viele jQuery plugins, finde ich aber kein passendes oder nicht eines, dass mir den umfang bietet den ich benötige, müsste ich es selbst anpassen – was nach meiner erfahrung oft viel mehr arbeit ist, als das ganze selbst zu schreiben (ein m. E. nach guter mittelweg ist hier, das plugin nicht in $.fn einzubinden sondern als "normale" constructor-function. aber das nur nebenbei). abgesehen davon, mache ich mich mit der nutzung von jQuery plugins nicht von von den jQuery entwicklern abhängig, sondern zusätlich von jedem einzelnen plugin entwickler.
als größten nachteil sehe ich persönlich aber, dass jQuery mich extrem weit von vanilla js entfernt. durch das lernen von jQuery lerne ich so gut wie keinerlei verständnis von normalem javascript sondern nur von jQuery. kurz gesagt: jQuery === javascript, aber javascript !== jQuery.

3)
Dojo

Dojo ist zwar an und für sich auch ein "schwergewicht", es biete mir aber im gegensatz zu jQuery den vorteil, dass ich nur wirklich benötigte dinge laden kann. bei jQuery lade ich oft locker 80% an funktionen, die ich nirgends in meinem script brauche. Dojo ist ebenfalls cross-browser kompatibel, lässt mich näher an vanilla js als die meisten anderen frameworks, verzichtet auf das prototype-basierte erweitern von nativen objekten (anders als beispielsweise mootools!), ist extrem schnell und bietet ebenfalls funktionen wie animationen, cross-browser ajax uvm.

bei Dojo treten natürlich teilweise die gleichen nachteile auf wie bei jQuery: ich bin abhängig von den entwicklern, einige dinge erzeugen einen hohen overhead (meiner erfahrung nach allerdings oft weniger als bei jQuery!) und das lernen von Dojo bringt mich eig. nicht unbedingt weiter darin, vanilla js zu lernen (allerdings eher als das bei jQuery der fall ist, da wie gesagt näher an "echtem" javascript). dennoch auch hier: Dojo === javascript, aber javascript !== Dojo.

Fazit:
m. E. nach ist es für jeden(!) sinnvoller, zunächst vanilla js zu lernen anstatt irgend ein framework. falls das framework an seine grenzen stößt (ja, das kommt definitiv vor – stichwort css3-animationen verwenden sofern möglich oder touch-events nutzen ohne zusätliche plugins), kann man sich selbst behelfen, man ist nicht abhängig von dem/den frameworks bzw. den entwicklern selbiger, zusammenhänge werden klarer und der code läuft schneller ab als mit framework => einsparen von overhead. die pages werden außerdem schneller geladen.

werden in der applikation dinge wie animationen, ajax oder beispielsweise eine mvc architektur gebraucht, dann eher zu Dojo als zu jQuery greifen. aus den oben genannten gründen. und trotzdem versuchen, soviel wie irgend möglich ohne das framework umzusetzen.

wie gesagt, das ist meine meinung. ich bin gespannt auf eure :)
 

Tr3icio

Nicht mehr ganz neu hier

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

Ich greife am liebsten zu ExtJS, weil es mir halt unzählige Codezeilen erspart, wenn ich einen Desktop o.ä. bauen muss ^^

Aber sonst nutze ich keine Frameworks.
Ich habe zwar meine fertigen Klassen (die meisten lösche ich wieder ^^), diese sind aber alle selber geschrieben und können immer das was ich brauche, nicht mehr, nicht weniger.

Aber jetzt mal zu deinem post: Ich gebe dir 110% Recht. Ich habe schon so oft Leute gesehen, die den ganzen Tag jQuery nutzen, aber nicht mal die Grundlagen von JS kennen. Frameworks sind zwar schön und gut und so welche wie Dojo oder ExtJS können für manche Projekte echt perfekt sein, aber bevor ich ein Framework nutze muss meine Anwendung schon ziemlich groß sein.
 

KireSchattenhaar

Nicht mehr ganz neu hier

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

Hat Alles seine Daseinsberechtigung, man muss eben wissen, was einem wichtig ist. Für kleinere Projekte, die schnell gehen sollen, nehme ich jQuery. Wenn ein Projekt besonders effizient gehalten werden soll, dann gehe ich auch lieber mit extJS ran.
Denn jQuery ist teils RICHTIG langsam, allerdings fällt dies bei normalen Websites nicht weiter auf.
 

mindraper

me[code].Java(Script)

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

@kireschattenhaar:

bedeutet das jetzt, dass du generell frameworks den vorzug gibst vor nativem (sprich: vanilla) js? und wenn ja, wieso?

gruß
 

freaki

Nicht mehr ganz neu hier

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

Man. Google spuckt echt gar nichts zu "vanilla js" an Definitionen aus. -.-
Naja. Ich hab jetzt verstanden, was das ist. Und als ich den Titel gelesen habe, habe ich schon an dich gedacht mindraper. xD

Erst einmal ist jQuery im production mode, sprich minified, nur 42KB groß.
Ich finde im Zeitalter des DSL diese ganze Speeddiskussion eher überflüssig.
Klar die mobilen Endgeräte sind im Moment unser Problem, muss man ja leider so sagen.

Ich bin grundsätzlich aber auch der Meinung: Ohne Grundlagen kann man sich die Frameworks auch sparen. Ich bin zwar auch nicht super tief in JS drin (ohne Framework krieg ich keine AJAX-Anfrage hin (hab's allerdings auch noch nie probiert, von daher ist diese Aussage vielleicht eher hinfällig.)), aber die Grundlagen bzw. erweitertes Wissen habe ich schon. Wenn man sich durch die Plugins von jQuery oder jQuery selbst kämpft, weil mal was nicht funktioniert, dann ist das auch unglaublich hilfreich, denn so versteht man wenigstens auch noch, was da im beautified minified code abgeht (ein grässliches debug chaos -.-).

Generell bin ich für Frameworks, weil sie einen bei der Arbeit einfach unterstützen. Und viele wirklich wirklich vereinfachen und dadurch ihre Darseinsberechtigung schaffen. Animationen etc. für alte Browser in JS selbst zu schreiben ist sicherlich nicht die Welt kompliziert, aber trotzdem ein Aufwand. Vor allem im Beruf ist der Zeit ja immer ein sehr wichtiger Faktor.
Welches Framework genutzt wird bzw. werden sollte, ist natürlich immer projektabhängig.

Zumal die Aussage, dass man nicht so leicht zu nativem Code zurück kommt ist ja gar nicht so richtig. jQuery Objekte bzw. deren Kontextelemente z.B. bekommst ganz leicht wieder indem du einfach jQuery(this).context machst. Damit bist du wieder bei normalen JS-Syntax angelagt.
 

mindraper

me[code].Java(Script)

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

hi.

Erst einmal ist jQuery im production mode, sprich minified, nur 42KB groß.
Ich finde im Zeitalter des DSL diese ganze Speeddiskussion eher überflüssig.
Klar die mobilen Endgeräte sind im Moment unser Problem, muss man ja leider so sagen.

ähm, das ist so erstens nicht richtig und zweitens nicht relevant (sofern auf mein overhead-argument gemünzt).

jQuerys CORE hat minified eine m. E. nach immer noch beachtliche (datei-!!)größe von ~92 kb. im vergleich mit dem core von bsplw. Dojo (jaaa, ich liebe Dojo - als framework/toolkit :)) mit ~31kb minified ist jQuery also 3mal so groß.
bis ich mit vanilla js einen code von 92kb geschrieben habe (ohne den eigentlichen code der website/app selbst versteht sich, der und evtl. plugins kommen zzgl.) kann ich NICHT minified einen ganzen haufen zeilen schreiben.

mit overhead ist gemeint, die ausreizung an performance (sprich: prozessorbelastung) die ein code erzeugt. und der ist bei jQuery in vielen teilen höher als bei anderen frameworks/toolkits. das hat aber überhaupt nichts mit der dateigröße des codes zu tun, sondern lediglich mit seiner performancebezogenen effizienz.

@all:
danke bisher schonmal für eure stellungnahmen. :)

gruß
 

freaki

Nicht mehr ganz neu hier

AW: js-frameworks/toolkits VS vanilla js: eine bestandsaufnahme

Ne. Das bezog sich auf die Aussage des Schwergewichtes.
Und du hast Recht. Habe mich von der Webseite blenden lassen. Da war's noch gezippt. Das kann man natürlich nur bei Auslieferung machen und nicht beim Abspeichern der Dateien ^^

Das mit dem Overhead, sprich mehr an Leistungsverbrauch ist richtig. Ich weiß nur nicht, in wie weit ein LazyLoading-JS-Framework möglich ist. Wäre ja einer Überlegung wert, nech?
Overhead ist aber eigentlich Standard bei Framework und man muss sich auf so etwas dann einlassen. Für eine vereinfachte Arbeit (ansichtssache, aber nun einmal Daseinsberechtigung für Frameworks) muss natürlich erst einmal eine Basis da sein. Da ist einfach immer das Abwägen wichtig.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.188
Beiträge
2.582.071
Mitglieder
67.257
Neuestes Mitglied
Can Ergin
Oben