¿Qué es Elixir?
Elixir
es un lenguaje de programación de propósito general, funcional, concurrente y de alto nivel que se ejecuta en la máquina virtual BEAM
, que también se utiliza para implementar el lenguaje de programación Erlang. Elixir
se basa en Erlang
y comparte las mismas abstracciones para crear aplicaciones distribuidas y tolerantes a fallos.
Fue creado por José Valim en 2011, tuvo su aparición en Internet en 2012 y está inspirado en otros lenguajes como Erlang, Ruby y Clojure. Elixir se basa en la programación funcional, lo que significa que se centra en la evaluación de funciones y no en la ejecución de instrucciones.
¿Por qué aprender Elixir?
Existen varias razones por las que los programadores deberían considerar aprender Elixir
. Debido a que se ejecuta en la máquina virtual de Erlang
(BEAM), aprovecha toda las ventajas del mismo. Erlang
ofrece alta disponibilidad, concurrencia, hot code reload
(despliegue en caliente) y muchas otros beneficios como resultado de sus 30 años de evolución.
Por su parte, Elixir
comparte los mismos beneficios para desarrollar aplicaciones distribuidas y tolerantes a fallos. Como valor añadido, Elixir
brinda una facilidad de uso que a la mayoría (si no es que a todos) los desarrolladores cautiva cuando empiezan a usarlo, destacando su capacidad para manejar grandes sistemas y su facilidad de escritura de código conciso y legible. Además, es un lenguaje escalable, lo que significa que puede manejar sistemas en crecimiento sin comprometer el rendimiento.
Instalación y configuración de Elixir
Antes de empezar a programar en Elixir
, es necesario instalar el lenguaje en su sistema. Su instalación es bastante sencilla y se puede hacer utilizando el paquete de instalación adecuado para su sistema operativo. Una vez instalado, se puede comprobar que se ha instalado correctamente utilizando el comando elixir --version
en la línea de comandos.
En windows puedes descargar el instalador.
En Mac OS puedes usar Homebrew:
$ brew install elixir
y también Macports
$ sudo port install elixir
Para otras plataformas y conocer más al respecto de la instalación, se recomienda visitar el sitio oficial de Elixir
Sintaxis de Elixir
El código de Elixir
se compone de módulos, funciones y expresiones. En Elixir
se agrupan varias funciones en módulos y las funciones contienen expresiones, mientras que las funciones son bloques de código que realizan una tarea específica. Las expresiones son valores o cálculos que se utilizan en el código.
Ejemplo de código en Elixir
A continuación se muestra un ejemplo de código en Elixir
que muestra cómo imprimir "Hola, mundo" en la consola:
defmodule HolaMundo do def saludar do IO.puts "Hola, mundo" end end iex> HolaMundo.saludar() Hola, mundo
Los siguientes ejemplos pueden ejecutarse en un shell iex
o guardarse en un archivo y ejecutarse desde la línea de comandos escribiendo elixir
iex> IO.puts("Hello World!") Hello World!
Con el operador Pipe
(|>
):
iex> "Elixir" |> String.graphemes() |> Enum.frequencies() %{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1} iex> %{values: 1..5} |> Map.get(:values) |> Enum.map(& &1 * 2) [2, 4, 6, 8, 10] iex> |> Enum.sum() 30
Coincidencia de patrones (Pattern Matching
) o mejor conocido como destructurar (destructuring
):
iex> %{left: x} = %{left: 5, right: 8} iex> x 5 iex> {:ok, [_ | rest]} = {:ok, [1, 2, 3]} iex> rest [2, 3]
Recursos para aprender Elixir
Existen varios recursos en línea disponibles para los principiantes que deseen aprender Elixir
. La documentación oficial de Elixir es un buen punto de partida. Otro sitio altamente recomendable y que ofrece documentación en español es Elixir School.
Si tienes dudas sobre el valor que puede aportar a tu empresa, vale la pena leer el libro Adopting Elixir: From Concept to Production escrito por Ben Marx, José Valim (¿ya mencionamos que fue el creador de Elixir?) y Bruce Tate.
Otras recomendaciones para saber más:
-
Las primeras impresiones sobre el lenguaje por parte de Joe Armstrong (Co-creador de
Erlang
) después de la primer semana de usarlo: https://joearms.github.io/published/2013-05-31-a-week-with-elixir.html -
Un minidocumental sobre Elixir altamente recomendable (en Inglés): https://cult.honeypot.io/originals/elixir-the-documentary