Elixir é uma linguagem dinâmica e funcional, projetada para construir aplicações escaláveis e de fácil manutenção.


  • Funcional: paradígma de programação que utiliza o conceito de funções puras/retornos de dados que dependem apenas de seus parâmetros (stateless, imutável, composição de funções e high-order functions).

  • Distribuido: Divide-se uma aplicação em dezenas, centenas e até milhares de diferentes aplicações que se comunicam entre si e compartilham recursos (responsividade, eficácia, rapidez).

  • Orientado a processos: delimita a separação de dados e dos métodos que agem sobre eles. (paralelização mais eficiênte e organizada).

  • Concorrente: Diversas tarefas executadas num mesmo período de tempo (ex: 1 core, 2 processos).

  • O Elixir usa a máquina virtual do Erlang e a sua capacidade de criar aplicações distribuidas de baixa latência. (inclusive podemos usar funções do Erlang)

  • O elixir é escalável: o Elixir acompanha o crescimento da sua aplicação.

  • É tolerante a falhas: Se um nó morre, a maquina virtual do Erlang consegue cuidar disso para que não haja falhas na aplicação toda, o nó é restartado depois.

  • É uma linguagem funcional: isso garante que a concorrência seja um dos focos da linguagem.

  • É extensível: isso significa que conseguimos criar módulos novos de acordo com nossas necessidades.



Conhecendo o Mix

O mix é o gerenciados de projetos, tasks e dependências oficial da linguagem. Apesar de ser nova, a linguagem conta com várias bibliotecas open-source, e aumenta a cada dia. Praticamente tudo o que precisamos, podemos achar no Package Manager oficial.