These are chat archives for jdubray/sam
This article discusses the idea of behavioral programming, the main lure being that you can alter the behavior of a program without modifying the code inside components.
It seems to be an event-driven approach, which I have tried in a fairly large application and found that it leads to difficult-to-follow code as events are triggered, altered, and handled in disparate parts. This is supposed to be an advantage, but in practice becomes unwieldy and hard to reason about (in my opinion.)
I think that the goals achieved in the article, namely emitting events and being able to block and alter events to assemble the behavior of an application, are more easily reached with SAM; the equivalents being presenting proposals, accepting/refusing, and next-action.
What do you think?