Thank you for sharing this Alan! Its really interesting. Would Clara then work with something like Hipo? I like the distinction you make between it and mutation based reactions. Very interesting topic that deserves more discussion imo.
Sent from my iPhone > On Apr 20, 2015, at 2:56 PM, Alan Moore <[email protected]> wrote: > > >> On Mon, Apr 20, 2015 at 1:45 PM, Kurt Sys <[email protected]> wrote: >> The basic stuff I need is really very similar. What I like about react, is >> not the dom diffing as such, the 'should-update' mixin. This really can make >> things way easier. It doesn't play as nice as I thought it to be between rum >> and datascript queries, but it'll work. Datascript queries are really >> amazingly powerful to me. I use them really a lot, and full dom diffing >> might be pretty, or more, expensive compared to a 'should-update'. >> >> That said, I had been looking to clara before (for another kind of project), >> but I pretty much like the idea of using it as 'database/query >> engine'-someting. Would you implement something like the should-update on >> component basis as well. I'm really very interested in your wrapper/library >> and how it would work out. > > The nice thing about Clara (and rule engines in general) is that you can > declare that certain functions (RHS) are to be called when a set of > conditions/queries (LHS) over your data evaluate truthfully. There is no need > for "should-update" polling, it is more don't call us, we will call you - > control is inverted. When a user or server event happens the handler code > inserts the event data into the engine and then calls the fire-rules function > to trigger subsequent actions based on the rule conditions. > > Clara does truth maintenance which is an awesome feature but in my use case I > have to work around it slightly to accommodate transient facts/events. Not a > big deal just something to keep in mind when first understanding how it works. > > I don't really see there being a need for a wrapper around Clara - you can > use it as-is. I'm just trying to figure out the best way to integrate it in > the client-side context. It was built with a particular set of use cases in > mind that don't always match up with my experience with other rule engines > that are more "mutation" oriented. Clara's rule engine is a value in the same > way that Datomic's database is a value. This is super powerful but that means > you need to organize your code slightly to take this into account. > > Alan > -- > 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. -- 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.
