Dan Book (), que soporta más de 70 módulos en CPAN, de los riesgos al implementar el . Cabe recordar que en la rama de Perl 7 se planea incluir por defecto el modo de verificación estricta «strict», activar «use warnings» y modificar varios parámetros que afectan la compatibilidad con el código antiguo.
Se espera que este cambio conduzca a la inoperancia de un gran número de módulos de CPAN en Perl 7 y requiera modificaciones en cada uno de estos módulos, lo que es irrealizable en el año previsto, especialmente teniendo en cuenta que no todos los autores siguen disponibles. Las innovaciones de Perl 7 tampoco permitirán el uso de módulos diseñados para soportar no solo la versión más reciente de Perl.
Además, se mencionan posibles problemas como:
- Confusión entre los novatos debido a la inoperancia en Perl 7 de algunos ejemplos y recomendaciones de manuales escritos para Perl 5.
- No se ha estudiado el impacto en el desarrollo de líneas de código. Perl se utiliza activamente no solo para escribir scripts grandes, sino también para crear líneas de código y cortos escenarios para necesidades de administradores, donde el uso del modo strict es excesivo.
- Los distribuidores enfrentan el problema de proporcionar simultáneamente archivos ejecutables para ejecutar scripts de Perl 7 y Perl 5 (se espera una repetición de la historia con Python 2 y 3).
- El código escrito para Perl 7 no necesariamente debe señalar que no podrá ejecutarse en Perl 5; muchos desarrolladores no especificarán la versión mínima soportada.
- Varias utilidades y módulos atados a Perl 5 requerirán modificaciones.
- La preparación de Perl 7, debido a la redistribución de recursos, congelará por un tiempo el desarrollo de nuevas capacidades de Perl.
- Surge el riesgo de agotamiento y salida de desarrolladores activos del intérprete Perl, módulos, herramientas y paquetes asociados debido a la gran carga adicional sin la debida motivación (no todos están de acuerdo con la necesidad de crear Perl 7).
- Cambiará fundamentalmente la cultura en la comunidad y la relación con la estabilidad de Perl.
- Se socavará la autoridad del lenguaje debido a las críticas sobre la falta de compatibilidad de Perl 7 con el código existente sin aportar nada fundamentalmente nuevo.
Para mitigar las consecuencias negativas, Dan Book propuso su plan, que permitirá evitar rupturas de compatibilidad. Se sugiere mantener el proceso de desarrollo anterior y asignar al siguiente lanzamiento el número 7.0.0 en lugar de 5.34.0, desactivando el soporte para la notación indirecta de llamadas a objetos y agregando algunas nuevas características, como el try/catch. Cambios como "use strict" y "use warnings" se propondrán regular mediante la especificación explícita de la versión de Perl en el código a través de la pragma "use v7" (strict ya se habilita por defecto para "use v5.12" y versiones más nuevas).
Por defecto, se recomienda en el intérprete mantener un conjunto de parámetros que no difiera de Perl 5, excepto el proceso estándar de limpieza de la sintaxis obsoleta que se aplicaba anteriormente. El soporte para características antiguas y sintaxis desactualizada puede, como antes, ser interrumpido de acuerdo con las reglas existentes para la traducción de funcionalidades a la categoría de obsoletas. Se sugiere señalar el uso de nuevos elementos de Perl 7 en el código y para distinguir entre el nuevo y el viejo estilo mediante la pragma "use v7".
Fuente: opennet.ru
