Immutable.js: Ein Klassiker für unveränderliche Datenstrukturen
Der Trend hin zu reaktiven Benutzeroberflächen, paralleler Verarbeitung und verlässlicher Codebasis verstärkt die Frage nach Immutabilität. Immutable bedeutet: Daten werden nicht direkt verändert. Stattdessen entsteht bei jeder Änderung eine neue Version der Datenstruktur. Unveränderte Teile werden dabei intern weiterverwendet, nur die tatsächlich geänderten Bereiche werden neu angelegt.
Die von Facebook entwickelte Bibliothek Immutable.js bringt solche Strukturen nach Javascript. Sie nutzt spezielle Datenstrukturen, um beim Erzeugen neuer Versionen große Teile der Struktur wiederzuverwenden. Dadurch bleibt der Speicherbedarf überschaubar und Kopien lassen sich in konstanter Zeit erstellen. Streng genommen sind Operationen auf Hash-Array-Mapped-Tries (HAMT) typischerweise O(log n) mit sehr kleinem, durch die Baumtiefe begrenztem Faktor, was nahezu konstanten Aufwand bedeutet.