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.

Reply via email to