A ClojureScript app exploring dozenal music notation

I find that Rum delivers well on the promises made in its README - it is truly simpler and less opinionated than the alternative React wrappers I know of (Reagent, Quiescent, Om), and its mixin architecture makes it very expressive without forcing you to write classes. I find its choice of explicit atom reads (via rum.core/react) to be more tasteful than Reagent’s Ratom abstraction.

The only thing I would add in favour of Reagent is that Reagent is truly ‘homoiconic’: its UI trees are really made of data structures, which can be assembled programmatically with little commitment, passed around and tested for equality, which makes it pratical to have generic components parameterized with other components. Rum does not really have that AFAICT (neither does React) - or maybe @tonsky will want to correct me?

1 Like