Lucas Simon

Web Developer. lucassrod@gmail.com

Introdução ao elixir

Ola, vamos fazer uma breve introdução sobre o Elixir, uma linguagem de programação funcional.

Elixir

O Elixir é uma linguagem de programação funcional que foi desenvolvida pelo brasileiro José Valim. Essa linguagem tem como objetivo resolver problemas de escalabilidade, ser tolerante a falhas e alta concorrência.

O Elixir utiliza a máquina virtual do Erlang, conhecida por executar sistemas de baixa latência e com execução de processos concorrentes executando próximo de 99%. Originalmente o Erlang foi desenvolvido por uma equipe de arquitetos de software com o intuito de desenvolver uma linguagem sem falhas para sistemas de telefonia.

Através do Erlang o Elixir herda suas principais características como o: hot swapping, que permite que o código seja alterado sem parar o sistema que o está executando, e a comunicação entre processos, feita por troca de mensagens. E através dessa troca de mensagens conseguimos mostrar um dos beneficios do paradigma funcional onde ha imutabilidade de dados. Uma grande diferença entre o paradigma imperativo que praticamos nas linguagens padrões.

Explicando melhor este conceito, através do paradigma imperativo, ha situações em que objetos alteram conteúdos de variáveis em escopo global e que pode de alguma maneira gerar defeitos e efeitos colaterais. Sendo custoso ao desenvolvedor encontrar a falha, de onde ela partiu (alteração da variável), e corrigir o resultado da operação.

Paradigma funcional

O paradigma funcional não é algo novo. Ele existe ha muito tempo dentro de instituições acadêmicas e pouco foi utilizado no mercado e na industria da computação. Atualmente este cenário esta se revertendo e a linguagem funcional esta sendo aplicada no desenvolvimento web, tanto no back-end como o Elixir e o framework Phoenix quanto no desenvolvimento front-end como por exemplo com a linguagem Elm.

Para o paradigma funcional, deve ficar claro que, funções, é a principal característica de um código. Com a composição de diversas funções menores conseguimos transforma-se e gera-se novos dados. Ocasionando a imutabilidade.

As linguagens funcionais não possui somente vantagens, sendo uma bala de prata. Uma de suas desvantagens em utilizar esta tecnologia em seus projetos, como por exemplo, a curva de aprendizado. Visto que temos de aprender estes conceitos de programação, sintaxe pouco usual e diferente do que estamos habituados, utilização de funções e codificações recursivas com valores imutáveis. Um bom exemplo disso é a implementação das funções .map, .filter, .reduce do javascript. O que claro pode ser um bom ponto de partida para aprendizado.

Conclusão

Escrevi esse artigo pois vejo o paradigma funcional crescendo no mercado de desenvolvimento web e suas vantagens como, concorrência, alta disponibilidade são bem vindas neste cenário. Por isso vale a pena investigar, aprender e compartilhar os beneficios e experências deste paradigma e consequentemente o Elixir.