BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Visão Geral do Ruby 2.5.0

Visão Geral do Ruby 2.5.0

Favoritos

Como de costume, pelo sexto ano seguido, uma nova versão do Ruby foi lançada no último Natal.

O Ruby 2.5.0 veio com várias melhorias de performance, a mais notável foi a remoção de todas as instruções de trace do bytecode, logo, melhorando a performance em 5% e em alguns casos até 10%. Instruções de trace foram implementadas para suportar o TracePoint, entretanto, na maioria dos casos o TracePoint não estava sendo usado e isso estava gerando esforço desnecessário. O Ruby agora suporta instrumentação dinâmica. Outras melhorias de performance incluem, passagem de blocos via parâmetro 3 vezes mais rápida e geração de código a partir de templates 2 vezes mais rápido. Melhorias de performance também foram vistas em alguns métodos da biblioteca padrão, como: Array#concat, String#concat, Enumerable#sort_by e a classe usada em programação concorrente Mutex.

As melhorias de performance não foram as únicas mudanças, Struct.new agora pode criar classes que aceitam keyword arguments e blocos do/end podem usar diretamente fluxos ensure/rescue/else.

Na questão de bibliotecas, cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib foram promovidas a default gems enquanto o pp, uns dos comandos favoritos, agora é nativo eliminando a necessidade de fazer o require da biblioteca.

Desenvolvedores Ruby agora podem imprimir stacktrace em ordem contrária. A ideia é ver a mensagem principal de erro no topo ao invés de vê-la no final. Essa é uma funcionalidade experimental e poderá ser removida.

Medição de branches e cobertura de métodos também é suportado, permitindo um melhor teste de performance em invocação de diferentes métodos e branches durante a execução do código.

A busca por constantes nos ancestrais agora foi completamente depreciada, retornando erro no lugar de mensagens de alertas. yield_self foi adicionado para gerar um bloco no contexto em que foi chamado e diferente do método tap, ele retorna o valor do bloco o que pode ser útil para encadear chamada de métodos.

Ruby 2.5.0 pode ser baixado do site oficial.

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.

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

Comentários da comunidade

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

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

BT