english English

MooTools vs. jQuery

Van een simpele lightbox tot de meest geavanceerde applicatie, javascript kan je op de dag van vandaag niet meer wegdenken in een moderne website. Omdat de implementatie per browser verschilt en om veel terugkerende functies niet steeds opnieuw te moeten schrijven, maken ontwikkelaars graag gebruik van een framework of library. In deze blogpost wil ik graag mijn visie geven op het gebruik en de verschillen tussen 2 concurrenten: MooTools en jQuery.

MooTools vs jQuery
 

MooTools is een framework, jQuery is een library

Het gebruik van een framework of library helpt je vlot voorbij de gebruikelijke problemen omdat ze al enkele jaren bestaan (MooTools sinds 2006 en jQuery sinds 2005) en dus kunnen rekenen op een grote gebruikersgroep en ervaren ontwikkelaars die er elke dag mee bezig zijn.

De definitie van een framework en een library volgens Wikipedia:

Een framework is een geheel van softwarecomponenten dat gebruikt kan worden bij het programmeren van applicaties.
Een library is een verzameling code (functies/routines) die door programma's kunnen worden gebruikt.

Een framework zal je dan ook veel uitgebreidere mogelijkheden geven dan een library die je enkel wat extra functies zal bezorgen. In theorie zou dit betekenen dat je met MooTools veel uitgebreidere applicaties kunt ontwikkelen terwijl je met jQuery enkel wat met de DOM kan werken. In de praktijk is er helemaal niet zo’n groot verschil.

Een concreet voorbeeld

MooTools:

window.addEvent('domready', function() {
    $$('a').addEvent('click', function(event) {
        alert('Thanks for visiting!');
    });
});

jQuery:

$(document).ready(function() {
    $("a").click(function(event) {
        alert("Thanks for visiting!");
    });
});

Beide scripts zullen je een identiek resultaat bezorgen, ieder op hun eigen manier. Wanneer je de code van MooTools bekijkt zal je kunnen lezen dat we een nieuw event, in dit geval ‘click’ gaan uitbreiden met een zelfgemaakte functie. In de code van jQuery kan je lezen dat we de click-functie gaan uitbreiden met onze zelfgemaakte functie.

Welke moet ik kiezen?

De meeste ontwikkelaars maken in het begin van hun carrière een keuze tussen MooTools of jQuery en blijven hier meestal voor de rest van hun loopbaan ook aan vasthangen. Er is geen juiste keuze, enkel een persoonlijke. Zelf heb ik gekozen voor MooTools omdat ik vind dat de syntax voor mij het meest vertrouwd aanvoelt als ontwikkelaar.

Probeer beide en maak voor jezelf uit welke je het meeste aanspreekt. Het is niet de bedoeling om hier een hele discussie te openen over welk nu uiteindelijk het beste is, maar om aan te tonen dat ze elk hun unieke eigenschappen hebben maar je uiteindelijk hetzelfde resultaat zullen bezorgen.

Nuttige links

Hieronder kan je enkele nuttige links vinden die mij hebben geholpen om deze blog post te schrijven.

MooTools - a compact javascript framework
De officiële website van MooTools.

jQuery: The Write Less, Do More, JavaScript Library
De officiële website van jQuery.

jQuery vs MooTools: Choosing Between Two Great JavaScript Frameworks
Een volledige website die zich specifiek richt naar de verschillen tussen MooTools en jQuery.

RSS reacties feed

9 reacties tot nu toe

Steensels Peter

Steensels Peter zei 2 jaar geleden:

Ik ben voorstander van Mootools, veel meer mogelijkheden!
Jeroen Moors

Jeroen Moors zei 2 jaar geleden:

Om de balans te bewaren zal ik bekennen dat ik JQuery fan ben. Het is erg eenvoudig om mee te beginnen werken. De documentatie is tegenwoordig ook erg degelijk met veel voorbeelden:
- http://visualjquery.com/
- http://docs.jquery.com/
Koen Mertens

Koen Mertens zei 2 jaar geleden:

JQuery fan hier. Eenvoudig, snel, uitgebreid en een grote community met een heleboel plugins.
Vroeger problemen gehad met MooTools dus nooit meer terug gaan kijken...

@ Steensels Peter: "veel meer mogelijkheden" lijkt mij niet correct te zijn (misschien wel meer "predifined" functies) tenzij je het natuurlijk kan staven met een benchmark/test/onderzoek... ;-)
Peter Fastré

Peter Fastré zei 2 jaar geleden:

Even aanvullen, voor jquery wordt dit ook wel gebruikt:
$(document).ready(function() {
$("a").bind('click', function(event) {
alert("Thanks for visiting!");
});
});

Zo kan je meerdere functies aan eenzelfde event hangen.
Studio E

Studio E zei 2 jaar geleden:

Prototype?

Maar toch een grote JQuery fan.
Ik kan niet zo goed omweg met JS, dus meestal gebruik ik kant en klare scripts.
In mijn geval zijn de aanpassingen in jquery voor mij natuurlijker.
Wel overtuigd dat het een persoonlijke keuze is, al denk ik dat jquery net frequenter is. Correct me if i'm wrong.
René

René zei 2 jaar geleden:

$(document).ready(function() {
$("a").bind('click', function(event) {
alert("Thanks for visiting!");
});
});

Dat doen we tegenwoordig zo:

$(function() {
$("a").click(function () {
alert("Thanks for visiting!");
});
});
Boris

Boris zei 2 jaar geleden:

bind is handig wanneer er meer dan 1 notificatie af moet gaan. JS ondersteunt native maar 1 handler/functie per event.
Jan Fabry

Jan Fabry zei 2 jaar geleden:

@Boris: Volgens mij kan je wel degelijk meerdere handlers in "native" Javascript aan een event hangen. Zie de uitleg van PPK, en de code van jQuery zelf. Meerdere addEventListener calls overschrijven elkaar niet. Het is natuurlijk wel zo dat een library het gemakkelijker maakt, door het cross-browser te maken en de scope te houden en zo.
boris

boris zei 2 jaar geleden:

@jan
addeventlistener = vervallen. PPK: "On this page I explain the two advanced event registration models: W3C’s and Microsoft’s. Since neither is cross–browser supported, their use is, for the moment, deprecated."

Reageer op dit artikel

Toegelaten tags: <a href="" title=""> <code> <em> <strong>

RSS Feed

Bekijk alle tags

Laatste reacties

  • Fabio Maggio: @Tom Claus: bedankt!
  • Tom Claus: @Filip Bedankt voor de tip, CouchDB gaan we zeker even mee bekijken. @Fabio Deze...
  • Fabio Maggio: Is die presentatie van Masterizing PHP Data Structure ook nog ergens te bekijken?
  • Tom Hermans: Thx Tom, schone samenvatting en een massa interessante links, ideaal voor mensen die die dag...
  • Filip Stas: Als MongoDb je al boeit zeker ook eens kijken naar couchbase ook zeker de moeite!