Hacker News new | ask | show | jobs
by joechung 6113 days ago
Time is a global variable (and hence an implicit parameter) to any function that manages state.
2 comments

Except the point is that in most languages, it's more than an implicit parameter (like 'this') - it mutates away while the function is running.
I don't think that our points are mutually exclusive (why "except").
As 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.
Except 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.