gradient

Elixir primeros pasos

Romikya Labs

¿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:

Compartir:
gradient

Contáctanos

Nos interesa escucharte

Información

No dudes en escribirnos si tienes alguna pregunta adicional o si necesitas más información. Nuestro equipo estará encantado de ayudarte en todo lo que necesites.