Dan Book (), que suporta mais de 70 módulos no CPAN, dos riscos na implementação do . Vale lembrar que na linha do Perl 7 se pretende incluir, por padrão, o modo de verificação estrita 'strict', ativar 'use warnings' e alterar o valor de vários parâmetros que impactam a compatibilidade com códigos antigos.
Espera-se que essa mudança resultará em um grande número de módulos do CPAN que não funcionarão no Perl 7, exigindo alterações em cada um desses módulos, o que é irrealista para se realizar no ano previsto, especialmente considerando que nem todos os autores estão disponíveis. As inovações do Perl 7 também não permitirão o uso de módulos que são projetados para suportar apenas a versão mais recente do Perl.
Além disso, são mencionados os seguintes problemas possíveis:
- Confusão entre iniciantes devido à ineficácia no Perl 7 de alguns exemplos e recomendações de guias escritos para Perl 5.
- Não se estudou o impacto no desenvolvimento de one-liners. Perl é amplamente utilizado não apenas para escrever grandes scripts, mas também para criar one-liners e pequenos scripts para as necessidades dos administradores, onde o uso do modo strict é desnecessário.
- Distribuições enfrentam o problema de fornecer simultaneamente executáveis para rodar scripts em Perl 7 e Perl 5 (espera-se uma repetição da história com Python 2 e 3).
- O código escrito para Perl 7 não precisa indicar particularmente que não poderá funcionar no Perl 5, muitos desenvolvedores não indicarão a versão mínima suportada.
- Várias utilidades e módulos dependentes do Perl 5 precisarão de correções.
- A preparação do Perl 7, devido à realocação de recursos, congelará o desenvolvimento de novas funcionalidades no Perl por um tempo.
- Surge o risco de burnout e saída de desenvolvedores ativos do interpretador Perl, módulos, ferramentas e pacotes de suporte devido ao surgimento de uma grande carga adicional sem a devida motivação (nem todos concordam com a necessidade de criar o Perl 7).
- A cultura da comunidade e a relação com a estabilidade do Perl mudarão fundamentalmente.
- A credibilidade da linguagem será prejudicada devido a críticas sobre a incompatibilidade do Perl 7 com o código existente, sem que algo fundamentalmente novo seja apresentado.
Para suavizar as consequências negativas, Dan Book propôs seu plano, que permitirá evitar a quebra de compatibilidade. Sugere-se manter o processo de desenvolvimento anterior e em vez de 5.34.0, atribuir ao próximo lançamento o número 7.0.0, no qual a compatibilidade com a notação indireta de chamada de objetos será desativada e algumas novas funcionalidades, como try/catch, serão incluídas. Alterações como 'use strict' e 'use warnings' serão reguladas pela especificação explícita da versão Perl no código através da pragma 'use v7' (strict já é habilitado por padrão para 'use v5.12' e versões mais novas).
Por padrão, recomenda-se no interpretador manter um conjunto de parâmetros que não difere do Perl 5, exceto pelo processo padrão de limpeza de sintaxe obsoleta, que era aplicado anteriormente. A compatibilidade com recursos antigos e sintaxe obsoleta pode, como antes, ser descontinuada de acordo com as regras existentes para a transição de funcionalidades para o estado obsoleto. Sinalizar o uso de novos elementos do Perl 7 no código e para diferenciar os novos e antigos estilos será feito através da pragma 'use v7'.
Fonte: opennet.ru
