tag:blogger.com,1999:blog-5722310642266356003.post4161184609909053321..comments2024-01-07T23:21:32.676+01:00Comments on The Axis of Eval: A trivial implementation of Reactive Demand ProgrammingUnknownnoreply@blogger.comBlogger6125tag:blogger.com,1999:blog-5722310642266356003.post-37536531266805817092015-06-17T16:06:39.432+02:002015-06-17T16:06:39.432+02:00Reading a blurb on Alan Kay's idea to create w...Reading a blurb on Alan Kay's idea to create whole computer system, including windowing system, menus, gui with layout, publishing etc in 20,000 lines of code mentioned that it uses reactive programming (and constraint based layout). But it was mentioned that a tick based model for updates was chosen because that apparently simplifies some problems. That is to say, it's organized like a video game where time is measured in discrete animation steps.<br /><br />I'd like to see how that solves problems and how one rolls that in.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-18822839012097992772015-06-17T10:12:42.265+02:002015-06-17T10:12:42.265+02:00Patrick, yes that absolutely sounds like something...Patrick, yes that absolutely sounds like something RDP can model this way.<br /><br />Usually, signals are actually accessed by means of behaviors, analogously to how a filesystem is accessed by means of a file server in Plan 9.<br /><br />So there could be a bCurrentMenuSelection behavior that, when there is a demand (input signal) on it, responds with a dynamically updating output signal containing the currently selected item. The input signal on bCurrentMenuSelection could simply be an empty/null/unit signal, indicating the time and duration of your (or another component's) interest in the current selection.<br /><br />The main behavior of an RDP app is activated by supplying it with an empty demand, and usually its output signal is ignored (if the app is just run for effect, such as displaying a GUI). This initial empty main demand is then passed around inside the application (duplicated with bdup into a product signal, see Sirea README) to activate its sub-behaviors. <br /><br />It's also possible to dynamically reconfigure the behavior network at runtime. Here's an example of how that could work from David: https://groups.google.com/forum/#!msg/reactive-demand/C_0TJjTQkzo/z5VEoSJZePkJManuel Simonihttps://www.blogger.com/profile/07840673741485280526noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-87093553219637020492015-06-16T22:27:36.248+02:002015-06-16T22:27:36.248+02:00One thing I am not clear about is how dynamic the ...One thing I am not clear about is how dynamic the signals system can be. For example, can I define a "current menu selection" signal and as I move the pointer over a menu (list of items), the item under the point at any given time is the value of a "current menu selection" signal? (if that the proper terminology?)patrickdloganhttps://www.blogger.com/profile/09030151653908100586noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-90180521683404107652015-06-15T21:42:26.674+02:002015-06-15T21:42:26.674+02:00Dobes, in the above example, sigIn is the demand t...Dobes, in the above example, sigIn is the demand that causes myBehavior to compute an output on sigOut.Manuel Simonihttps://www.blogger.com/profile/07840673741485280526noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-69494934477571969122015-06-15T21:16:02.423+02:002015-06-15T21:16:02.423+02:00This is great I am also trying to decode RDP. I t...This is great I am also trying to decode RDP. I thought in RDP the downstream behaviors or signals were supposed to push a parameter upstream as well. Otherwise we are missing the "demand" part. Am I right here? Have you thought about how that would work in "bucky"?Dobeshttps://www.blogger.com/profile/09392777569321223496noreply@blogger.comtag:blogger.com,1999:blog-5722310642266356003.post-76870752671790911382015-06-15T20:59:34.364+02:002015-06-15T20:59:34.364+02:00Reminds me of Forth.Reminds me of Forth.Lars Brinkhoffnoreply@blogger.com