Linguagem Elixir; 7 motivos para aprender
Similaridades com outras linguagens como Erlang e Ruby são alguns dos motivos para aprender a trabalhar com a Elixir
A criação da linguagem veio por meio da tentativa de construir algo compatível com o sistema da VM Erlang (BEAM), mas que supera a capacidade de aprimorar o desempenho do Ruby. Veja abaixo, 7 motivos para aprender a linguagem Elixir. A codificação foi criada pelo ex-funcionário do time Ruby on Rails, José Valim.

Índice
Elixir é uma mistura de extratos
Por coincidência ou não, o nome elixir significa uma mistura de diversos componentes extraídos de outras substâncias. O nome cai perfeitamente sobre a linguagem de programação Elixir, por conter diversas similaridades e “beber” em fontes mais conhecidas, como Erlang e Ruby.
Elixir é uma linguagem de programação funcional. Em casos como esses, pode-se fazer melhor uso das cores da CPU e escrever códigos mais curtos e explícitos. O conceito de programação funcional contém três pilares: imutabilidade, funções e código declarativo.
Valores imutáveis
Na programação funcional, todos os valores criados no programa são imutáveis. Por padrão, cada função tem um valor estável, o que significa que os mecanismos de bloqueio não são necessários. Apesar da imutabilidade estar aparecendo mais nas linguagens de programação convencionais, no caso da Elixir é nativa.
As linguagens convencionais normalmente fornecem o mecanismo como uma alternativa ao tipo de dados como imutável ou um método para tornar um valor imutável.

Funções
Agora, falando sobre as funções da linguagem Elixir. As funções são as principais ferramentas para construir programas. Diminuem a complexidade de criar aplicativos grandes quando as funções têm as seguintes propriedades:
- Valores imutáveis;
- O resultado da função é afetado apenas pelos argumentos dela;
- A função não gera efeitos além dos valores retornados.
Esses tipos de funções também são conhecidas como “puras”. As funções mais complexas e imprevisíveis, são chamadas de funções impuras.
Na programação funcional, os valores são sempre passados explicitamente entre as funções, o que torna as entradas e saídas claras. As funções também podem ser usadas em argumentos e resultados de funções.
Código declarativo
A programação declarativa se concentra no que é necessário para resolver um problema, em vez de “como resolver um problema” — visto com a programação do tipo imperativo. Em geral, o código declarativo é normalmente mais claro e conciso do que os imperativos. Com um código mais claro e conciso, os problemas encontrados são reduzidos, por exemplo bugs.
1. Tolerância a erros
Uma de suas principais características é ser tolerante a falhas para os dois principais tipos de erros de programação:
- Problemas que acontecem fora de um aplicativo: exemplo, problemas com uma rede (um erro em um nó não influenciará o restante);
- Problemas internos: dados errados, bugs lógicos etc. (isola os módulos onde ocorrem erros e os reinicia individualmente, evitando que todo o sistema fique inativo).

2. Velocidade
Os desempenhos da Elixir mostram resultados muito melhores durante os serviços de teste de software que a Ruby. Se usado com o Phoenix (framework), a resposta fica na casa dos micro segundos.
3. Confiabilidade
Esta característica Elixir é um dos pontos fortes absorvidos da Erlang, que é chamada de linguagem de programação comprovada em batalha. Não existe razão para duvidar da confiabilidade da programação Elixir.
4. Ações simultâneas
Significa a capacidade de executar vários processos ao mesmo tempo, além de mantê-los independentes uns dos outros. A linguagem tem essa característica, absorvida da Erlang também.
5. Produtividade
A velocidade de desenvolvimento na programação Elixir é boa. Devido à sintaxe mais simplificada da linguagem, é fácil escrever um código limpo e compreensível sem sacrificar a produtividade de um desenvolvedor.
6. Ampliação escalar
Elixir pode lidar facilmente com muito tráfego sem custos extras para servidores adicionais e a criação de soluções eficientes de DevOps.
7. Sintaxe simplificada e limpa
Torna o código fácil de escrever e ler. O único ponto de atenção é a Elixir ser uma linguagem de programação funcional. A programação funcional tem um paradigma completamente diferente do usado pelas linguagens orientadas a objetos. O desenvolvedor gastará um tempo a mais na adaptação.
Desvantagens
- Menor quantidade de trabalhos de programação Elixir (mercado de trabalho reduzido);
- Poucos desenvolvedores de Elixir (dificulta a troca para aprendizado);
- Linguagem nova (criada em 2012);
- Comunidade reduzida;
- Ecossistema pequeno.
Quem usa?
A Elixir é muito boa para aplicações web de qualquer tamanho, APIs (JSON, GraphQL etc.), sistemas distribuídos, internet das coisas, embarcados, entre outros.
- Discord: usou a Elixir para construir a plataforma e em 2017 lidou com sucesso de cinco milhões de usuários simultâneos e outros milhões de eventos por segundo;
- Moz: usou a Elixir em seu back-end para diminuir o espaço em disco e melhorar a velocidade de sua API;
- Pinterest: usa Elixir para o sistema de notificação, minimizando o número de servidores usados para esse fim e limpar seu código;
- Adobe: usou a Elixir para criar um aplicativo (cliente/nuvem) focado em fluxos de trabalho com fotografias colaborativas.
Com informação: Mlsdev, Educative io.