Bonsoir Esperanto,

Envoyé par
esperanto
Petite remarque préalable, au cas où certains seraient choqués par mes tournures de phrase, croyez bien que je ne cherche absolument pas à critiquer pour faire du troll, seulement à exprimer un ressenti.
Aucun problème en ce qui me concerne, je ne suis pas du tout choqué et j'estime que l'on peut discuter entre gens de bonne compagnie, même et surtout si on n'est pas d'accord sur tout.
Juste des éléments de réponse à tes interrogations, sans prétendre détenir la vérité.
15 ans de Perl 5 derrière moi, et à peu près 15 ans que j'entends parler de Perl 6... ou pas : aucun de mes collègues ne l'a jamais vu, quand je l'évoque même les plus perlistes de mes collègues me demandent des détails, et pourtant je n'en sais pas beaucoup plus qu'eux.
Moi pareil, bon, seulement 13 ans de Perl 5, pas 15, et aussi très peu entendu de choses sur Perl 6... jusqu'au jour où je me suis décidé à vraiment investiguer, il y a environ 18 mois.
Depuis, j'ai publié 4 tutoriels en français à ce sujet sur ce site, représentant au total plus de 200 pages au format A4 ODT, Word ou PDF (et j'en ai deux autres en cours et d'autres en projet).
Donc, tu as à disposition, avec ces tutos, une documentation certes encore loin d'être complète, mais susceptible de répondre à beaucoup de tes questions.
A propos de déploiement, je dois dire qu'à part Debian je n'ai encore trouvé aucune distribution Unix proposant Rakudo, et le fait qu'il ne soit qu'en version béta n'est pas une excuse : quand un logiciel est vraiment utile, les distributions le proposent souvent dès la version béta (voir le cas de Wine par exemple...)
Donc, le déploiement prochain je n'y crois pas trop, et alors la migration 5 vers 6 je n'en parle même pas.
On n'en est pas encore à une version béta (la première est pour décembre 2015), pas trop étonnant que ce ne soit pas encore dans les distributions Linux standard. Mais il est facile d'installer Rakudo sur la plupart des distributions Linux, Windows et, sauf erreur, Mac.
En premier lieu ce qui frappe ce sont les énormes différences avec Perl 5, bien plus qu'avec les versions précédentes.
Ajouter la possibilité de nommer les paramètres de fonction, c'est légitime. Et de les typer, après tout pourquoi pas. Mais changer radicalement la signification des sigills, la syntaxe des expressions régulières, la majorité des opérateurs, le tout nouveau modèle objet, pourquoi, oui pourquoi?
Je me suis posé les mêmes questions et ai aussi espéré un temps que les différences soient minimes. Inutile de se voiler la face, ce n'est pas le cas, les différences sont effectivement importantes. Mes tutoriels déjà mis en ligne se concentrant précisément sur les différences entre Perl 5 et Perl 6, il ne font qu'apporter de l'eau à ton moulin: oui, c'est un langage différent, aucun doute là dessus, mais conservant l'esprit de Perl 5, aucun doute non plus. Au fur et à mesure que j'ai découvert ces changements, j'ai aussi compris dans une large mesure leurs justifications. Chacun des chapitres des trois premiers tutoriels, ou presque, comporte un sous-chapitre "Motivation" qui répond au moins en partie, j'espère, à ces questions.
Pour ne prendre qu'un exemple, celui des regex: tu ne peux imaginer ce que la nouvelle syntaxe des regex apporte en puissance expressive supplémentaire tant que tu n'as pas essayé d'utiliser vraiment les regex de Perl 6 et d'écrire toi-même, en moins de 50 lignes de code, une grammaire complète permettant de parser un document JSON quelconque.
Pour un peu j'ai l'impression qu'il y a autant de différences entre Perl 5 et 6 qu'entre Perl 5 et PhP. Et aussi autant de fausses ressemblances, de nature à induire en erreur: en cherchant bien je suis certain qu'il est possible d'écrire un programme qui fonctionne aussi bien en Perl 5 qu'en Perl 6 mais qui donne un résultat totalement différent.
C'est un langage différent, je l'ai déjà dit, mais de là à voir plus de différences entre Perl 5 et Perl 6 qu'entre Perl 5 et PHP, je ne peux pas te suivre sur ce terrain-là. (Si encore tu avais choisi Ruby pour ta comparaison, on pourrait peut-être vaguement en discuter superficiellement, après tout Ruby a de vraies ressemblances avec Perl, mais comparer un langage généraliste comme Perl, 5 ou 6, à un langage spécialisé Web comme PHP, vraiment pas.) Mais, en profondeur, même la comparaison avec Ruby ne tient pas du tour la route. Je t'assure, pour l'avoir pratiqué depuis un an et demi, que Perl 6 est dans l'esprit de Perl 5, mais je dirais en mieux. (Bien sûr, dans la vraie vie professionnelle, je ne fais que du Perl 5, Perl 6 n'est qu'un hobby pour moi pour l'instant. J'ai hâte que cela change.)
Et pourtant le langage ne change pas de nom, juste de numéro. Ce qui risque de poser de gros problèmes pour les nouveaux arrivants, qui pourront croire que la version 5 est obsolète alors même que c'est elle qui est présente sur la majorité des ordinateurs.
Oui, le nom de langage est un débat récurrent et fondé, ces discussions ont eu lieu, il y a des raisons historiques bonnes ou mauvaises, mais c'est sans doute trop tard pour changer maintenant.
Et puis faire démarrer les codeurs débutants avec Perl, même la version 6, je ne vois pas trop l'intérêt. A part peut-être le fort typage qui peut inciter à faire du code propre, sachant que contrairement à Java il ne le rend pas obligatoire pour autant.
Pas d'accord. Si j'étais prof d'université, je serais très tenté de choisir Perl 6 comme support de mes cours, ne serait-ce que parce Perl 6 permet d'aborder avec un seul langage différents types et modèles de programmation: impérative procédurale classique, objet et fonctionnelle (et même programmation logique, programmation par contraintes, par pipe-line de données, par "reconnaissance-action", etc.).
Un des rares reproches que je pouvais faire à Perl 5 était l'absence d'une spécification, empêchant par là même l'existence d'implémentations alternatives ou le multi-plateforme, comme on peut le voir en Python et en Ruby qui ont des implémentations en Java et en .NET (et même en Javascript). Alors quand j'ai lu que la version 6 de Perl allait changer ça, je ne pouvais qu'applaudir.
Aujourd'hui je vois surtout une occasion manquée.
Franchement, je ne crois pas.
Rakudo peut utiliser une JVM, mais l'inverse n'est pas vrai. Du coup impossible de l'utiliser pour écrire un script qui fonctionne aussi bien en local qu'intégré dans un programme Java déjà existant : j'ai eu à le faire récemment et alors, pas d'autre choix que d'utiliser Ruby, sauf que ce langage est inconnu de mes collègues.
Heureusement je viens de découvrir Perlito (dont j'avais vaguement entendu parler en même temps que Perl 6 mais dont je ne soupçonnais pas la liste des langages supportés en backend), la prochaine fois que j'ai la même problématique j'essaierai de l'utiliser pour lancer depuis java des scripts traduits en JavaScript... mais probablement depuis Perl 5.
Là, tu parles de l'implémentation actuelle (Rakudo sur MoarVM ou JVM), rien à voir avec le langage lui-même. Comme l'a dit en substance Larry Wall lors de la conférence à l'origine de ce post (je paraphrase, je n'ai plus la citation exacte), "Faire de Perl 6 LE langage de la semaine ne m'intéresse pas, nous voulions un langage des 30 ou 40 prochaines années." Impossible de dire si cet objectif se réalisera ou non, mais les détails de l'implémentation 2015 ou même 2016 ne sont guère pertinents dans cette perspective.
Je ne sais même pas si je souhaite vraiment que Perl 6 devienne le langage des 30 ou 40 prochaines années (dans le sens que peut-être quelqu'un inventera quelque chose de vraiment mieux bien avant l'expiration de cette période), mais je peux dire que je pense sincèrement que, vu d'aujourd'hui, il en a réellement le potentiel.
Bon, j'ai essayé de répondre point par point à ton post, mais il ne faut en aucun y voir une animosité contre ton point de vue.
1 |
0 |