Análisis de riesgos para la iniciativa Perl 7

Libro Dan (Dan libro), soportando más de 70 módulos en CPAN, llevó a cabo el análisis riesgos al implementar la propuesta Plan de implementación de Perl 7. Recordemos que en la rama Perl 7 pretenden habilitar el modo de verificación estricta "estricto" por defecto, activar "advertencias de uso" y cambiar el valor de una serie de parámetros que afectan la compatibilidad con el código antiguo.

Se espera que el cambio rompa una gran cantidad de módulos CPAN en Perl 7 y requiera cambios en cada módulo, lo cual no es realista de implementar dentro del año objetivo, especialmente porque no todos los autores siguen disponibles. Los cambios en Perl 7 también impedirán el uso de módulos diseñados para admitir algo más que la última versión de Perl.

Además, se mencionan los siguientes posibles problemas:

  • Confusión entre principiantes debido a que algunos ejemplos y recomendaciones de manuales escritos para Perl 7 no funcionan en Perl 5.
  • No se ha estudiado el impacto en el desarrollo de frases ingeniosas. Perl se utiliza activamente no sólo para escribir scripts grandes, sino también para crear scripts cortos y de una sola línea para las necesidades de los administradores, en los que el uso del modo estricto es innecesario.
  • Las distribuciones tienen un problema al entregar simultáneamente archivos ejecutables para ejecutar scripts de Perl 7 y Perl 5 (se espera que la historia se repita con Python 2 y 3).
  • El código escrito para Perl 7 no tiene que indicar específicamente que no se ejecutará en Perl 5; muchos desarrolladores no especifican una versión mínima compatible.
  • Varias utilidades y módulos basados ​​en Perl 5 requerirán correcciones.
  • La preparación de Perl 7, debido a la reasignación de recursos, congelará el desarrollo de nuevas funciones de Perl durante algún tiempo.
  • Existe el riesgo de agotamiento y salida de los desarrolladores activos del intérprete, módulos, herramientas y paquetes adjuntos de Perl debido a la gran carga de trabajo adicional sin la motivación adecuada (no todos están de acuerdo con la necesidad de crear Perl 7).
  • La cultura de la comunidad y la actitud hacia la estabilidad de Perl cambiarán fundamentalmente.
  • La autoridad del lenguaje se verá socavada debido a las críticas de que Perl 7 es incompatible con el código existente en ausencia de algo fundamentalmente nuevo.

Para suavizar las consecuencias negativas, Dan Book propuso su plan, que evitará una brecha de compatibilidad. Se propone mantener el mismo proceso de desarrollo y en lugar de 5.34.0, asignar el próximo número de versión 7.0.0, en el que deshabilitaremos la compatibilidad con la notación de llamadas de objetos indirectos y habilitaremos algunas características nuevas como try/catch. Se propone regular cambios como "uso estricto" y "advertencias de uso" especificando explícitamente la versión de Perl en el código a través del pragma "usar v7" (estricto ya está habilitado de forma predeterminada para "usar v5.12" y versiones más recientes). ).

De forma predeterminada, se recomienda que el intérprete conserve un conjunto de parámetros que no difieran de Perl 5, con la excepción del proceso estándar para limpiar la sintaxis obsoleta que se usaba antes. La compatibilidad con funciones más antiguas y sintaxis obsoleta puede continuar descontinuándose de acuerdo con las reglas de obsolescencia existentes. Se propone señalar el uso de nuevos elementos de Perl 7 en el código y separar estilos nuevos y antiguos utilizando el pragma “usar v7”.

Fuente: opennet.ru

Añadir un comentario