Two New Libs: Matrix and Shrubbery

Wednesday, January 17, 2018 - 19:00
NYC Clojure Users Group
New York

In January we'll have two exciting new libraries presented by members!

Matrix by Ken Tilton

Notorious Common Lisp and now CLJ/CLJS front-end developer Kenny Tilton will debut Matrix CLJS, his newest reactive web framework. Matrix is an “Un-framework”, bucking the ReactJS trend by leveraging a fine-grained dataflow library to produce a declarative and fast web app library from nothing but HTML/CSS and ClojureScript. Matrix breaks all the rules, joining concerns instead of separating them and making all model and view state globally accessible. Time permitting, questions will be taken before Kenny’s tar and feathering.

Shrubbery by Brian Guthrie

If you've ever unit-tested a stateful Clojure application, you may have found yourself needing to address side effects. For example, a function may query a database or invoke an external web service. One common way to manage these side effects is by declaring and implementing protocols that encapsulate the external call. This has the benefit of making them explicit and easily testable. Component is an example of a popular library that encourages this pattern.

Although Clojure protocols are a great way to encapsulate operations with side effects, they suffer from a general lack of test tooling. In this talk, I'll be presenting Shrubbery, a library that provides a small set of basic building blocks for creating protocol implementations specifically designed for testing. Shrubbery is test framework-agnostic, has no external dependencies, makes no attempt to perform runtime var replacement and uses no macros. However, there are some wrinkles in its implementation that may be of interest.