Edward de Jong / Beads Project
02/06/2020, 5:22 AMEddy Parkinson
02/06/2020, 5:41 AMPezo - Zoltan Peto
02/06/2020, 8:16 PMJosh Cho
02/06/2020, 9:07 PMIonuț G. Stan
02/07/2020, 8:57 AMGeorge
02/07/2020, 11:33 PMalltom
02/09/2020, 8:51 AM… it makes the game far harder to understand and prove correct than something much more conventional.This seems right at first glance, but I would want to learn more about the tooling before I agree. I still have only skimmed the linked papers, but the original authors rely on model-checking for various aspects of BP already, so I suspect proving correctness of tic-tac-toe is within reach. As for understanding, well, if the idea that the event log is all that matters to understanding legacy code is true, then a tool that lets you manually or programmatically explore potential event logs might be even better than trying to find all the move validation code in a traditional code base. Certainly, if the way you understand a program is with event logs, that would make answering reachability questions like "what happens when 'X' tries to move" or "what can prevent an 'X' move" straight-forward. The answer to the first is a printout, and the answer to the second is some representation of "if it's preceded by an 'X' move." I'm definitely imagining the best possible scenario, though. BP is on my reading list now, so perhaps I'll be brought back to earth soon. 🙂
Kartik Agaram
...current methods for dealing with programming the dynamics of reactivity, however powerful and convenient, suffer from the same woes: We sit in front of a screen and write (or draw) programs that prescribe the behavior for each of the relevant parts of the system over time. Then we must check/test/verify that the combined behavior of all the parts satisfies a separately specified set of requirements or constraints. ... There is no need for separate specifications for the operational tasks and the requirements thereof. Anything that falls inside the total sum of what has been played-in will be a legal behavior of the system.I'm still wrapping my head around this vision, but I think it's ignoring the essential complexity of programming. On a fundamental level programmers deal with non-linear building blocks; interactions between constraints can be hard to imagine ahead of time. How would you gain confidence that you've "played-in" a project sufficiently to work out possible constraints? Admittedly we have trouble doing this with existing systems. But surely we need to pay more attention to constraints, not less. Representing actions physically makes it more difficult to survey all actions entered so far, the scenarios they apply in, etc. Check/test/verify is the fundamental, irreducible core of programming. Trying to eliminate it is a fool's errand. LSC (the original Behavioral Programming system) introduces the notion of "play-in" to describe scenarios and how the system should react to them. So there'll be a natural tendency for the number of scenarios and handlers to grow. It's unclear to me how the opposite dynamic of generalizing scenarios happens. How does the system encourage noticing that two scenarios are special cases of a single one and may be coalesced? How does the programmer/user replace two played-in scenarios with a single new one? Without supporting this countervailing operation, the whole system will descend into monotonically complexifying spaghetti. --- Based on this quote, I don't think BP started out envisioning model-checking. If they've since started to do so, I'd appreciate recent papers.
Kartik Agaram
Kartik Agaram
Kartik Agaram
yield {
wait: 'adShown'
block: 'loadingAccount'
}
Can somebody explain this? Is it assuming there's another b-thread somewhere pumping out 'loadingAccount' events ad infinitum?Kartik Agaram
yield
in them taking equal time. Is this true? Certainly the examples here would have wildly different behavior for different relative timings. Being this sensitive to timing seems really bad. It gives me flashbacks to writing Verilog code and running into bugs from signals not getting to a latch in time for the next clock cycle.
Ok, I'll stop spamming this thread. Summary: I have been slowly thinking about BP over 1.5 years now, and my opinion is slowly crystallizing to opposition. OP seems like a poor advertisement for BP. Either it's misunderstanding BP or it's making certain drawbacks very obvious but not self-aware of doing so.Kartik Agaram
Kartik Agaram