Vorgestern ist die Version 1.3 der Core-Komponente des JavaScript-Frameworks Mootools erschienen. Da Mootools Core eben nur die Kernfunktionen von Mootools bereitstellt, gibt es wenig, was auf den ersten Blick spektakulär erscheint (für den Wow-Faktor ist Mootools More zuständig), doch die Änderungen, die über Bugfixes hinausgehen, haben es durchaus in sich. Ein nettes neues Feature ist zum Beispiel das Generieren von Elementen aus CSS-Selektoren:

// Ergibt <div id="foo" class="bar" title="Hallo!"></div>
new Element('div#foo.bar[title=Hallo!]');

Die einschneidensten Änderungen kommen aus der Abteilung „Aufräumarbeiten“. Um die Anzahl der globalen Funktionen (wie $type() und $clear()) einzudämmen, wurde vieles vereinheitlicht, umbenannt, in andere Objekte verfrachtet oder sogar ganz gestrichen. So konnte zum Beispiel in Mootools 1.2 mit Array.each() über ein Array iteriert werden, während das für Objekte nur über $each(Object) möglich war – in Mootools 1.3 hat auch Object eine eingebaute each()-Methode. Die $random()-Methode wurde sinnvollerweise nach Number.random verfachtet und $empty (erzeugt eine leere Funktion) ganz gestrichen.

Da Mootools 1.3 einen Kompatibilitätsmodus für 1.2 mitbringt, werden auch ältere Plugins mit der Version 1.3 funktionieren, doch für zukünftige Entwicklungen ist es natürlich besser, sich den Änderungen der neuen Version anzupassen. Eine vollständige Liste der API-Neuheiten gibt es im Github-Wiki von Mootools. Echte Fußangeln lauern nur da, wo man undokumentierte Funktionen oder Function.prototype.bind benutzt, doch auch diese Fußangeln sind umfassend dokumentiert.

Ebenfalls aufgemöbelt wurde die Selektorengine Slick, die selbstverständlich jetzt die schnellste und beste und überhaupt tollste Selektorengine der Welt sein soll. Wer das glaubt, aber Mootools nicht mag, wird sich vielleicht darüber freuen, dass Slick ein Standalone-Projekt ist, das auch außerhalb von Mootools eingesetzt werden kann.

Mir gefällt die neue Version. Die $-Methoden loszuwerden war überfällig und die darüber hinaus gehenden Änderungen sehen ebenfalls sinnvoll aus und dank des Kompatibilitätsmodus ist das Ganze auch noch verbraucherfreundlich. Was will man mehr?