BT

Visão Geral do Ruby 2.5.0

| por Alex Giamas Seguir 8 Seguidores , traduzido por Kleber Correia Seguir 0 Seguidores em 21 mar 2018. Tempo estimado de leitura: 1 minuto |

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.

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