IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Nouveau tutoriel: de Perl 5 à Perl 6 [Tutoriel]


Sujet :

Langage Perl

  1. #1
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut Nouveau tutoriel: de Perl 5 à Perl 6
    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.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Une bonne façon de se lancer dans le monde de Perl 6 en douceur.


  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Points : 406
    Points
    406
    Par défaut
    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

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Merci beaucoup pour ce tutoriel.

    Etant débutant en Perl et voulant vraiment me lancer dedans, me conseillez vous de commencer par ces tutoriel PERL ou bien de lire d'abord des tutoriels concernant Perl 5 ?
    Merci pour vos précisions.

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 54
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Lolo78 Voir le message
    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.
    Super merci beaucoup pour ta réponse

  7. #7
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut De Perl 5 à Perl 6 - Partie 2: les nouveautés
    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.

  8. #8
    Membre habitué

    Homme Profil pro
    Statisticien
    Inscrit en
    Novembre 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Novembre 2010
    Messages : 122
    Points : 134
    Points
    134
    Par défaut
    Un grand merci pour ce tutoriel.

    Juste en 6.2.2 : 1 / (2 / 4) = 1/2 donne 2 plutôt

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 7
    Points
    7
    Par défaut relevé erreur
    Un bien noble effort, merci.

    Attention tout de même aux imprécisions. Par exemple, la façon correcte de simplifier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Vrai\n" if $nombre == 9 or $nombre == 10;
    est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Vrai\n" if $nombre == 9|10
    et non:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Vrai\n" if $nombre == 9 or 10;

  10. #10
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 7
    Points
    7
    Par défaut RE:
    Citation Envoyé par Lolo78 Voir le message
    Bonsoir grondilu,
    A ma connaissance, la syntaxe que je propose fonctionne parfaitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    > say "Vrai" if ( (pi == 1) or (2) );
    (pi == 1) or (2) est toujours Vrai puisque 2 a une valeur booléenne vraie.

  12. #12
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Re.
    Non ça n'est toujours pas correct.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    say "ok" if 10 == (10 or 9)
    affiche Ok car 10 or 9 retourne 10, mais ça n'est pas vraiment ce que tu voulais faire. Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    say "ok" if 10 == (9 or 10)
    n'affiche rien car au final ce qui est testé c'est 10 == 9 cette fois, puisque 9 or 10 retourne 9.

    Pour faire ce que tu veux faire il faut vraiment utiliser une jonction. infix:<or> n'a pas du tout la sémantique appropriée.

    Je comprends l'intérêt qu'aurait une telle sémantique dans la mesure ou ça se rapproche beaucoup du langage naturel, mais tu en demandes trop là.

    A ce point dans ton manuel je suggère de se contenter d'illustrer le caractère chaîné de infix:<==>, avec quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $a = my $b = my $c = 7;
    say $a == $b == $c;

    Tu le fais un peu plus loin je crois et il faudrait donc déplacer la section en question mais je crois que c'est mieux puisque c'est l'analogue exact du caractère chaîné des relations d'ordres :


  14. #14
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Janvier 2015
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    Pour être plus précis je dirais qu'à cet endroit ce que tu peux expliquer c'est le chaînage des opérateurs de comparaison. C'est-à-dire que ce que tu cherches à faire c'est comparer trois nombres, et non un nombre à deux autres.

    Donc tu peux commencer à dire que pour trois nombres pris au hasard, la manière "Perl 5" de voir s'ils sont tous trois égaux est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my ($a, $b, $c) = (^10).roll(3);
    say so $a == $b and $b == $c;
    Mais la manière idiomatique en Perl 6 est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my ($a, $b, $c) = (^10).roll(3);
    say so $a == $b == $c;
    Et de manière équivalente pour les opérateurs de relation d'ordre, on écrira:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my ($a, $b, $c) = (^10).roll(3);
    say so $a < $b < $c;
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my ($a, $b, $c) = (^10).roll(3);
    say so $a < $b and $b < $c;

    Le cas où tu cherches à comparer un nombre à deux autres, par exemple $a < $b or $a < $c, doit nécessairement se faire avec des jonctions et doit donc être discuté dans la section correspondante.

  15. #15
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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.

  16. #16
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bonjour Lolo78,

    Pourrais-tu mettre à jour ton tutoriel -> Nouveau tutoriel: de Perl 5 à Perl 6 - 1ere partie, notamment le chapitre 1-2. Installer Perl 6 sur votre ordinateur.
    À ce jour, il est plus recommandé d'utiliser la machine virtuelle MoarVM (en dépit de Parrot) plus complet et aboutit.

  17. #17
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Bonjour Djibril,

    oui, j'ai l'intention de le faire très prochainement, en même temps que l'ajout de liens vers le nouvel arrticle en cours.

    Bonne soirée,
    Laurent.

  18. #18
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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.

  19. #19
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Parfait ! Super boulot

  20. #20
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    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.

Discussions similaires

  1. Nouveau tutoriel DOM
    Par Eusebius dans le forum Langage
    Réponses: 12
    Dernier message: 14/10/2008, 18h45
  2. Nouveau tutoriel de Benoît-M
    Par Smortex dans le forum x86 16-bits
    Réponses: 28
    Dernier message: 28/11/2005, 02h00
  3. installation de librairie (non perl) pour perl
    Par Ickou dans le forum Modules
    Réponses: 2
    Dernier message: 09/11/2005, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo