Envoyé par
Jedai
On peut dire ça... Les 4/5ème des critiques sur ce fil semble faites par des gens qui ne connaissent pratiquement pas Perl ou se focalisent sur des points de détails. Il y a de vrais critiques importantes qu'on peut faire à Perl, mais jusqu'ici on a surtout entendu de la méconnaissance ou des jugements à l'emporte pièce.
Tu as conscience que Python 3 est déjà livré avec Fedora, et que la nouveauté dans Fedora 13 sera simplement qu'elle utilisera Python3 plutôt que Python2 par défaut. Sachant cela et sachant que Python 3 est présenté depuis quelques années déjà comme près pour la mise en production alors que Rakudo en est encore à un statut expérimental, je ne vois vraiment pas ce que tu veux insinuer avec cette comparaison. Par ailleurs Python 3 n'est qu'une évolution de Python 2 sans différences fondamentales alors que Perl 6 est une réécriture complète et un langage fort différent de Perl 5.
C'est peut-être parce que Perl n'est pas un langage tout objet et qu'en particulier les chaînes de caractères ne sont pas des objets... En quoi une fonction split() est-elle intrinsèquement moins bien qu'une méthode Split() ? Tu avais l'intention de la surcharger dans une classe héritant de String ?
Par ailleurs split() en Perl est particulièrement puissante et flexible par rapport à la plupart des autres langages, dans le genre exemple de l'inadéquation de ce langage, c'est osé !
Ouais... Ben faudra donner un autre exemple, il y a des aspects contestables dans la syntaxe de Perl (pas mal de recoins obscurs) mais tes exemples ne les font pas ressortir, j'irais même jusqu'à dire qu'à mes yeux habitués à de nombreux langages, tes exemples sont strictement similaires et aussi faciles à lire et "esthétiques" les uns que les autres.
Bien sûr ! Tu en as beaucoup des perles de sagesse comme ça ? Pour ta gouverne j'ai 24 ans et je ne me considère pas encore comme "vieux".
Et sinon, un argument objectif sur le déclin du Perl ?
Perl se débrouille pas mal du tout sur le Web si tu utilises les bons framework (Catalyst...), à l'époque il avait été choisi pour l'aisance avec laquelle il permettait d'écrire des scripts CGI. Il a été remplacé par PHP sur ce segment de marché (à l'origine un simple langage de template implémenté par du Perl, pour l'anecdote) mais pas à mon avis pour de bonnes raisons techniques, plus parce que PHP était encore plus laxiste et encourageait encore plus le style cargo-cult que Perl, et surtout il était bien plus compatible avec les hébergements mutualisés avec son modèle "tout-intégré" pourtant déjà l'anathème d'un développement propre bien modulaire.
Enfin un commentaire qui mets un peu le doigt là où ça fait mal... Il est certain que le modèle OO (ou plutôt son absence) en Perl laisse à désirer, le multithreading bien qu'intégré n'a jamais décollé et souffre toujours d'instabilité et de limitations. Inline::CPP est pas trop mal pour l'intégration facile de C++ par contre et Perl a toujours facilement intégré des API C.
Je te rejoins sur les déclarations de fonctions mais pas sur l'exemple en particulier : ce que tu montres là c'est plutôt un symptôme de la non-intégration de l'OO dans le langage et l'absence d'une syntaxe particulière aux méthodes.
Ce qui manque vraiment ce sont des prototypes de fonctions corrects, permettant de spécifier des noms de paramètres et un certain nombre de contraintes sur eux.
Perl 6 répond en fait à pratiquement toutes tes critiques (bien qu'on puisse sans doute en trouver d'autres), la POO est bien intégrée et standardisée, les prototypes de fonctions sont excellents et le multithreading sera bien supporté. Il apporte également pleins d'autres innovations pratiques.
Rakudo, l'implémentation sur la VM Parrot est maintenant bien avancée et on peut déjà l'utiliser pour tester ce nouveau langage (elle est même disponible sur les dépôts officiels de Fedora 12), d'ici un an ou deux, si la dynamique actuelle se maintient, Rakudo devrait être à la hauteur pour de véritables applications en production.
--
Jedaï
Partager