| “Signal” was used for a time-varying value in a reactive system for a very long time (I thought it was as far back as Fran in 1998, but I was remembering wrong—I was only able to find usage in Grapefruit in 2009, older references welcome). One way or another, in a functional reactive programming system, you need distinct names for: (a) A thing that happens (or might happen but ultimately doesn’t) and is associated with a value of some sort, such as the mouse coordinates of first left-button click the program sees; (b) A list of the above with monotonically increasing times, such as all the left-button click coordinates in order; (c) The above plus an initial value, representing a piecewise constant function of time, such as the state of a toggle; (d) A (conceptually) piecewise continuous function of time, such as the position of an animated object. [To avoid “time leaks”, i.e. accidentally retaining all change history from the beginning of time, you also need (e) A computation that reads the current time, such as the mouse coordinates of the next left-button click the program will see; but that’s not supposed to be obvious—it took more than a decade to figure out.] Possible names include: event occurrence [for (a)], event stream [for (b)], event [either (a) or (b)]; behaviour [(c) or (d)—the library may not distinguish them in the API or only provide (d)]; reactive [Conal Elliot’s name for (c) as opposed to (d)]; signal [(b), (c), or both]. All of these make sense in isolation. I don’t think you can win here. [Perhaps the worst word to use is “stream“, because people start trying to fit streams with backpressure in there. FRP only makes sense as far as you can assume any recalculations happen instantaneously, meaning at the very least before the next input change happens. If you forget that, you get Rx instead of FRP, and that’s not amenable to human comprehension—or indeed sanity.] |
I'm not sure what you mean by "Rx" in this context.
My background is much more in the systems (and indeed, "signals" in the theoretical sense).
I still think the name "signal" here is quite bad, since it's the abstract concept of something-that-carries-information