I agree starting with something basic and simple offers more learning
potential.

We're actually expanding the focus of our SF Reagent Meetup to be Reactive
ClojureScript with heavy focus still on the more accessible
Reagent/Re-frame tools, while also bringing in one other Reactive
ClojureScript framework to talk about at each meetup. I'm inclined to go
with Julien's work for our first exploration.





On Sat, Apr 18, 2015 at 11:52 AM, Alan Moore <kahunamo...@coopsource.org>
wrote:

> Absolutely, thank you! More time to work on other stuff, yay :-)
>
> Native ClojureScript FTW! Wrappers are convenient and good if you need to
> play nice with existing frameworks (looking at you React) but otherwise
> they seem suboptimal.
>
> Thanks for the library Julien and a hat tip to Prismatic for dommy.
>
> Alan
> --
> *"Whatever you can do, or dream you can do, begin it. Boldness has genius,
> power, and magic in it. Begin it now."* - *Goethe*
>
> On Apr 18, 2015, at 11:25 AM, Julien Eluard <julien.elu...@gmail.com>
> wrote:
>
> Hi Alan,
>
> you might be interested by the latest release of the hipo [1] library
> which provides reconciliation (à la react) [2] of live DOM nodes. It is
> essentially a native ClojureScript 'virtual-dom' implementation using
> hiccup vectors as syntax.
>
> Cheers,
> Julien
>
> [1] https://github.com/jeluard/hipo
> [2] https://github.com/jeluard/hipo#reconciliation
>
>
> Le samedi 18 avril 2015 14:20:14 UTC-3, Alan Moore a écrit :
>
> Sorry for the delayed response. Yes, I stand corrected, I evaluated just
> about every front end library there is for ClojureScript and some of the
> names are starting to get confusing to my age addled brain (react, reagent,
> freactive, re-frame, etc..)
>
>
>
>
> I really just want the DOM diffing from React and don't need any of the
> other stuff. I'm considering making a ClojureScript wrapper for:
>
>
>
> https://github.com/Matt-Esch/virtual-dom
>
>
>
> My goal is to write most of the front end logic using rules (Clara is the
> best candidate ATM) so the view portion needs to be as simple as possible
> for the rules to manipulate the DOM. The rule engine provides all the data
> reactivity I need - any data (normal clojure data) you put into it is
> automatically pattern matched against the rules, including
> unification/relationships with existing data - as defined by your rules.
> Here is the general idea:
>
>
>
> Model: Data inserted into the rule engine's working memory
>
> View: DOM/React/Rum/vdom
>
> Controller: Rules in the engine
>
>
>
> It is reactive in the sense that inserting data/facts/events (from server
> or user/view events) into the engine triggers rules to fire, those rules
> may then update the UI or the server, rinse and repeat. There is no
> "polling the data" for changes because the engine maintains a data
> structure (a Rete graph) that pattern matches against your data as you
> insert it, edge-triggered as it were... You can query the data stored in
> the engine using a defquery... which is like a defrule without a RHS.
>
>
>
> The goal for my app is to keep all the core app logic in the rules which
> makes them easily unit tested because the primary externalities are just
> data. Think of it as a reactive version of Datascript, at least that is how
> I see it. Also, in theory, Clara artifacts such as rulesets and sessions
> can be moved around a system as self contained units of logic giving you a
> lot of flexibility in how you organize (or re-organize) your architecture.
> According to Ryan Brush, the author of Clara, they deploy Clara in Hadoop
> jobs to great effect.
>
>
>
> Along the same lines, another experiment I want to look into is extending
> the core Clojure data protocols (ISeq, Iterable, etc.) to the Clara
> sessions so that, to the rest of the system, the session looks just like a
> regular Clojure data container... or something like that (e.g. conj ==
> insert, etc.)
>
>
>
>
> I'm curious to hear how Rum works out for you. I think Rum and Quiescent
> are both excellent minimalist React wrappers. Om is awesome but is more
> than I need. If my experiments don't work out I may go back to it... TBD.
> If you like Datascript and Quiescent then you might want to check out:
>
>
>
>
> https://github.com/thegeez/clj-crud
>
>
>
>
> It is a really cool app template to get you started.
>
>
>
>
> I'll let you know how it goes, my app is still very much a work in
> progress. I'm currently working on converting the Clara codebase from
> crossovers to using reader conditionals so that is a bit of a diversion
> from the UI side of things.
>
>
>
> As with your project, this is one of many side projects for me. I need the
> day job to pay the bills... :-/
>
>
>
> Take care.
>
>
>
> 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 a topic in the
> Google Groups "ClojureScript" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojurescript/kCdOQzPNAug/unsubscribe.
> To unsubscribe from this group and all its topics, 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.
>
>  --
> 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.
>

-- 
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.

Reply via email to