O blog RubyInside reportou que Yukihiro Matsumoto ("Matz"), criador da linguagem Ruby, realizou um commit esse mês, que marcou o início do desenvolvimento de ideias que há tempos vinham sendo discutidas para a próxima versão principal da linguagem, o Ruby 2.0.
Segundo Matz, o novo Ruby apresentará uma série de novas funcionalidades, mas de maneira geral, as mudanças serão menores do que as realizadas na versão 1.9. Apesar de ainda não estar totalmente definida, a versão 2.0 do Ruby será compatível com as aplicações escritas seguindo a sintaxe 1.9.x.
Koichi Sasada, criador do YARV, uma máquina virtual de execução dos scripts Ruby, recentemente postou o resultado do questionário de funcionalidades desejadas para o Ruby 2.0. Até o momento, as ideias de novas funcionalidades estão sendo ativamente sugeridas e discutidas (principalmente nas listas ruby-talk e ruby-core). Abaixo alguns itens mais cotados para o novo Ruby, segundo o RubyInside:
- Refinamentos (Refinements): Trata-se de uma construção que torna mais seguros os monkey-patches (modificações dinâmicas em classes), por limitar as alterações em classes centrais dentro de contextos específicos (veja uma explicação detalhada por Yehuda Katz). É uma funcionalidade polêmica, por apresentar impacto direto na performance do interpretador.
- Exportação e importação de bytecode: O Ruby 2.0 tornará simples o processo de exportação e importação de scripts Ruby pré-compilados, para serem executados diretamente. Esta funcionalidade permite que o tempo de análise (parsing) dos scripts seja eliminado durante sua execução.
- Argumentos com palavra-chave: Uma mudança da sintaxe de definição dos métodos que permite a associação de palavras-chave aos argumentos do método, que torna a leitura do código mais clara, de forma similar à utilização de hashes com parâmetros.
Outras mudanças sendo consideradas incluem uma limpeza na sintaxe da linguagem, coleta de lixo simbólica, suporte a macros, obtenção das árvores de parse e de código, I/O não bloqueante e uma revisão de todas as bibliotecas padrões.