Adoção do Elixir na Resultados Digitais

Publicado por William Weckl no dia dev

Sou programador Ruby on Rails desde 2013 e no último ano estou tendo a oportunidade incrível de ir à vários eventos de tecnologia e do mundo Ruby pela Resultados Digitais.

Tive o prazer de ir na Ruby Conf em novembro do ano passado, organizada pela Locaweb, e para minha surpresa eu voltei querendo programar Elixir em vez de Ruby. No TDC Florianópolis conversei com programadores Elixir e várias pessoas que estavam estudando e querendo adotar. Agora por último, na The Conf, evento organizado pelo Fábio Akita, ícone da comunidade Ruby on Rails, várias palestras demonstraram experiências incríveis com Elixir e várias das pessoas com quem tive o prazer de conversar estavam usando Elixir ao invés de Ruby em seus novos projetos.

Um dos melhores cases que vi foi o da globo.com, que substituiu um endpoint Rails por Elixir para atender as Olimpíadas Rio 2016 e tiveram um ganho de performance de até 95%. Além da globo.com, várias outras empresas também estão adotando Elixir: Pinterest, Bleacher Report, entre outras… E agora também a Resultados Digitais.

Mas afinal, porquê o Elixir é tão atrativo para essas empresas? Há vários aspectos que fazem com que a tecnologia esteja ganhando visibilidade no mercado:

Performance

O código Elixir é compilado para ser executado na VM do Erlang que é uma linguagem conhecida por suas características de distribuição e alta tolerância à falhas. Por essas características, os processos Elixir conseguem ser executados concorrentemente aproveitando os recursos dos processadores multi núcleos. Há cases na internet demonstrando endpoints Elixir respondendo em incríveis microsegundos.

Contratação

Apesar do Elixir ser relativamente novo e ainda não ser tão popular, bons profissionais são atraídos por tecnologias novas. Há também uma tendência de mercado para linguagens de característica funcional. A inovação também ajuda a elevar o nível da equipe de desenvolvimento como um todo.

Funcional

Por suas características de imutabilidade, fica mais fácil de testar tudo de forma isolada. Também acaba sendo mais fácil a identificação de bugs e problemas no sistema, já que funções podem ser avaliadas de forma isolada e direcionada. Outro benefício é que o código acaba sendo mais explícito, minimizando efeitos colaterais.

Convenções e produtividade

Elixir com seu framework Phoenix acaba sendo bem semelhante ao Ruby on Rails por terem padrões e convenções parecidas. Apesar das diferenças de paradigmas das linguagens, ambos tem seu foco em produtividade.

Maturidade

Apesar de ser uma linguagem nova, Elixir e Phoenix foram criados por Rubistas (José Valim e Chris McCord) e contam com uma bagagem de anos de experiência de desenvolvimento Rails combinados.

Adotando uma tecnologia nova

Ao adotar uma nova tecnologia é muito importante que todos os riscos sejam minimizados. Por isso nosso time fez um estudo bem detalhado sobre a adoção da tecnologia. No caso do nosso time o problema que queríamos resolver não era relacionado a performance, mas sim em relação à boas práticas de programação e modularidade. Vocês podem fazer o download do compilado desse estudo aqui.

De acordo com Emerson Macedo da globo.com, em sua palestra na The Conf, alguns passos são necessários para adoção de uma nova tecnologia em sua empresa:

  1. Encontrar a oportunidade certa para aplicar a tecnologia

  2. Fazer um projeto pessoal ou como freelancer utilizando a tecnologia para provar o valor

  3. Vender a idéia da adoção da tecnologia para colegas de trabalho, afinal é impossível obter sucesso sozinho

  4. Criar um POC que resolve algum problema da empresa identificado

  5. Apresentação dos resultados obtidos

Elixir na RD

Tive a oportunidade de utilizar Elixir em um projeto pessoal que comecei a desenvolver no começo do ano e que já está em produção à 5 meses. Na RD estamos desenvolvendo uma aplicação que será o backend para o nosso Marketplace e a Central do Parceiro no RD Station. Até então a experiência tem sido incrível.

Dos passos apresentados pelo Emerson, conseguimos até então aplicar 4 deles. Sendo que o último, apresentação dos resultados, ainda depende do término do desenvolvimento e colocar a aplicação em produção, que deve acontecer nas próximas semanas.

Se você está trabalhando com Elixir ou possui alguma experiência com a linguagem não deixe de compartilhar com a gente! Neste fim de semana a Resultados Digitais será sede do primeiro Elixir Day SC, não deixe de participar. :)

William Weckl

William Weckl

Software Engineer

Comentários