Disclaimer: I've worked on CircleCI's frontend, but only since recently. I did 
not have a hand in it's original design. Overall, I'm pretty happy with it and 
Om, but I'd definitely change many things if I could. That's pretty standard 
high-praise for any software project, as far as I'm concerned.

> Doesn’t this defeat the whole purpose of using Om?

That depends on what you consider the "purpose of using Om" to be.

Ignoring cursors, it's a pretty minimal React.js wrapper. David has gone out of 
his way to make sure Om doesn't get in your way, if all you want to do is get 
at the underlying React.js without fiddling with createClass and the like. From 
this perspective, Om is merely an adapter library.

> By not taking advantage of cursors, could they have accomplished the same 
> level of component modularity by using Reagent with a single atom?

Cursors don't really provide a great deal of modularity or encapsulation. They 
force you in to a hierarchical decomposition of application state, which is 
less than ideal if your data model doesn't 1-to-1 match your user interface.

I didn't understand the design or motivation for Cursors when David first 
launched Om. And even after several chats about it, he and I still disagree 
about their worth and the ideal structuring of a frontend app. Hopefully 
between us and any of a dozen of other tinkerers in this space (including 
Reagent's developers and users), we'll make some progress on the UI frontier 
yet.

>  Curious if Om offers any other benefits that I’m not aware of.

CircleCI's Daniel Woelfel and I have written about the benefits we get from 
Om's aspect-oriented functionality:

https://dwwoelfel.github.io/instrumenting-om-components.html
http://blog.circleci.com/local-state-global-concerns/

React.js doesn't provide global hooks out of the box, so having Om between us 
and React makes these things much easier.

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to