Elixir ?

Lenguaje de Programación Elixir

Hace poco tiempo escuché sobre un nuevo lenguaje de programación, y pues me comentaron sobre “Elixir”, y lo poco que puede saber en ese momento, es que la sintaxis de este lenguaje era muy parecida a la de Ruby, y pues al saber esto me causó cierto interés, ya que Ruby posee una sintaxis muy simple y sin mucho código de por lado, además de conocer si me proporcionaba algún Framework para el desarrollo de aplicaciones, pero en realidad más que nada el interés era por conocer este lenguaje. Y es por eso que hace unos días decidí empezar a conocer Elixir.

Elixir fue creado por José Valim (miembro activo de la comunidad de Ruby, y además co-fundador de Plataformatec), quien no encontraba la herramienta adecuada para solucionar problemas de concurrencia en su entorno de trabajo, es entonces que decide apuntar a otras tecnologías , encontrando en ellas la máquina virtual de Erlang.

Erlang, es un lenguaje funcional, además de ser un sistema de ejecución que incluye una máquina virtual y bibliotecas(OTP), creado por la compañia Ericsson, para el mejor desarrollo de aplicaciones de comunicación.

Que mejor como modelo que WhatsApp, que tiene cientos de millones de usuarios, y por lo que podemos deducir es que tiene que manejar miles de conexiones simultáneas de máquinas , que se vuelven millones de conexiones simultáneas que se manejarían en varios servidores, pero WhatsAp mantiene sus conexiones en un solo servidor, manejado por Erlang.

Volviendo a lo anterior, José Valim, comenzó a usar y usar Erlang, y con la experiencia que obtuvo, se dió cuenta que se estaba perdiendo las construcciones de nuevas funcionalidades. Es por eso que decide crear Elixir como un intento de llevar nuevas funcionalidades y excelentes herramientas a la maquina virtual de Erlang.

Elixir entonces fue creado como un lenguaje de programación funcional y concurrente, el cual se ejecuta en la maquina virtual de Erlang, heredando todos sus beneficios, viene con una sintaxis completamente renovada en la simplicidad y flexibilidad a comparación de Erlang, haciendo posible el desarrollo de aplicaciones distribuidas, concurrentes y tolerantes a fallos, y la alta disponiblidad.

Elixir como tal es un lenguaje funcional, este término “funcional” proviene desde hace ya un tiempo atrás e incluso más antes que de la programación “orientada a objetos”, al ser funcionales se basa en funciones de mayor orden y recursividad. Es por eso que un programa desarrollado en elixir es un conjunto de funciones interconectadas con el propósito de procesar datos, datos que resultan inmutables a lo largo del tiempo de ejecución.

Al hacer uso de las librerias y demás funciones de Erlang, dentro de Elixir, hace increíblemente sencillo tener programas que están distribuidos a través de múltiples procesos ligeros que están coordinados y supervisados para realizar procesamiento concurrente y paralelo. Más aún, estos procesos no necesariamente están físicamente en un mismo servidor, pueden estar trabajando en diferentes nodos.

Framework Phoenix

Es importante mencionar que Phoenix es el Framework de desarrollo web escrito en elixir, tiene una gran semejanza a Ruby on Rails. Además utiliza el patrón de MVC, pero por obvias razones Phoenix explota la funcionalidad de Elixir y la máquina virtual de Erlang, porque esa es la base para el desarrollo de aplicaciones con alta disponibilidad, concurrencia, y en tiempo real.

Trabajar con Phoenix puede ayudarnos a descubrir como funciona Elixir y librerías alrededor, así como entender las diferencias de Phoenix, en este caso, contra Ruby on Rails.

Hasta el momento creo que conocemos el propósito general de Elixir. En mi caso me sigue pareciendo interesante y estoy aprendiendo poco a poco a usarlo como lenguaje funcional, y pues ya se me ocurren ideas de cosas a realizar, donde espero poder utilizar todo el potencial de este lenguaje que promete en realidad por tener un focus en la concurrencia y alta disponibilidad.

Dejaré algunas referencias para iniciar con Elixir y el Framework Phoenix, que mejor que la propia documentación de sus sitios web, que hasta el momento son los mejores recursos al que podemos acceder para conocer y aprender.

Sitio Web Elixir:

Sitio Web Phoenix:

Show your support

Clapping shows how much you appreciated Diego’s story.