BT

Elixir 1.1 traz novas APIs e melhorias no tempo de compilação

| por Sergio De Simone Seguir 12 Seguidores , traduzido por Roberto Pepato Seguir 29 Seguidores em 25 nov 2015. Tempo estimado de leitura: 4 minutos |

Um ano após chegar à versão 1.0, o Elixir 1.1 foi lançado. Ele traz novas APIs publicas, melhorias de desempenho e de ferramental. A InfoQ americana conversou com José Valim, criador do Elixir.

O Elixir 1.1 introduz aproximadamente 40 novas funções, incluindo novas APIs para os módulos Enum, Task e String. Além disso, o MapSet, que é um novo tipo de dados foi adicionado e implementa a API Set sobre um map.

O ferramental de apoio também foi melhorado. O framework de testes unitários do Elixir, ExUnit, possui agora novas opções que permitem ignorar testes por meio de tags e imprimir mensagens de log capturadas mesmo em casos de falhas. Mix, a ferramenta de construção do Elixir, apresenta agora melhor desempenho separando dependências de tempo de compilação e tempo de execução e recompilando um arquivo somente se alguma de suas dependências de tempo de compilação forem alteradas.

Finalmente, o Elixir 1.1 traz um código de conduta para garantir que a comunidade possa "crescer e se tornar um local seguro e acolhedor para todos". O código de conduta inclui a definição de comportamento inaceitável para os contribuidores da linguagem, como o uso de linguagem com z sexual, ataques pessoais, assédio, etc.

O InfoQ conversou com José Valim, criador do Elixir.

InfoQ: Qual é o nível de maturidade do Elixir? O que o Elixir 1.1 traz de novo para os desenvolvedores?

Geralmente, quando projetos de código aberto alcançam a versão 1.0 e uma API estável, a versão tem um de dois significados distintos: a) o projeto definiu seu núcleo mínimo e novos conceitos serão adicionados e desenvolvidos rapidamente, geralmente seguido por versões incrementais; ou b) o projeto definiu sua fundação e se espera que os desenvolvedores a utilizem em um futuro próximo. O Elixir é definitivamente um projeto que segue este segundo significado.

O Elixir 1.1 tem como objetivos otimizar a base de código baseado em dados que recebemos de aplicações executando em produção, corrigir bugs e tornar o ferramental de apoio mais rápido e produtivo.

InfoQ: Compartilhe alguns detalhes sobre o roadmap do Elixir? O que podemos esperar no futuro?

Atualmente estamos trabalhando no Elixir 1.2. Seu maior objetivo é aproveitar tudo que a nova versão da Erlang VM e de seu ambiente de execução, chamado Erlang 18, tem a oferecer. Como esta é uma versão majoritariamente incremental, esperamos que seja lançada ainda este ano.

Não temos uma data planejada para o Elixir 1.3, apesar de estarmos trabalhando em um novo componente chamado GenRouter que permitirá que desenvolvedores Elixir roteiem dados através de seu sistema de forma eficiente com um algoritmo back-pressure. O GenRouter vai permitir que os desenvolvedores utilizem robustos broadcasts de dados - pense nele como um componente de log que envia os dados para diferentes armazenamentos - ou até mesmo um sistema de processamento de tarefas com balanceamento de carga.

Explorei estes tópicos na minha palestra na ElixirConf 2015. O vídeo será liberado em breve e aí teremos mais detalhes sobre estes assuntos.

InfoQ: Poderia compartilhar conosco ideias sobre como o Elixir está sendo atualmente usado na indústria?

1. Infraestrutura Web: Em relação a web, o Elixir está em todas as partes. Temos casos de pessoas usando para construir protocolos sobre TCP e UDP, bem como aplicações Web, sejam aplicações HTML5 ou backends de APIs e até sistemas distribuídos, que executam servidores de jogos.

2. Sistemas embarcados: Existe um crescente interesse em levar o Elixir para plataformas embarcadas, tornando mais fácil do que nunca para desenvolvedores experientes e iniciantes executar o Elixir nestes sistemas. Isto é particularmente interessante considerando a "Internet das Coisas" e a capacidade natural de Elixir para construir sistemas distribuídos. Na ElixirConf 2015 vimos pessoas executando Elixir em diferentes dispositivos, frequentemente atualizando seus sistemas de firmware com os processos em execução. Exploramos estes tópicos no blog da Plataformatec no passado e os vídeos da ElixirConf 2015 estarão disponíveis em breve.

3. Plataformas de vídeo e financeira: Existem muitas startups usando Elixir para processamento de dados, tratando e processando grandes quantidades de dados diariamente. Maiores detalhes serão publicados em breve e espero ouvir mais e mais casos de uso no próximo ano quando os esforços por trás do GenRouter serão disponibilizados.

O Elixir é uma linguagem funcional para a máquina virtual de Erlang (BEAM). Ele é semanticamente próximo a Erlang e tenta ser fiel aos objetivos de sua VM, permitindo a construção de sistemas distribuídos, escaláveis e resilientes e ao mesmo tempo oferecendo construções de sintaxe em mais alto nível. O Elixir suporta funcionalidades avançadas que não estão nativamente presentes em Erlang, como: polimorfismo por meio de dynamic dispatch, actors, funções de alta ordem, pattern matching, metaprogramação, etc. As bibliotecas do Elixir são ligadas com as bibliotecas do Erlang para que os desenvolvedores possam ter acesso ao ecossistema Erlang de forma simples.

Segundo Saša Jurić, autor do livro Elixir in Action:

Encontrei muitas tarefas excessivamente tediosas em Erlang e me vi desnecessariamente lutando contra algum mecanismo de mais baixo nível. Neste ponto o Elixir apresenta diversas funcionalidades úteis, na linguagem (por exemplo, metaprogramação via macros e polimorfismo via protocolos) e no ferramental (por exemplo, ferramenta mix para projetos de construção e hex para gerenciamento de pacotes), o que permite focar no problema que estamos resolvendo.

O Elixir 1.1 está disponível no GitHub.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT