These are chat archives for jdubray/sam

4th
Jun 2016
Jean-Jacques Dubray
@jdubray
Jun 04 2016 01:32

usually it's pretty straightforward to sort out!

well state alignment in distributed systems is not... Guido coauthors papers with Barbara Liskov, so he's not your average computer scientist. No offense, but I'd like to see what he has to say.

@jdubray I also added the SAM rocket launcher with React: http://codepen.io/foxdonut/pen/PzqOGG?editors=1010
What I like about it is that only the view has to change (vs the plain vanilla js/html version)
The rest of the code remains unchanged, what you use to render the view is a pluggable configuration into Meiosis.
Jean-Jacques Dubray
@jdubray
Jun 04 2016 02:51

@devinivy

Topological sorting of the dependency graph could still be used inside the update transaction to prevent multiple recalculations of the same functional parts. Doing so would, however, imply forcing all hosts’ local update threads that are involved in the transaction to emulate a single-threaded execution

An ideal solution would be designing a new algorithm, which incorporates both
concurrent updates of independent reactives (those that are incomparable in the topological
order) and prevention of multiple recalculations of affected reactives. It is our
goal to provide this hybrid solution
devin ivy
@devinivy
Jun 04 2016 02:58
@jdubray interesting, thank you! yes, topo sort isn't the magical solution to working with distributed systems.
Jean-Jacques Dubray
@jdubray
Jun 04 2016 03:00
I have connected with Guido, I'll try to get an update as to where he is in his research. The paper is from 2013, he might have some new perspectives.
I am not saying that Remote Reactive does not work or should not be used or SAM works better. Again, I just tend to be skeptical of magic bullets like FRP. As long as you know the limitations and when to use an approach everything is cool. We all know by now that there is no magic bullet in Software Engineering.
devin ivy
@devinivy
Jun 04 2016 03:03
what he's talking about makes sense. there are naturally going to be items that are independent of each other as far as dependencies go– you can parallelize those tasks. it takes a little more bookkeeping when doing the topo sort to figure out which tasks are independent from each other. very interested to hear what you find!
Jean-Jacques Dubray
@jdubray
Jun 04 2016 03:04
Yes absolutely. As I said, for me the itchy question is more around the "allowed" actions, since there are no well defined actions. The general problem I have with strict FRP is the lack of State/Action structure. I'd be curious to get his answer.
The basic notion of a step in Remote Reactives (when both the client and server state becomes aligned) seems to be an issue. Imagine the case of a fast client and slow server and you have server->client dependencies. You need some structure that is going to allow you to deal with these kinds of questions.
Jean-Jacques Dubray
@jdubray
Jun 04 2016 03:28
Several languages implement concepts from reactive programming in various flavors. The interested reader can refer to [2] for an overview. None of them provides glitch-freedom in
the distributed setting.
devin ivy
@devinivy
Jun 04 2016 04:50
i wonder if erlang does a reasonable job here
Jean-Jacques Dubray
@jdubray
Jun 04 2016 22:04
Not sure I was waiting for hell, but this sounds like the best library to implement SAM https://github.com/trueadm/inferno