De un traductor: Joe Armstrong hizo la mayor contribución al desarrollo de la informática. A continuación se muestra una traducción de un artículo de la cita wiki sobre Joe.
Quería hacer sistemas tolerantes a fallas, y muy pronto me di cuenta de que era imposible construir un sistema tolerante a fallas en una computadora aislada, porque cualquier parte de la computadora podía fallar, por lo que necesitaba muchas computadoras independientes.
La entrega de mensajes lleva tiempo y viajan por el espacio. No hay garantía de que el mensaje se entregue eventualmente al destinatario.
Solo quiero simular lo que sucede en el mundo real.
Necesitábamos construir un mundo en el que haya procesos paralelos que se comuniquen a través de mensajes, y pensé que no pueden tener una memoria común, porque si tienen una memoria común, una falla implicará el resto, como en el efecto dominó.
¿Por qué las personas solo intercambian datos, no programas? Podríamos delegar a ambos en algún punto intermedio en el medio para realizar los cálculos allí.
Lo que realmente me asusta es que las personas desarrollan aplicaciones grandes que no entienden completamente cómo funcionan en general.
Muchos programas existentes no tienen una interfaz claramente definida. No tiene que ser así.
Creo que parece que hemos olvidado que las cosas pueden ser pequeñas. Es necesario poder descomponer un sistema complejo en componentes pequeños que puedan discutirse.
Por lo tanto, tuvimos que agregar el concepto de paralelismo en tiempo real a nuestro lenguaje. También hemos agregado un mecanismo sofisticado de detección de errores. Esto nos permite programar sistemas confiables en tiempo real.