Perl 6 n’est pas le successeur de Perl 5. Qu’on se le dise !
UPDATE nov/2019: Le nom Perl 6 est abandonné, le nouveau langage s’appelle maintenant Raku.
Habituellement quand on incrémente le numéro de version c’est qu’il y a d’importantes nouveautés mais la compatibilité ascendante est préservée. C’est le cas pour tous les langages honnêtes que je connais C, C++, Java, JavaScript, Python, Pascal, PHP, Fortran, Cobol etc…
Mais le code source Perl 5 ne s’exécute pas sous Perl 6. Un seul exemple :
if(a==0){ ... }ne marche pas en Perl 6 à cause de l’absence d’espace entre if et la parenthèse ouvrante.
Quelques autres exemples :
- En Perl 6 on écrit %liste<key
> = 0; mais en Perl 5 on écrit $liste{key} = 0; Notez bien les deux différences.
- En Perl 6 l’opérateur de correspondance est ~~ en Perl 5 c’est =~
- En Perl 6 l’operateur de concaténation est le tilde (~) en Perl 5 c’est le point (.)
- L’operateur << devient +<
- for devient loop, eval devient try.
- ect ect ect La liste des differences est très longue.
En fait il y a autant de ressemblances entre C++ et Java qu’entre Perl 5 et Perl 6 : On reconnaît des points communs de syntaxe, on distingue certains concepts communs mais ce n’est pas la même chose.
Alors pourquoi pas un autre nom que Perl 6 ?
Je pense que les langages étant tellement nombreux actuellement, qu’un nouveau nom passerait totalement inaperçu. Il est très difficile de se faire une place entre le C# de Microsoft, le Go de Google, le Swift d’Apple sans oublier les vénérables PHP, Python, Java, C/C++. En gardant le nom Perl ils espèrent garder l’attention de la communauté Perl 5 et essayer de la convertir à Perl 6. Pour le moment ça ne marche pas. (à mon avis ça ne marchera jamais), il y a même des tensions entre les deux communautés. Il y a même des tensions à l’intérieur de Perl 6 entre Parrot (une des machine virtuelle supportant Perl 6) et Rakudo (le compilateur Perl 6 le plus connu).
Le plus stupide dans cette dénomination c'est que Perl 5 ne peut pas passer à la version suivante car il y aurait confusion entre le Perl 6/dromadaire et le Perl 6/papillon.
Perl 6/papillon, va rester à la version 6 pour toujours ?
Le plus stupide dans cette dénomination c'est que Perl 5 ne peut pas passer à la version suivante car il y aurait confusion entre le Perl 6/dromadaire et le Perl 6/papillon.
Perl 6/papillon, va rester à la version 6 pour toujours ?
J’ai commencé à apprendre tout en utilisant de manière professionnelle Perl 5, et exclusivement Perl 5. Eh bien je pense que connaître Perl 5 n’est pas un avantage décisif dans l’apprentissage de Perl 6. J’ai beaucoup perdu de temps en cherchant des ponts entre les deux soi-disant versions de Perl. En fait j’aurais gagné beaucoup de temps si j’étais parti dans l’optique d’apprendre un nouveau langage (un de plus !)
Note : Les performances ne sont pas (encore) au rendez-vous. On nous répète que le langage est jeune mais que ça va venir, qu'il y a des optimisation possibles. Mais on nous répète cela depuis 2015...
Packages
Si vous trouvez que votre distribution n'est pas assez réactive aux mises à jour de Rakudo (ou que Rakudo fait trop souvent des mises à jour ...), vous pouvez ajouter le repository raduko-pkg et bénéficier des mises à jour au fil de l'eau.
A suivre le blog de Jonathan Worthington, l’architecte de Rakudo (le compilateur Perl 6) et de MoarVM (la machine virtuelle de Perl 6)