Mozilla versüßt JavaScript
Das sweet.js-Projekt aus dem Hause Mozilla möchte JavaScript-Entwickler mit Hygienic Macros unterstützen. Befehlsfolgen sollen so ohne die aus C-Sprachen bekannten Probleme in Anwendungen integriert werden können.
- Julia Schmidt
JavaScript-Entwicklern soll die Arbeit mit Makros durch Mozillas sweet.js erleichtert werden. Um die Interaktion zwischen Makros und normalem Code zu verhindern, erweitert das Projekt JavaScript um sogenannte Hygienic Makros, wie sie bereits in Sprachen wie Rust und Scheme vorhanden sind. Auf diese Weise sollen aus C-Sprachen bekannte Probleme verhindert werden, beispielsweise die Nutzung bereits belegter Variablen durch Makros.
Generell lässt sich JavaScript durch Makros auch eigenen Bedürfnissen anpassen, wie ein Beispiel auf der Projektseite zeigt:
macro def {
case $name:ident $params $body => {
function $name $params $body
}
}
Hier wird der Funktionsbezeichner function durch das kürzere def ersetzt, sodass der mitgelieferte sweet.js-Compiler den folgenden Aufruf
def sweet(a) {
console.log("Macros are sweet!");
}
in eine gewöhnliche Funktion umwandeln und so für JavaScript-Laufzeitumgebungen lesbar machen könnte.
Der Quellcode des Compilers ist auf Github verfügbar; sweet.js nutzt Node.js. Da das Projekt noch in den Kinderschuhen steckt, ist mit Bugs zu rechnen. (jul)