I don't think cursors were really ever recommended that strongly.  It seems
like query solutions like datascript/Relay seem to be the way things are
going.  I think it's the next stop on the declarative decoupling train that
we're all so fond of.  This project and others like it are exciting!

On Thu Feb 26 2015 at 9:05:59 PM Marc Fawzi <marc.fa...@gmail.com> wrote:

> 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 <m.l.thompson...@gmail.com>
> 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 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