5 ms·
Time is a global variable (and hence an implicit parameter) to any function that manages state.
by joechung 17y ago
Time is a global variable (and hence an implicit parameter) to any function that manages state.
- pmjordan 17y agoExcept the point is that in most languages, it's more than an implicit parameter (like 'this') - it mutates away while the function is running.
- joechung 17y agoI don't think that our points are mutually exclusive (why "except").
- pmjordan 17y agoAs I understand it, the point of the presentation was highlighting the incidental complexity arising from the implicit instability of mutable state. If an immutable snapshot of the whole program state was an implicit parameter to functions, that wouldn't be so bad. It's the fact that anything can pull out the rug from under your feet at any time that creates the need for paranoid constructs in most classical concurrent programming.
- jasonwatkinspdx 17y agoExcept that it's not. Time is relative to each observer. Creating a consistent global view of time requires communication to achieve this consensus. Not just that, we know from FLP that we'll need to use failure detectors and timeouts to simulate a globally synchronous system. This approach (namely Paxos) has such a high performance cost that it's important to understand alternative perspectives that do not require a global clock (in any form). This was the entire point of Rich's talk: that we gain advantages from having a more nuanced model of time.