From a translator: Joe Armstrong made the greatest contribution to the development of Computer Science. Below is a translation of an article from the wiki quote on Joe.
I wanted to make fault-tolerant systems, and pretty soon I realized that it was impossible to build a fault-tolerant system on an isolated computer, because anywhere in the computer could crash, so I needed a lot of independent computers.
Messages take time to deliver, and they travel across space. There is no guarantee that the message will eventually be delivered to the addressee.
I just want to simulate what happens in the real world.
We needed to build a world in which there are parallel processes communicating by passing messages, and I thought that they cannot have a shared memory, because if they have a shared memory, one failure will cause the rest, like in the domino effect.
Why do people only exchange data, not programs? We could delegate both to some intermediate point in the middle to do the calculations there.
What really scares me is that people are developing large applications that they don't fully understand how they actually work.
Many existing programs do not have a well-defined interface. It doesn't have to be that way.
I think we seem to have forgotten that things can be small. It is necessary to be able to decompose a complex system into small components that can be discussed.
Therefore, we had to add the concept of real-time parallelism to our language. We also added a sophisticated error detection mechanism. This allows us to program reliable real-time systems.