Dan Book (), soutenant plus de 70 modules sur CPAN, des risques associés à la mise en œuvre du . Rappelons que la branche Perl 7 envisage d'inclure par défaut le mode de vérification stricte « strict », d'activer « use warnings » et de modifier la valeur de plusieurs paramètres impactant la compatibilité avec le vieux code.
Il est attendu que ce changement entraîne l'inopérabilité d'un grand nombre de modules de CPAN sous Perl 7 et nécessitera des modifications dans chacun de ces modules, ce qui est irréaliste à mettre en œuvre dans l'année prévue, surtout sachant que tous les auteurs ne restent pas disponibles. Les nouveautés de Perl 7 n'autoriseront également pas l'utilisation de modules conçus pour supporter non seulement la dernière version de Perl.
De plus, les problèmes potentiels suivants sont mentionnés :
- Confusion chez les débutants en raison de l'inopérabilité sous Perl 7 de certains exemples et recommandations des guides rédigés pour Perl 5.
- L'impact sur le développement de scripts en une ligne n'est pas étudié. Perl est largement utilisé non seulement pour écrire de longs scripts, mais aussi pour créer des scripts courts et des one-liners pour les besoins des administrateurs, où l'utilisation du mode strict est superflue.
- Les distributions rencontrent le problème de fournir simultanément des exécutables pour exécuter des scripts Perl 7 et Perl 5 (on s'attend à un повторение de l'histoire avec Python 2 et 3).
- Le code écrit pour Perl 7 n'a pas l'obligation de spécifier qu'il ne pourra pas fonctionner sous Perl 5, de nombreux développeurs ne mentionneront pas la version minimale supportée.
- Divers utilitaires et modules basés sur Perl 5 nécessiteront des corrections.
- La préparation de Perl 7, en raison du réaffectation des ressources, gèlera pendant un certain temps le développement de nouvelles fonctionnalités de Perl.
- Il existe un risque de burnout et de départ des développeurs actifs de l'interpréteur Perl, des modules, des outils et des paquets annexes à cause d'une charge additionnelle importante sans motivation adéquate (tout le monde n'est pas d'accord sur la nécessité de créer Perl 7).
- La culture au sein de la communauté et les attitudes envers la stabilité de Perl changeront fondamentalement.
- L'autorité du langage sera compromise en raison des critiques concernant l'incompatibilité de Perl 7 avec le code existant, en l'absence de quelque chose de fondamentalement nouveau.
Pour atténuer les conséquences négatives, Dan Book a proposé son plan, qui permettra d'éviter les ruptures de compatibilité. Il est suggéré de conserver l'ancien processus de développement et d'attribuer le numéro 7.0.0 à la prochaine version au lieu de 5.34.0, dans laquelle le support de la notation indirecte pour les appels d'objets sera désactivé et certaines nouvelles fonctionnalités, telles que try/catch, seront incluses. Des changements tels que « use strict » et « use warnings » devraient être régulés par l'instruction explicite de la version de Perl dans le code via la pragma « use v7 » (strict est déjà activé par défaut pour « use v5.12 » et les versions ultérieures).
Par défaut, il est recommandé de conserver l'ensemble des paramètres dans l'interpréteur, qui ne diffère pas de Perl 5, à l'exception du processus standard de nettoyage de la syntaxe obsolète, appliqué auparavant. Le support des anciennes fonctionnalités et de la syntaxe dépréciée peut être interrompu comme auparavant, conformément aux règles existantes sur la transition de fonctionnalités vers le statut obsolète. Il est proposé de signaler l'utilisation dans le code des nouveaux éléments de Perl 7 et de différencier le style nouveau et ancien à l'aide de la pragma « use v7 ».
Source : opennet.ru
