Este taller estará basado en Elixir guides. Es básicamente una traducción del mismo con algunos cambios y apuntes.
¿Qué es?
Elixir es un lenguaje de programación funcional, concurrente, de propósito general que se ejecuta sobre la máquina virtual de Erlang (BEAM). Elixir está escrito sobre Erlang y comparte las mismas abstracciones para desarrollar aplicaciones distribuidas y tolerantes a fallos. Elixir también proporciona un diseño extensible con herramientas productivas. Incluye soporte para metaprogramación en tiempo de compilación con macros y polimorfismo mediante protocolos.
Características
- Es un lenguaje que compila a bytecode para la máquina virtual de Erlang (BEAM)17
- Todo es una expresión17
- Las funciones de Erlang se pueden llamar desde Elixir sin tener impacto en tiempo de ejecución, debido a su compilación al bytecode de Erlang, y viceversa.
- Metaprogramación permitiendo manipular directamente el AST17
- Polimorfismo mediante un mecanismo denominado protocolos. Al igual que en Clojure, los protocolos proporcionan un mecanismo de enlaces dinámicos. Aunque esto no debe confundirse con los enlaces múltiples ya que los protocolos de Elixir son sobre un único tipo.
- Soporte para documentación a través de docstrings tipo Python en el lenguaje de marcado Markdown17
- Shared nothing concurrent programming via message passing (Modelo de Actores)18
- Énfasis en la recursión y en funciones de orden superior en vez de bucles basados en efectos secundarios
- Evaluaciones perezosas y promesas mediante flujos
- Búsqueda de patrones17
- Soporte Unicode y cadenas de caracteres UTF-8
Instalación en Linux (Ubuntu)
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install esl-erlang
sudo apt-get install elixir
Instalación en Mac
brew install elixir (utilizando Homebrew)
Instalación en Windows
Descarga el instalador y sigue los pasos