Mike,

Do you want to give a talk about it? ;)

I'm looking for speakers (local or remote) for our first Reagent meetup in
SF.

Back to cursors and enabling re-usable components. I'm not sure how
isolating control outside of components can lead to re-usable components.
Can you explain, please?

I'm now passing finely grained cursors to the factory returned function to
avoid re-rendering every instance of a reusable input component due to the
previously coarse cursor we were using. It shifts the overhead to the usage
context where the user of the component has to split the atom to single-use
slices and pass the the corresponding instance of the component. Do you
know what I mean? I can clarify.

So far the cursor based architecture has not failed me, where my goal is to
build re-usable Reagent components.

But you know a lot more than I do about both Clojure and Reagent. So feel
free to enlighten. In fact, I look forward to your explanation on building
re-usable components. I'm not sold on any SPA framework where the
components are hard to re-use.

Looking forward to more chat!

Marc



On Thu, Feb 26, 2015 at 4:55 PM, Mike Thompson <[email protected]>
wrote:

> On Thursday, February 26, 2015 at 10:19:05 AM UTC+11, Jane Dampney wrote:
> > On Wednesday, February 25, 2015 at 10:52:23 PM UTC+11, Mike Thompson
> wrote:
> > > A Reagent Framework For Writing SPAs, in ClojureScript.
> > >
> > > README and source code: https://github.com/Day8/re-frame
> > >
> > > "Derived data, flowing" in a two-stage, FRP loop.
> > >
> > > Absolutely no Cursors!!
> > >
> >
> > Wow!  No Cursors, indeed.
> >
> > Really well thought out, and nicely explained.
> >
> > Appears similar to https://github.com/evancz/elm-architecture-tutorial
> > but not the same.  I like the use of middleware and love the possibility
> of using statecharts.
>
>
>
> Indeed, Elm was an inspiration.  As was the terrific Hoplon, which doesn't
> get nearly enough praise.
>
> We all know that immutable data let's you manage "time" better, right?
> We're able to ignore (isolate ourselves from) the effect of time on data.
>
> FRP is another dimension in the same process. FRP allows us to model the
> "flow" of data over "time". It allows us to manage the process of producing
> "Derived Data" (materialised views) over time.  Again, it is all about
> doing the "time/data”  thing better.
>
> That was a big learning for me (I worry that everyone else already knows
> this already, and I'm just very late to the party).
>
> Perhaps the biggest moment for me was seeing Pete Hunt (Facebook) talking
> at reactconf. In his talk, he referenced a particular StrangeLoop video,
> mentioning how it had had a big influence on the way Facebook looked at
> things these days, and then he talked about how it was all about "Derived
> Data".
>
> When I watched the video, a small nuclear explosion went off in the back
> of mind. The penny suddenly dropped for me about FRP.
>
> At that point, I suddenly understood what I had been trying to achieve
> with re-frame, and why I found it so pleasing to work with. It all made
> sense.
>
> The key thing for me is:  JUST. DON'T. USE. CURSORS. There I said it. They
> appear convenient, I know. They are a way of achieving reference
> transparency, I know.  But I think they are a “local optimum”.  Their use
> seems to get in the way of a more important data flow paradigm and they
> seem to encourage "control" into all the wrong places (components). At
> least that's my experience (I did try to love them, really I did :-)).
>
> I know this is a controversial opinion within ClojureScript right now. OM
> has such an overwhelming mindshare. David is a very compelling and
> important character.
>
> Anyway, I'll finish off the todomvc over the weekend. That will make
> re-frame a bit more real and easy to Grok.
>
> --
> Mike
>
> --
> 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.

Reply via email to