[<<][compsci][>>][..]
Thu Aug 25 11:23:37 EDT 2016

Declarative distributed programming

Building (heterogenous) distributed applications is hard.  Why?

It seems inevitable to escape a design that relies on distributed
state, and communicating stateful objects have very complex
interaction patterns.


I've enjoyed using Erlang to mainly make the problem known:

- You will not understand the problem you're solving until you've seen
  your proposed solution fail - due to distributed interacting state.

- The only hope you have to get anywhere near implementing your
  requirements is to iterate development.  Updates are essential in
  this process.

- It makes sense to focus on the happy path, and design for robustness
  through restarts: if something unexpected happens, give up and go
  back to a known state.  Move design effort into designing
  supervisors.

- There is probably no coincidence that the supervisor approach
  resembles the idea of the "germ line" in biological evolution:
  everything except the germ line is disposable, as long as it runs
  long enough to propagate the germ line.



All this leaves the functional programming mumbo-jumbo out of the
picture, or at least delegates it to the meta level.




[Reply][About]
[<<][compsci][>>][..]