I've spent the last few days digging into Rum (insert hangover joke here) and it's awesome!
I started out porting a non-trivial Reagent app to Rum, which ended up taking only a few hours by utilizing the rum/reactive mixin. Of course, during this process I saw several places where taking a mixin-based approach would simplify things, so the last couple of days I've been refining my code and creating better abstractions. I really like the way my app is taking shape using this approach. Maybe it's just me, but Rum "just fits" the way I think very well. It reminds me somewhat of the BOT approach in Light Table. Maybe not the perfect analogy, but the point is that you can think in terms of component behaviors and abstract those out to mix-ins, rather than always thinking in terms of composing/wrapping components. Rum seems to be a good foundation for creating higher level abstractions or DSLs for your UI. Everything is data and pure functions - the only macro (defc) is just sugar. I've only played with this a little, but there's a lot of potential here. Another plus is that Rum makes it trivial to use Datascript. This was hard to do (well) with Reagent and Om, but with Rum I just have a transaction listener that calls rum/mount whenever the db changes. Combined with the prodigious use of rum/static for child components, and of course React's native DOM diffing, this might be performant enough for my app. All of my transactions are already decorated with :tx-meta tags, so if needed I can easily optimize performance further (by having mixins that only trigger re-rendering based on certain transactions). But I'm holding off on that optimization for now. So far, Rum looks like a winner to me. Thank you Nikita for Rum and Datascript - two of the most innovative libraries in CLJS land so far. -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at http://groups.google.com/group/clojurescript.