Erlang/OTP: Un Mundo Concurrente

Mi Reseña

Brujo Benavides
Erlang Battleground
4 min readMar 22, 2022

--

Luego de casi quince años de trabajar, enseñar y difundir Erlang por el mundo, recién hace unos pocos días tuve la posibilidad de leer mi primer libro sobre Erlang en castellano. Se trata del libro que da título a este artículo y está escrito por . Aquí van mis opiniones…

Yo, con el libro
Sí, el libro en papel me conseguí.

En Resumen

Para aquellos que no estén interesados en los detalles, comencemos con la conclusión directamente así se pueden saltear las siguientes secciones si no les interesan.

En general este libro contiene exactamente todo lo que yo suelo enseñar en cualquier curso de introducción a Erlang. Y lo mejor que tiene es que está en castellano. Así que si tú estás intentando aprender Erlang o si conoces a alguien que está dando sus primeros pasos en este lenguaje/tecnología, éste es definitivamente el libro que debes recomendarle!

Y ahora, sin un orden particular, pasemos a los detalles…

En Castellano

Desde mi punto de vista porteño, donde se considera cool usar términos directamente en inglés en lugar de traducirlos, leer un libro en el que a los scripts se les dice guiones, al soft-real-time se le dice tiempo real blando y se incluyen términos como enlace vital y otros es a tanto un desafío mental como una experiencia verdaderamente refrescante.

Ciertamente para un lenguaje no tan popular como Erlang, no sé si es estrictamente útil aprender a decir guión en lugar de script, pues lo más probable es que si tienes una duda y quieres buscar ayuda en la internet, necesites expresarte en inglés de todos modos. Pero para un libro como el de , es algo que le aporta carácter sin enturbiar la comprensión del contenido.

Erlang sin OTP

Otra cosa que se encarga de mencionar en el libro y que es algo que yo he aprendido un poco a la fuerza a lo largo de mi carrera enseñando Erlang a desarrolladores es que, si bien es muy tentador introducir OTP desde el primer momento, eso no es necesario. De hecho, que el libro sea tan completo y aún así sólo mencione OTP al pasar nos muestra a la vez la simplicidad y el poder que tiene Erlang como lenguaje y la BEAM como máquina virtual.

Es cierto que nadie (salvo quizá quienes trabajen para ) va a conseguir nunca un trabajo de desarrollador Erlang que no incluya el conocimiento de OTP, pero también es cierto que para entender OTP apropiadamente es vital tener un conocimiento de Erlang y su máquina virtual en general. Así que este libro es importantísimo y, tal como su autor se encarga de manifestar, es sólo el comienzo. Hay mucho más por aprender!

Pattern-Matching

Cuando doy cursos de Erlang, generalmente dedico varias horas a explicar en detalle cómo funciona y para qué se usa el pattern-matching. Creo que lo hago así porque generalmente asumo que mi audiencia tiene cierta experiencia en programación de lenguajes del paradigma imperativo y, por eso, el concepto es algo revolucionario y sorpresivo. Además, las veces que lo he explicado velozmente, he tenido que volver a explicarlo/repasarlo al momento de enseñar funciones recursivas.

realiza una aproximación distinta al tema en su libro. De hecho, la concordancia (que es así como la llama) es algo que casi no se detiene a explicar en ningún momento. Simplemente la vemos aparecer por todos lados directamente cuando se necesita usarla. Me resulta muy interesante ver ese enfoque que, entiendo, surge de asumir que el lector no es necesariamente alguien que ya sabe programar. El libro está apuntado incluso a aquellos para quienes Erlang es su primer lenguaje de programación y por tanto, no tienen que desaprender nada.

Más allá de Erlang

Siguiendo este mismo criterio (asumir un público no iniciado), el libro no pasa por alto ninguna explicación relevante aunque no esté directamente relacionada con el lenguaje que está explicando. Así es como en un libro introductorio a Erlang, no econtramos con lecciones sobre protocolos de red, seguridad informática, algorítmos y varias otras cosas que le brindan una robustez muy satisfactoria a lo que uno está leyendo. No se necesita abandonar el libro para googlear nada, toda la información está allí mismo.

El Órden de los Tópicos

Finalmente, creo que mi única crítica, más allá de uno o dos pequeños errores que se han filtrado en el texto, acerca del libro es que es una montaña rusa de emociones.

Quizá sea porque a lo largo del tiempo me he acostumbrado a enseñar Erlang (y otros lenguajes de programación) siguiendo un orden más o menos similar todas las veces, pero el órden elegido por me resulta, al menos, sorprendente e inesperado.

En el libro pasamos de Tipos de Datos a Tiempo Real Blando sin mediar explicación alguna de algorítmos, módulos, funciones. Pasamos luego de case e if directo a listas por comprehensión. Yo hubiese esperado un poco de recursión antes de irnos tan lejos, quizá. Lo mismo cuando pasamos de funciones anónimas (o clausuras) directo a las directivas del preprocesador. Es un libro que nunca para de sorprender al lector, eso es seguro! 😏

Conclusión

En conclusión, como lo decía al principio, Erlang/OTP: Un Mundo Concurrente es un fabuloso libro para aprender Erlang de cero, en castellano y sin necesidad de tener conocimientos previos de programación, redes, concurrencia, seguridad informática, ni nada más.

Pero claro, siempre es conveniente presentar esta advertencia:

Erlang es un viaje de ida. Una vez que hayas conocido todas las cosas maravillosas que puedes hacer con este simple lenguaje y esta potente máquina virtual, ya no verás con los mismos ojos al resto.

Te lo digo por experiencia… 😉

--

--