Livro de Dan (
Espera-se que a mudança quebre um grande número de módulos CPAN em Perl 7 e exija alterações em cada módulo, o que não é realista de implementar dentro do ano alvo, especialmente porque nem todos os autores permanecem disponíveis. As mudanças no Perl 7 também impedirão o uso de módulos projetados para suportar mais do que apenas a versão mais recente do Perl.
Além disso, são mencionados os seguintes possíveis problemas:
- Confusão entre iniciantes devido a alguns exemplos e recomendações de manuais escritos para Perl 7 que não funcionam em Perl 5.
- O impacto no desenvolvimento de one-liners não foi estudado. Perl é usado ativamente não apenas para escrever scripts grandes, mas também para criar one-liners e scripts curtos para as necessidades dos administradores, nos quais o uso do modo estrito é desnecessário.
- As distribuições têm um problema ao entregar simultaneamente arquivos executáveis para executar scripts Perl 7 e Perl 5 (espera-se que a história se repita com Python 2 e 3).
- O código escrito para Perl 7 não precisa observar especificamente que não será executado em Perl 5; muitos desenvolvedores não especificarão uma versão mínima suportada.
- Vários utilitários e módulos baseados em Perl 5 exigirão correções.
- A preparação do Perl 7, devido à realocação de recursos, irá congelar o desenvolvimento de novas funcionalidades do Perl por algum tempo.
- Existe o risco de esgotamento e saída de desenvolvedores ativos do interpretador Perl, módulos, ferramentas e pacotes que os acompanham devido à grande carga de trabalho adicional sem a devida motivação (nem todos concordam com a necessidade de criar Perl 7).
- A cultura da comunidade e a atitude em relação à estabilidade do Perl mudarão fundamentalmente.
- A autoridade da linguagem será prejudicada devido às críticas de que o Perl 7 é incompatível com o código existente na ausência de algo fundamentalmente novo.
Para amenizar as consequências negativas, Dan Book propôs seu plano, que evitará uma lacuna de compatibilidade. Propõe-se manter o mesmo processo de desenvolvimento e em vez de 5.34.0, atribuir o próximo número de versão 7.0.0, no qual desabilitaremos o suporte para notação de chamada indireta de objetos e habilitaremos alguns novos recursos como try/catch. Mudanças como “use strict” e “use warnings” são propostas para serem regulamentadas especificando explicitamente a versão Perl no código por meio do pragma “use v7” (strict já está habilitado por padrão para “use v5.12” e versões mais recentes ).
Por padrão, é recomendado que o interpretador mantenha um conjunto de parâmetros que não difere do Perl 5, com exceção do processo padrão para limpeza de sintaxe obsoleta que foi usado anteriormente. O suporte para recursos mais antigos e sintaxe obsoleta pode continuar a ser descontinuado de acordo com as regras de descontinuação existentes. Propõe-se sinalizar o uso de novos elementos Perl 7 no código e separar estilos novos e antigos usando o pragma “use v7”.
Fonte: opennet.ru