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.