Questions autour de Perl

Quel est l'avenir de Perl ?

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous !

J'ai découvert il y a quelque temps le langage de programmation Perl. C'est un langage que j'apprécie, pour diverses raisons. Désormais, j'aimerais avancer un peu plus dans mon apprentissage, mais plusieurs questions se posent sur face à moi. J'ai déjà tenter d'effectuer mes propres recherches, et j'aimerais si possible sur ce topic obtenir votre point de vue sur le sujet, afin de m'aider à m'orienter. Merci de votre lecture.

Tout d'abord, les différentes versions de Perl. Jusqu'à présent, je n'ai utilisé que Perl 5. Or, Perl 6 est annoncé comme un tout nouveau langage. Comment fraudait t-il se placer entre Perl 5 et Perl 6 ? Et pour savoir : vous, quelle version utilisez-vous ?

La communauté autour de Perl est de moins en moins active, contrairement à celle autour d'autres langages comme Python ou Ruby. Aujourd'hui, est-il encore utile d'apprendre Perl ? En 2015, peut-on mener un projet conséquent avec Perl ? Ou faut-il alors utiliser Perl en complément avec d'autres langages dans son projet ? En fait, quel est l'avenir de Perl ?

J'aimerais pouvoir me situer, afin de m'orienter (dois-je continuer à programmer en Perl, si oui, avec quelle version ?).

Merci à tous ceux prennent le temps de me lire et éventuellement de me répondre. Bonne journée,

Emeric

Je ne suis pas un grand spécialiste de Perl mais il est évident que Perl a perdu énormément en popularité. La raison principale est probablement la trop longue gestation de Perl 6 qui a commencé a etre définit en 2001 et qui n'est toujours pas finalisé (ce devrait être le cas en fin d'année). Ce langage a donc stagné pendant plus de 10 ans face à une "concurrence" qui elle n'a pas chaumé. Alors que Perl avait une base d'utilisateur tres conséquente au début du développement du net, aujourd'hui ce marché est occupé par d'autres acteurs qu'il va être difficile a déloger. Enfin ces capacité a gérer le flux de texte, même si ça reste encore une des grandes forces de Perl, est maintenant beaucoup moins critique. La majorité des autres langages ont des capacités similaire ou suffisante dans ce domaine.

A titre personnel je ne conseillerai pas Perl en 2015. L'apprendre si on doit intervenir sur une base de code dans ce langage, pourquoi pas. Mais pas plus. Les débouchés sont faibles, autant niveau pro que les projets open-source l'utilisant. Et le statut bancal entre Perl 5 et Perl 6 n'aide pas : aujourd'hui les exemples et lib existantes sont tres majoritairement en Perl 5 tandis que Perl 6 arrivera peut être dans quelques mois.

Bref pour moi ce langage est en fin de vie.

Merci pour ta réponse. J'ai en effet regardé les différents débouchés, ce que Perl permettait vraiment de faire, et à part quelques modules intéressants, il n'y a pas grand chose. Je ne vais pas oublier ce que j'ai appris, bien au contraire, peut-être qu'un jour, j'aurais besoin d'utiliser Perl (?), mais je vais en rester la pour le moment avec Perl.

J'aimerais pouvoir me situer, afin de m'orienter (dois-je continuer à programmer en Perl, si oui, avec quelle version ?).

Emeric

Pourquoi nous poses-tu toutes ces questions, en fait ? Est-ce que tu considères que c'est la popularité d'une technologie qui dicte son utilisation ?

Non, loin de là ! Ca ne me dérange pas d'utiliser un langage que personne n'utilise (tant que la documentation est complète !), pas de problèmes sur ce point. Par contre, je cherche à savoir si je pourrais me servir de Perl, si ce langage pourrait m'être utile. Forcément, plus un langage est populaire, plus il y a de modules, d'applications possibles de ce langage…
En fait, je ne veux pas me lancer à fond dans un langage qui me serait inutile.

Je comprends.

Pour te répondre, je pense qu'il y a plein de choses rigolotes à faire en Perl 5, et on peut espérer que la communauté Perl (qui est clairement plus petite qu'avant, mais dont le noyau dur reste à mon avis composé de gens très actifs) portera les modules les plus utiles vers Perl 6.

Perl 6 est un langage très particulier. De ce que j'en avais vu, il apporte beaucoup de nouvelles idées, qui seront peut-être reprises par certains autres langages. Je ne sais pas à quel point quelqu'un qui connaît Perl 5 doit tout réapprendre pour passer à Perl 6 - donc je ne sais pas si ça serait un bon calcul de se lancer dans Perl 5 maintenant. Je pense que oui, il y aura de toute façon une période transitoire plus ou moins longue.

En définitive, si tu es du genre curieux, que tu aimes bien apprendre des choses, et que tu as un bon feeling avec Perl, pourquoi pas ? Tu arrêtes quand tu veux et ça ne t'empêche pas de t'intéresser à d'autres technologies. Perl reste un bon couteau suisse, je suis sûr que tu sauras en faire quelque chose de concret et d'intéressant.

Enfin ces capacité a gérer le flux de texte, même si ça reste encore une des grandes forces de Perl, est maintenant beaucoup moins critique. La majorité des autres langages ont des capacités similaire ou suffisante dans ce domaine.

Je souhaite rebondir sur ce sujet particulier.

En fait pour situer le contexte, j'ai bossé ces dernières années sur une très grosse application de traitements de données. La code-base, jusqu'à la fin de l'année dernière, était majoritairement en Perl 5, et depuis, on a décidé de la porter vers Python 3. Après plusieurs mois de développement, on a une différence très nette en termes de qualité de code, mais pas que. Ce passage a permis de résoudre intrinsèquement pas mal de casseroles qu'on s'était longtemps traînées, comme :

  • la gestion des encodages de chaînes de caractères. Elle se fait à coups de scotch en perl 5 (des flags sur la structure interne des chaînes de caractères, qui ne donnent lieu à aucune vérification particulière), et de façon explicite en Python. Le fait que Python 3 manipule des chaînes Unicode par défaut est un atout monstrueux : les erreurs d'encodage pètent tout de suite, sans nous faire d'enfants dans le dos. Du simple fait du portage, plusieurs dizaines de tickets (certains vieux de plusieurs années) ont été fermés du même coup.

  • ce que j'appellerais l'optimisabilité : que ce soit Perl 5 ou Python 3, les deux langages se situent globalement au même niveau d'abstraction et de performances brutes. Néanmoins, une codebase en Python propose beaucoup plus de vecteurs d'attaque pour optimiser les softs. En particulier Cython. Un comparatif entre Cython (Python 3) et SWIG (Perl 5) a rapidement porté ses fruits (l'overhead d'un binding est 6 à 7 fois plus petit en Cython qu'avec SWIG, et ne représente, concrètement, que le double d'un appel de code natif depuis un programme natif. Résultat qu'il est sûrement possible de perfectionner si on s'attelle à éviter les copies inutiles de données). En somme, la frontière en termes de performances atteignables est beaucoup plus mobile en Python, d'autant que ce dernier fournit de nombreux outils standard de profiling et inclut, également en standard, un module ctypes qui permet de très rapidement binder du code natif (avant de passer aux choses sérieuses avec Cython).

  • la gestion d'erreurs : anecdotique en Perl (tests sur la variable $@), son pendant Python est un véritable système d'exceptions. Là encore, sur une code base de plusieurs dizaines de milliers de lignes, Perl 5 s'essoufle, clairement.

Par contre, là où je pensais gagner et où je n'ai pas constaté de réel gain, c'est sur la différence de qualité entre les modules du CPAN et ceux du Pypi. Le seul avantage de Python à ce niveau est probablement que l'on a beaucoup moins besoin de recourir au Pypi qu'au CPAN en raison de sa bibliothèque standard exceptionnelle, mais dès que l'on commence à toucher aux bibliothèques tierces, les deux sources doivent être considérées avec la même vigilance.

Au final, aujourd'hui, je ne vois pas d'intérêt à se lancer dans Perl 5 en dehors du cas évident où on a besoin de maintenir rapidement du code existant.

Je ne connais pas suffisamment Perl 6 pour l'inclure à mes remarques. En ce qui me concerne, j'ai volontiers délaissé Perl 5 au profit de Python 3, et il a suffit de quelques semaines de développement sur un projet équivalent pour que j'en ressente très nettement les avantages (en plus du plaisir simple et évident d'utiliser le langage).

+2 -0

Alors que Perl avait une base d'utilisateur tres conséquente au début du développement du net, aujourd'hui ce marché est occupé par d'autres acteurs qu'il va être difficile a déloger

Je suis complètement d'accord avec ça. C'est le premier langage avec lequel j'ai "travaillé" dans le web d'ailleurs.

Là où PHP a gardé son statut, où Ruby s'est tourné vers Rails, Java a développé sa propre pile d'outils très "business/métier" etc. Perl est resté derrière.

En y repensant récemment, je me suis demandé quel secteur aurait pu occuper Perl dans tout ce petit monde du web. A la réflexion, je pense que c'est dans les micro-services (Undertow, Bottle, …) qu'était sa place, clairement.

Logstash est un bon exemple d'un truc pour lequel Perl aurait été très bon. C'est le premier qui m'est venu à l'esprit. Un moteur d'indexation très bas niveau , du lourd traitement sur des chaînes de caractères, filtrage, …

Quand on voit des solutions comme Vert.x, Ratpack, Netty etc. très orientées "web bas niveau" : en gros des surcouches très fine au-dessus d'HTTP pour gérer des monceaux de requêtes avec une simplicité enfantine (fini la gestion du multithreading etc) c'était là-dedans qu'était la place de Perl. Mais il n'est pas encore trop tard.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte