• # correction du lien

    Posté par  (site web personnel, Mastodon) . Évalué à 2.

    Grrr! Je ne peux plus modifier et m'en suis pas rendu compte en prévisualisant.
    Est-ce que la modération peut retirer du lien le ? et tout ce qui suit ?

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Merci

    Posté par  . Évalué à 2.

    ça m'a permit de découvrir le module Time::Piece !

    • [^] # Re: Merci

      Posté par  (site web personnel, Mastodon) . Évalué à 2.

      Je ne connaissais pas non plus (faut dire que je n'ai plus beaucoup l'occasion de pratiquer, et que je ne suis pas les évolutions de chaque version.) C'est vrai que c'est un module plutôt sympa.

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # Toujours pas convaincu

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Pas plus convaincu que après le débat dans le lien précédent à ce sujet.

    On peut nommer les paramètres des fonctions (ça existe en C, Pascal, … depuis le millénaire précédent), les descripteurs de fichiers ne sont pas forcément des variables globales (ça existe en C, Pascal, … depuis le millénaire précédent), et on a une fonction qui affiche des chaînes de caractères avec un retour à la ligne (ça existe en C, Pascal, … depuis le millénaire précédent). Bienvenue dans les années 80, Perl?

    Et la prochaine étape c'est les années 90 avec de la programmation orientée objet.

    • [^] # Re: Toujours pas convaincu

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      […] Bienvenue dans les années 80,

      Comme tu as lu un peu trop vite, tu ne t'es pas rendu compte qu'il est précisé qu'on est la version 36 de Perl5 et que les exemples donnés portent sur la version 10 de décembre 2007. Il est indiqué dès le début que le billet s'adresse aux personnes qui continuent à utiliser la version 6 (mars 2000) et antérieure sans casse (car contrairement aux autres langages de script, PERL sait maintenir un maximum de compatibilité ascendante…)

      Dans ton raisonnement, si je fais un billet incitant les usagers de C des premières heures (1978) à passer aux standards plus récent en leur présentant les plus de C89 (ANSI X3.159-1989), tu en déduis (sans te renseigner) que les autres langages font déjà des trucs qui n'existe pas en C (de ton point de vue) mais pourtant sont dans C11 (ISO/IEC 9899:2011)

      Et la prochaine étape c'est les années 90 avec de la programmation orientée objet.

      Bah, ça, ça existe déjà et tu peux voir que certaines pages en cause depuis une vingtaine d'années (remarque, ça date de 1994 ce paradigme dans le langage) :-)

      “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: Toujours pas convaincu

        Posté par  (site web personnel, Mastodon) . Évalué à 3.

        J'ai lu l'introduction de l'article qui dit ceci:

        The Perl 5 team have developed an annual release cycle, where a new version is released in about May of every year. Version 5.36 was released in May 2022 and is very different to version 5.6.0, which was current back in the summer of 2000. In this article, we’ll look at some of the new Perl features that you might have missed.

        L'article dit aussi comment activer ces fonctionnalités:

        use 5.36; # Turns on all new 5.36 (and earlier) features

        Il s'agit donc bien d'un article tout récent sur la version 5.36 de Perl?

        Je m'attendais donc à un résumé des fonctionnalités ajoutées ces 20 dernières années. Alors, soit l'article est mal fichu (ce qui est possible, je je suis pas Perl de très près), soit il ne s'est vraiment rien passé de plus intéressant pendant 20 ans?

        Qu'est-ce qui a conduit l'auteur de l'article à choisir des choses qui auraient du déjà être faites depuis 40 ans pour présenter les nouveautés du langage? Quelles sont les vraies nouveautés intéressantes qu'il a choisi de ne pas présenter?

        Est-ce que finalement, le fait qu'il y ait peu de changements n'est pas le meilleur aspect de Perl, enfin un langage stable avec lequel on peut écrire des logiciels qui continueront à fonctionner sans problème pour des dizaines d'années?

        • [^] # Re: Toujours pas convaincu

          Posté par  . Évalué à 4.

          Je ne trouve pas que ça mérite le mépris de ton premier commentaire, mais c'est vrai qu'il manque des trucs dans l'article. Comme la structure given/when qui est un switch plus puissant que dans la plupart des langages, le defer qui marche un peu comme go, différentes avancées dans les expressions régulières,… et je n'ai pas particulièrement suivi le langage ses 10 dernières années.

          https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

        • [^] # Re: Toujours pas convaincu

          Posté par  (site web personnel, Mastodon) . Évalué à 4.

          Exactement, l'introduction dit « In this article, we’ll look at some of the new Perl features that you might have missed. » …mais ne présente pas les nouveautés de la 5.36.0 ni même, des choses intéressantes ajoutées ces dix dernières années :-( En fait le billet présente quelques trucs pour forcer les vielles du vieux à migrer, et ces personnes non seulement n'utilisent pas les nouveautés du langage mais aussi sont enclines à ne pas changer tant que ça marche. Ceci justifie probablement le titre (l'allusion aux papys) et le choix (pauvre je l'accorde) des points mis en avant (et qui ne sont plus vraiment des nouveautés …bien qu'étant effectivement des fonctionnalités arrivées après la 5.6.0) Vraiment « some features you might have missed » pour les vétérans restés coincés en « 5.6.0, which was current back in the summer of 2000. »

          Ainsi, quand il rentre dans le vif du sujet, on voit rapidement qu'il parle surtout de vieux trucs puisque les versions sont précisées.

          • « Perl 5.10 introduced the say() command which does the same thing but automatically adds a newline character to the output. »
          • « So for a long time (back to at least Perl 5.6), it has been possible to open filehandles and store them in lexical variables (the type of Perl variable that only exists in a particular block of code and, therefore, the most sensible type of variable to use in most cases). The rule is that if you use a scalar variable that contains no data (is “undefined” in Perl parlance) in place of a filehandle in a call to open(), then the filehandle is stored in that scalar variable. » Ici, pas besoin d'utiliser une version récente mais même avec le vieux pot de 5.6 les pépés semblent ignorer cette bonne pratique. Dommage qu'il ne mentionne pas le use strict et le use warning quelque part.
          • « Since Perl 5.10, the standard library has included a module called Time::Piece. When you use Time::Piece in your code, it overrides localtime() and replaces it with a function that returns an object that contains details of the current time and date. That object has a strftime() method; » Ah tiens, il te dit qu'il y a de l'objet déjà (et vers la fin parle d'un nouveau framework objet en cours pour une prochaine version.)
          • Ah si, il y a quand même les signatures qui sont annoncées par « Well, as of version 5.36 (which was released earlier this summer) Perl has that too. » Le meilleur pour la fin on dirait ; en tout cas ça c'est vraiment un truc que ce langage semble être le dernier à implémenter pour le coup.

          Le billet reconnait vers la fin : « In this article, I’ve just scratched the surface of the changes that have happened to Perl in the last fifteen years. There are plenty of other improvements to find out about. » Puis, pour avoir les vraies nouveautés qu'il n'a pas présenté, il indique : « Each new version of Perl comes with a “perldelta” manual page which explains the differences from the previous version. So the perldelta that comes with version 5.36 describes everything that has changed since version 5.34 (Perl uses odd version numbers to indicate development versions, so it’s only even numbers that count as production releases). Each version will also include the perldeltas from all of the previous versions (well, back to version 5.4, which was the first version to include this documentation). The latest version is always called just “perldelta” and the older ones are renamed to include the version number. So the document that describes the differences between 5.32 and 5.34 is called “perl5340delta”. » J'avais pointé la page Wikipédia Perl 5 version history qui en fait la synthèse.

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

          • [^] # Re: Toujours pas convaincu

            Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 29 septembre 2022 à 14:41.

            Ah si, il y a quand même les signatures qui sont annoncées par « Well, as of version 5.36 (which was released earlier this summer) Perl has that too. » Le meilleur pour la fin on dirait ; en tout cas ça c'est vraiment un truc que ce langage semble être le dernier à implémenter pour le coup.

            La dernière dépêche nous indique c'est présent depuis la 5.20 et donc marqué expérimental pendant seize versions (toujours le souci de stabilité tout ça.)

            Il s'agit donc bien d'un article tout récent sur la version 5.36 de Perl?

            Comme déjà dit, l'article est léger et parcours un quart de siècle en trois exemples pour inciter à migrer et non vraiment présenter les nouveautés de la 5.36.
            Ça tombe bien, la dépêche actuelle répond à la question des nouveautés ;-)

            “It is seldom that liberty of any kind is lost all at once.” ― David Hume

        • [^] # Re: Toujours pas convaincu

          Posté par  (site web personnel, Mastodon) . Évalué à 3.

          Est-ce que finalement, le fait qu'il y ait peu de changements n'est pas le meilleur aspect de Perl, enfin un langage stable avec lequel on peut écrire des logiciels qui continueront à fonctionner sans problème pour des dizaines d'années?

          Attention, il n'y a pas « peu de changements » mais comme j'ai indiqué un maintien de compatibilité

          Il est indiqué dès le début que le billet s'adresse aux personnes qui continuent à utiliser la version [5.]6 (mars 2000) et antérieure sans casse (car contrairement aux autres langages de script, PERL[5] sait maintenir un maximum de compatibilité ascendante…)

          En relisant, à tête reposée pour faire mon commentaire précédent, je vois que le point a été mentionné dans l'article : « All of this meant that for almost twenty years, Perl had no next version number to use. And this has, unsurprisingly, led to a large part of the industry assuming that Perl hasn’t changed much over that time. This is unfortunate as Perl has undergone massive changes in the new millennium. The Perl 5 team have developed an annual release cycle, where a new version is released in about May of every year. » Le 5.y.z est trompeur car on peut croire à tort qu'il n'y a pas d'évolution alors qu'on fait chaque incrément de Y est en fait une nouvelle version et même un nouveau millésime. Un journal a récemment fait le même constat au sujet de Python 3.y.z :-)
          Plus loin, il indique « The Perl development team thinks that backwards compatibility is very important. They will do anything in their power to ensure that new versions of Perl won’t break old code. Most of the time they manage that; occasionally they don’t. » Puis « But this policy means that many new Perl features are hidden away behind feature guards and aren’t available unless you explicitly turn them on—the argument being that if you’re knowledgeable enough to turn a particular feature on, then you’re also knowledgeable enough to deal with any incompatibilities that the new feature introduces. […] If you add “use ” to your code, then it will turn on all of the features that were introduced in that version of Perl (and all previous versions). »

          Sinon on est d'accord sur le gage de stabilité.

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.