Elixir, antes de tudo, é uma linguagem de programação que nasceu em berço brasileiro. Foi criada, desenvolvida e mantida por José Valim, em 2012, juntamente com o núcleo de Desenvolvimento e Pesquisa (R&D) da Plataformatec.

Segundo sua própria definição, Elixir é “uma linguagem dinâmica e funcional, desenhada para construir aplicações escaláveis e sustentáveis”. Ou seja, o foco principal da linguagem é fornecer, de maneira produtiva, ferramentas para a construção de aplicações distribuídas e de fácil manutenção.
E para quem não sabe, o Elixir é um tipo de linguagem funcional executada na máquina virtual do Erlang. Na época de seu desenvolvimento, Valim descobriu a tecnologia Erlang, que havia sido criada pela Ericsson em 1986, e que é utilizada há décadas por empresas de telecomunicações. Portanto, por atender sistemas que trabalham sob alta performance, a elixir então passou a ser conhecida por grandes companhias que dependem de softwares eficientes e não só pela comunidade de desenvolvedores.
Tecnologia popular
A tecnologia brasileira da Elixir se tornou popular no Vale do Silício por permitir a construção de plataformas totalmente digitais que suportam o tráfego de milhares de dados em uma curta escala de tempo. Por isso, além das empresas e produtos 100% digitais, outros setores da indústria também já adotaram a linguagem de programação em suas plataformas.
Por exemplo, entre as empresas mais famosas que utilizam o Elixir atualmente estão: WhatsApp Pinterest, Discord, Envato, Adobe, e muito mais. Outras empresas que mais utilizam a inovação são da área de e-commerce, fintechs, companhias de comunicação, consultorias e laboratórios de saúde.
Mas, afinal, qual o grande diferencial do Elixir para outras linguagens de programação?
Um dos principais diferenciais do Elixir é que ele tem a capacidade de assumir diferentes formas, é chamado de Polimorfismo. Isso, portanto, faz com que a linguagem se torne extensível, ou seja, é possível adicionar novas funcionalidades sempre que for necessário. Além disso, o Elixir se destacou por ser utilizado em grandes soluções. Em suma, a linguagem de programação funciona desde em uma aplicação web até em um sistema embarcado.
Ferramentas do Elixir
A linguagem de programação brasileira conta com o Mix, uma ferramenta de compilação que fornece tarefas para criar, compilar, testar aplicativos e gerenciar projetos e dependências. Já por meio do Hex, seu package manager oficial, é possível encontrar uma quantidade gigante de libs, incluindo as do Erlang.
Ele disponibiliza um framework chamado ExUnit para a realização de testes unitários e, ainda, possui um terminal interativo, o IEx (Elixir’s Interactive Shell), que oferece funcionalidades como: Autocompletar; Histórico; Avaliação de expressões.
Frameworks mais conhecidos
- Phoenix: Permite criar aplicativos interativos na web rapidamente. Pode ser utilizado, portanto, para o desenvolvimento web, de APIs e aplicativos HTML5;
- Nerves: Trata-se da plataforma e infraestrutura de código aberto que permite criar, implantar e gerenciar dispositivos IoT com total segurança, velocidade e em escala. Também serve para Embedded;
- Plug: Destinado para aplicações na web;
- Sugar: Muito utilizado para desenvolvimento web, garantindo rapidez, facilidade e eficácia ao projeto.
Execução distribuída
O código Elixir é executado em pequenas threads, chamadas de processos. Esses processos e são totalmente isolados e trocam informações através de mensagens:

Tolerante a falhas
Na comunidade Erlang existe um conceito chamado ‘let it crash’ ou, em português, ‘deixe falhar’. Ou seja, a única certeza que um desenvolvedor tem sobre um código que é executado em produção é que as coisas podem não dar certo. Para isso, o Elixir implementa uma feature de supervisão do código que está sendo executado:

Mas, quando Elixir não é a melhor opção?
Assim como todas as linguagens de programação, o Elixir não é bala de prata. Ela não foi feita para cobrir todos os casos de uso possíveis, por mais que pareça. Existem, principalmente, algumas situações em que o uso do Elixir não é o ideal, por exemplo:
- Processamento computacional pesado – Não é algo que o core team do Erlang/Elixir está muito preocupado. Além disso, já existem ótimas ferramentas utilizando Python, Matlab ou R;
- Deep Learning – Há algumas ferramentas rodando em Elixir, mas existem ferramentas de Deep Learning mais robustas e validadas em Python, por exemplo;
- Mobile apps – Hoje o Elixir não é uma linguagem viável para desenvolvimento mobile, pelo menos ainda não.
Usa TELEGRAM?!
Venha participar do nosso Grupo Exclusivo de Ofertas e Descontos do Programadores Brasil. Aqui você encontra os melhores preços para Notebooks, Celulares, Tablets, Headsets e eletrônicos em geral! Acesse: https://t.me/progbrasilcupons https://t.me/progbrasilcupons