Analyse des risques pour la mise en œuvre de l'initiative Perl 7

Dan Livre (Livre Dan), prenant en charge plus de 70 modules en CPAN, effectué l'analyse risques lors de la mise en œuvre du projet Plan de mise en œuvre de Perl 7. Rappelons que dans la branche Perl 7, ils ont l'intention d'activer par défaut le mode de vérification stricte « strict », d'activer « utiliser les avertissements » et de modifier la valeur d'un certain nombre de paramètres qui affectent la compatibilité avec l'ancien code.

Le changement devrait casser un grand nombre de modules CPAN dans Perl 7 et nécessiter des modifications de chaque module, ce qui est irréaliste à mettre en œuvre dans l'année cible, d'autant plus que tous les auteurs ne restent pas disponibles. Les modifications apportées à Perl 7 empêcheront également l'utilisation de modules conçus pour prendre en charge plus que la dernière version de Perl.

De plus, les problèmes possibles suivants sont mentionnés :

  • Confusion parmi les débutants en raison de certains exemples et recommandations de manuels écrits pour Perl 7 qui ne fonctionnent pas dans Perl 5.
  • L'impact sur le développement des one-liners n'a pas été étudié. Perl est activement utilisé non seulement pour écrire des scripts volumineux, mais également pour créer des one-liners et des scripts courts pour les besoins des administrateurs, dans lesquels l'utilisation du mode strict n'est pas nécessaire.
  • Les distributions ont du mal à fournir simultanément des fichiers exécutables pour exécuter les scripts Perl 7 et Perl 5 (l'histoire devrait se répéter avec Python 2 et 3).
  • Il n'est pas nécessaire que le code écrit pour Perl 7 indique spécifiquement qu'il ne fonctionnera pas dans Perl 5 ; de nombreux développeurs ne spécifieront pas de version minimale prise en charge.
  • Divers utilitaires et modules basés sur Perl 5 nécessiteront des corrections.
  • La préparation de Perl 7, en raison de la réallocation des ressources, va geler le développement de nouvelles fonctionnalités Perl pendant un certain temps.
  • Il existe un risque d'épuisement professionnel et de départ des développeurs actifs de l'interpréteur Perl, des modules, des outils et des packages qui l'accompagnent en raison de la charge de travail supplémentaire importante sans motivation adéquate (tout le monde n'est pas d'accord avec la nécessité de créer Perl 7).
  • La culture de la communauté et l'attitude envers la stabilité de Perl vont fondamentalement changer.
  • L'autorité du langage sera minée par les critiques selon lesquelles Perl 7 est incompatible 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 évitera un écart de compatibilité. Il est proposé de conserver le même processus de développement et, au lieu de 5.34.0, d'attribuer le prochain numéro de version 7.0.0, dans lequel nous désactiverons la prise en charge de la notation d'appel d'objet indirect et activerons de nouvelles fonctionnalités telles que try/catch. Il est proposé de réglementer les modifications telles que « use strict » et « use warns » en spécifiant explicitement la version de Perl dans le code via le pragma « use v7 » (strict est déjà activé par défaut pour « use v5.12 » et les versions plus récentes). ).

Par défaut, il est recommandé que l'interpréteur conserve un ensemble de paramètres qui ne diffèrent pas de Perl 5, à l'exception du processus standard de nettoyage de la syntaxe obsolète qui était utilisé auparavant. La prise en charge des anciennes fonctionnalités et de la syntaxe obsolète peut continuer à être interrompue conformément aux règles de dépréciation existantes. Il est proposé de signaler l'utilisation de nouveaux éléments Perl 7 dans le code et de séparer les nouveaux et les anciens styles à l'aide du pragma « use v7 ».

Source: opennet.ru

Ajouter un commentaire