It may be April Fool’s day, but these links are no joke. To be sure, I wrote this article on March 31st. ;) However, to mark the occasion, I’m going to have four links today instead of three. Mind blowing.
On the other hand programming with immutable data types requires a slightly different way of thinking about things, but offers benefits which make it valuable in certain applications.
Most of these libraries listed do very similar things but have different syntax, different performance and manage slightly different data.
Ancient Oak dubs itself as the immutable tree. I like the name of this library the best, but that is judging a book by its cover. It is designed to work on trees of plain JS data types, something you might get from or convert to JSON. One of the types supported by Ancient Oak is the Date object, which isn’t something I’ve seen in any of the others. Allows you to use the types that you are used to in JS with pretty much the same API.
Freezer is a bit like Ancient Oak in that it maintains an immutable tree structure, but it was built with React in mind, so it also has an event mechanism which allows you to re-render your application when the freezer has been updated. That said, it doesn’t seem to have immutable Date support. And having played with Freezer and Ancient Oak, the API seems a lot more pleasant and intuitive with the former.