Imagen destacada

desarrollo   2026-06-02 2026-06-02   1 minutos de lectura

La Ley Virding sobre Programas Concurrentes

La Ley Virding sobre Programas Concurrentes

  0   erlang     robertvirding     virding     otp     concurrencia     0   erlang   robertvirding   virding   otp   concurrencia

Robert Virding es una persona muy elocuente, cada vez que hablas con él te das cuenta de que tiene ideas muy bien establecidas y es capaz de explicarlas de forma sencilla y como creador de Erlang, su amor por su creación le hizo soltar lo que hoy en día hemos llamado la Ley Virding, ¿la conoces?

La ley dice:

Any sufficiently complicated concurrent program in another language contains an ad hoc, informally specified, bug ridden, slow implementation of half of Erlang.

En español viene a traducirse como:

Cualquier programa concurrente suficientemente complejo en otro lenguaje contiene una implementación ad hoc, especificada informalmente, plagada de errores y lenta de la mitad de Erlang.

Erlang, tal y como digo en el libro de Erlang (Volumen I) es tanto un lenguaje como una máquina virtual y esta máquina virtual tiene implementadas todas las dinámicas necesarias para desarrollar programas concurrentes de forma fácil.

Enumerando algunas de las bondades con respecto a las propiedades de los procesos, tan solo el hecho de poder intercambiar mensajes, obtener información cuando un proceso termina su ejecución e incluso información sobre cómo y porqué terminó el proceso permite construir estructuras como los supervisores (vistos en el libro de Erlang (Volumen II)) o incluso a través del framework OTP podemos depurar y obtener información de los servidores (la unidad mínima en OTP) en ejecución.

El lenguaje de programación Go, de hecho, toma ideas y fue influenciado por Erlang, que se encontraba en un momento de máxima popularidad cuando Go fue creado y estableció el Modelo Actor y la Programación Orientada a la Concurrencia (como la nombró Joe Armstrong en sus libros) como la base para implementar lenguajes de sistemas y de backend resilientes, responsive y tolerantes a fallos.

Incluso si Erlang no es un lenguaje que te llame la atención y no vayas a utilizar en producción, su conocimiento acerca de cómo gestiona los procesos, la memoria y los nodos ayuda a entender cómo implementar mejores soluciones en software de sistemas y backend en cualquier otro lenguaje.

Te invito a que eches un vistazo a los capítulos en abierto de los libros de Erlang en esta página (Volumen I y Volumen II) y saques tus propias conclusiones. También si quieres adquirilos finalmente para aprender un poco más, adelante. Saber es poder.

Comentarios

No hay comentarios. Inicia sesión para enviar un comentario.