▲ | grumpyprole 10 months ago | |||||||
Objects and "method calls" generally implies mutable state to me, but yes the parent was not explicit about this. I assumed mutable (implicit) state was being argued in favour of an explicit state representation. Perhaps I misunderstood. For a state machine, I would expect a function such as: transition : (old_state, event) -> new_state Or if we use immutable objects, and one method per simple event, then something like: transition_event1 : () -> new_state Which I think is similar to what you hace. So I think we are in agreement here. | ||||||||
▲ | saurik 10 months ago | parent | next [-] | |||||||
> I assumed mutable (implicit) state was being argued in favour of an explicit state representation. I definitely was not: I would argue for structured logic rather than implicit state. The idea you are discussing seems to be more about imperative vs. functional design, and that would also be a lot better... but these are Google engineers managing a million interacting state machines via a giant pile of global (mutable) state, resulting in tons of bugs such as this one that isn't even fixed yet: https://issues.webrtc.org/issues/339131894 A reply I just left elsewhere on this thread, noting that "state machine" doesn't imply the clean perfectly-factored concept you'd learn in a computer science class: these are ad hoc state machines that result from having a number of developers who don't really care and who think they can "dead reckon" the state of the system if they just add enough transition functions. | ||||||||
| ||||||||
▲ | InDubioProRubio 10 months ago | parent | prev [-] | |||||||
The problem is, that the state transition information is usually a complex set of events unleashed upon the little world build into objects. Its basically a small reality simulation, parametrized by all sides, similar to a physics simulation with the external world filtered being input. Now, if we said to someone to model a weather prediction via state-machine- that would be obvious madness. But if we take a small object (like a cubic meter of air) and modelled that part to handle inputs and transfer forces, that generic statemachine will do the job- because the atmospheric ocean of statemachines knows more about the whole system, than a single statemachine. My point is- there is state in a system, that is not explicitly modeled. |