After a while I published another article on SitePoint. This time I've chosen to present Ramda.js, which is a utility library to enhance functional programming with JavaScript. In the article I introduce the most important concepts and utilities that come with the library.
The renewed interest in functional programming is a trend that is especially strong in languages like JavaScript. Languages with functions as first-order citizens make it easy to play with functional concepts such as currying, piping, or immutability. Functional programming should not be seen as the only path but rather as the of the whole clean coding initiative. After all this includes concepts such as composability, extensibility, testability, and the loved single responsibility.
Mixing in such concepts in new is therefore a must - it's not optional any more. When I designed the Mages language I also baked in some powerful functional concepts. Of course, the is not revolutionary, however, I think that scripting is far too important to leave it to languages that come with many constraints due to their history and nature / purpose. Mages is lightweight and fast.
So what do I think about Ramda.js? Well, I think it's a step in the right direction and the creators did a lot of things right. If Mages can use some of the cool stuff they introduced it would be a pleasure for anyone to use. I like the immutable arrays and the object views. The currying aspects and parameter ordering is superb. At least for Node.js projects Ramda.js will be one of my default requires.