3 ms·
Joe Armstrong said the following when he was interviewed by Simon Peyton Jones [1]: > JA: In the first incarnation of Erlang, it was just... little black boxes
by reginaldo 7y ago
Joe Armstrong said the following when he was interviewed by Simon Peyton Jones [1]:
> JA: In the first incarnation of Erlang, it was just... little black boxes were communicating, copying their messages - it's a mailbox model, copying to a mailbox. What we were doing was relational. We had Prolog processes inside the black boxes.
> SPJ: But you saw the light.
> JA: We had to. You are launching a rocket program, because... We wanted from a black box perspective, if you send a certain sequence of messages in, you want the same sequence of messages to come out. You want that to be reproducible and deterministic and Prolog isn't like that. It backtracks, and it has things like that. It just sort of became more natural to make it functional. We never made a decision about having types or not having types. That wasn't an issue. We started with Prolog. Prolog didn't have types, so we got the dynamic type system that Prolog had. The issues we were interested in were limiting errors, propagation of errors, restarting things, restarting bits of the system without taking down all the system, having things which may appear inconsistent while you are upgrading them, continuously evolving systems, not systems you stop and restart.
My take from it is they didn't want backtracking because having backtracking would allow nondeterminism (as in [2]) and they didn't want that.
[1] https://gist.github.com/olifante/222879/c7b51c7f2d17d5d5b7b65526530bec31b7eea632 https://gist.github.com/olifante/222879/c7b51c7f2d17d5d5b7b6...
[2] https://en.wikipedia.org/wiki/Nondeterministic_programming https://en.wikipedia.org/wiki/Nondeterministic_programming