Developpez.com - Rubrique Perl

Le Club des Développeurs et IT Pro

De Perl 5 à Perl 6 - Partie 2 : les nouveautés

Un tutoriel de Moritz Lenz et Laurent Rosenfeld

Le 2014-10-25 13:32:53, par Lolo78, Rédacteur/Modérateur
Bonjour,

j'ai mis en ligne ces jours-ci la première partie d'un nouveau tutoriel sur Perl 6, axé sur les différences entre Perl 5 et Perl 6, afin de faciliter la transition vers Perl 6 des lecteurs connaissant déjà Perl 5:

De Perl 5 à Perl 6 - Partie 1: les bases du langage.

Bonne lecture à tous.

EDIT :

Les nouveautés ajoutés dans la mise à jour du 24/12/2015 :

  • les regex et surtout les grammaires de Perl 6 (§ 7), en particulier la possibilité d'ajouter dynamiquement des nouveaux éléments syntaxiques à la grammaire Perl 6 existante, rendant le langage intrinsèquement malléable et évolutif ;
  • un nouveau système de programmation orientée objet (§ 6) particulièrement flexible, puissant et expressif ;
  • les fonctions multiples (§ 5) et la capacité de créer dynamiquement de nouveaux opérateurs ou de surcharger des opérateurs existants ;
  • un modèle de programmation fonctionnelle (§ 4) très enrichi avec en particulier le support aux listes paresseuses ;
  • un modèle de programmation parallèle et concurrente (§ 8) de haut niveau, fiable, facile à utiliser et extrêmement prometteur.
  Discussion forum
19 commentaires
  • Lolo78
    Rédacteur/Modérateur
    Bonjour,

    j'ai mis en ligne ce matin la quatrième partie de mon tutoriel De Perl 5 à Perl 6: Perl 5 à Perl 6 - Annexe1 : Ce qui change entre Perl 5 et Perl 6.

    J'ai également modifié la première partie de ce tutoriel pour refléter le fait qu'il est désormais plus recommandé d'utiliser la version de Rakudo Star employant la machine virtuelle MoarVM (plutôt que Parrot), ajouté quelques liens vers cette annexe 1 et mis à jour deux ou trois autres petits points ayant évolué depuis la rédaction initiale de cette première partie.

    Bonne lecture à tous.
  • Lolo78
    Rédacteur/Modérateur
    Bonjour,

    je viens de mettre en ligne la cinquième et dernière partie de mon tutoriel: De Perl 5 à Perl 6 - Annexe 2 : Les nouveautés du langage: http://laurent-rosenfeld.developpez....rl6/annexe-02/

    Parmi les nouveautés particulièrement dignes d'intérêt, on peut citer:

    • les regex et surtout les grammaires de Perl 6 (§ 7), en particulier la possibilité d'ajouter dynamiquement des nouveaux éléments syntaxiques à la grammaire Perl 6 existante, rendant le langage intrinsèquement malléable et évolutif ;
    • un nouveau système de programmation orientée objet (§ 6) particulièrement flexible, puissant et expressif ;
    • les fonctions multiples (§ 5) et la capacité de créer dynamiquement de nouveaux opérateurs ou de surcharger des opérateurs existants ;
    • un modèle de programmation fonctionnelle (§ 4) très enrichi avec en particulier le support aux listes paresseuses ;
    • un modèle de programmation parallèle et concurrente (§ 8) de haut niveau, fiable, facile à utiliser et extrêmement prometteur.


    Bonne lecture à tous et passez de joyeuses fêtes.
  • Lolo78
    Rédacteur/Modérateur
    Bonjour,

    j'ai mis en ligne ces jours-ci la deuxième partie d'un nouveau tutoriel sur Perl 6, axé sur les différences entre Perl 5 et Perl 6, afin de faciliter la transition vers Perl 6 des lecteurs connaissant déjà Perl 5:

    De Perl 5 à Perl 6 - Partie 2: les nouveautés

    Bonne lecture à tous.
  • djibril
    Responsable Perl et Outils
    Une bonne façon de se lancer dans le monde de Perl 6 en douceur.

  • Lolo78
    Rédacteur/Modérateur
    Franchement, je te conseille Perl 5, robut et fiable depuis longtemps, très bien documenté, très bien testé et disponible sur des dizaines d'environnements ou de systèmes différents. De plus, la bibliothèque de modules additionnels (le CPAN) est immense, sans doute la plus grande du monde, tous langages confondus.

    En face de cela, Perl 6 est encore en cours de développement, il n'y a pas encore de compilateur complet, bref le langage et son écosystèmes sont encore très immatures, et il n'y a encore que très peu de documentation.

    J'aurai peut-être un avis différent dans un an ou deux, mais pour l'instant, Perl 5 est la bonne solution.
  • Lolo78
    Rédacteur/Modérateur
    Bonjour Grondilu,

    je te remercie vivement de tes messages qui m'ont permis d'améliorer ce tutoriel PERL.

    J'ai modifié l'article en conséquence et t'ai ajouté dans la liste de mes remerciements.

    Bien cordialement,
    Laurent.
  • 6ril23
    Membre averti
    J'ai juste regardé le début mais ça m'a l'air comme d'habitude d'un super boulot.
    Je vais m'y pencher plus sérieusement car il y a l'air d'y avoir pas mal de changements
  • Lolo78
    Rédacteur/Modérateur
    Bonsoir grondilu,

    merci de ton message et de tes encouragements.

    J'aborde la syntaxe que tu préconises dans le premier chapitre de la seconde partie du tutoriel, consacré aux jonctions.

    Au moment où je décris la syntaxe possible que je propose et que tu cites, je n'ai pas encore abordé les jonctions et je cherche juste à donner un exemple de simplification syntaxique par rapport à Perl 5 et à tous les autres langages que je connais.

    A ma connaissance, la syntaxe que je propose fonctionne parfaitement:
    Code :
    1
    2
    3
    4
    5
    6
    7
    > my $nombre = 10;
    10
    > print "Vrai\n" if $nombre == 9 or 10;
    Vrai
    > say "Vrai" if $nombre == 10 or 9;
    Vrai
    Je vais tout de même ajouter la syntaxe que tu proposes comme autre solution, mais pas tout de suite, là il se fait tard. Sans doute ce week-end.
  • grondilu
    Futur Membre du Club
    Envoyé par Lolo78
    Bonsoir grondilu,
    A ma connaissance, la syntaxe que je propose fonctionne parfaitement:
    Code :
    1
    2
    3
    4
    5
    6
    7
    > my $nombre = 10;
    10
    > print "Vrai\n" if $nombre == 9 or 10;
    Vrai
    > say "Vrai" if $nombre == 10 or 9;
    Vrai
    La syntaxe est correcte en effet mais elle ne correspond pas du tout à la sémantique suggérée.

    Considère ceci:
    Code :
    1
    2
    > say "Vrai" if pi == 1 or 2;
    Vrai
    Comme en perl5, l'opérateur "or" a une priorité très faible, de telle sorte que la commande ci-dessus doit se comprendre:

    Code :
    > say "Vrai" if ( (pi == 1) or (2) );
    (pi == 1) or (2) est toujours Vrai puisque 2 a une valeur booléenne vraie.
  • Lolo78
    Rédacteur/Modérateur
    Bonjour,

    tu as raison, il y a effectivement une erreur de précédence. Il faut ajouter des parenthèses pour que la sémantique soit correcte.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    > my $nombre = 10;
    10
    > say "vrai" if $nombre == (10 or 9)
    vrai
    > say "vrai" if $nombre == (11 or 9)
    Nil
    > say "vrai" if $nombre == (11 || 9)
    Nil
    > say "vrai" if $nombre == (10 || 9)
    vrai
    Je corrigerai au plus vite. Merci beaucoup de m'avoir prévenu, cela me permet d'améliorer le contenu.

    Cordialement,
    Laurent.