Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Perl est-il encore un langage populaire ?
Face au dynamisme des communautés PHP, Python et Ruby

Le , par Gordon Fowler

58PARTAGES

1  0 
Mise à jour du 14.04.2010 par Katleen
Sortie de Perl 5.12, tandis que le développement de Perl 6 se poursuit

Le langage open source Perl fait un pas en avant cette semaine avec les débuts de Perl 5.12, malgré le débat autour de son déclin.

De nouvelles fonctionnalité sont au rendez-vous pour faciliter la tâche des développeurs. Par exemple, les mots clés pluggables sont désormais pris en charge. Ce méchanisme s'attache directement au parseur et permet l'implémentation d'un mot clé pour définir la syntaxe du reste du texte.

Perl, langage dynamique, existe depuis 1987 (une éternité dans l'histoire de l'informatique !). Perl 5.0 est apparu en 1994, quelle longévité !

Perl 5.12 se veut également correctif, il fixe la faille Unix qui ne permettait l'affichage des dates que jusqu'en 2038 (après quoi, on revenait en 1970)...

Cette nouvelle sortie arrive alors que l'augmentation du nombre d'utilisateurs du langage se réduit.

Ce qui n'empêche pas la poursuite du développement de Perl 6. En effet, tandis que la plate-forme Perl 5 progresse, on travaille aussi sur Perl 6 depuis 2004.

Mais certaines personnes se lassent d'attendre... Et préfèrent miser sur le développement de Perl 5.

Pourtant, le travail en cours sur Perl 6 est prometteur et bien engagé. Mais Perl 6 Rakudo ne deviendrait une alternative sérieuse à son grand frère que dans quelques années, selon certains experts.

De toutes les façons, une autre mise à jour est prévue bien avant cette date, puisque 2011 devrait voir l'arrivée de Perl 5.14.

Source : Le site officiel de Perl

Lire aussi :
Humour : Les programmeurs en Perl seraient les plus malpolis

Pensez-vous que Perl 6 verra le jour ?

Perl est-il est-il encore un langage populaire ?
Face au dynamisme des communautés PHP, Python et Ruby

C'était en 1998, le PHP existait à peine. Perl 5 triomphait. Une application web s'écrivait en Perl, et en rien d'autre. Le monde de la programmation retenait son souffle et se perdait en spéculations dans l'attente d'un hypothétique Perl 6.

Nostalgie, nostalgie.

Plus de 10 ans plus tard, la sortie de Perl 6 ne crée plus d'évènement ou de raz-de-marée. Cela ne veut pas dire que le langage est "mauvais" (comme dit le proverbe, "ne blâmez pas l'outil si vous ne savez pas travailler", juste que l'attente et la popularité du langage semble s'être effritées au fil des ans.

Pourquoi ?

Certains programmeurs mettent en avant le "marketing". D'après eux, Larry Wall aurait pu (du ?) trouver des noms glamours et continuer une numérotation plus régulière des versions. Bref, Perl serait devenu trop "vintage" pour séduire le plus grand nombre.

"Oh, vous programmez toujours en Perl ?" semble être une phrase de plus en plus entendue. On peut rétorquer que Perl est toujours adapté aux besoins, que tout ce qui est "vieux" n'est pas nécessairement dépassé, etc.

Mais l'idée qui reste est que la nouveauté est ailleurs.

D'autres développeurs – déçus par Perl eux – mettent en avant des raisons techniques. Perl serait "compliqué" avec de nombreux "problèmes internes" difficiles à résoudre. Cette soi-disant complexité viendrait du principe du "There's More Than One Way To Do It" cher aux développeurs Perl.
Qui ne se privent pas, en retour, de mettre en exergue les problèmes inhérents – et bien pires d'après eux – de Python ou de Ruby.

Pourtant, c'est bien Python – de plus en plus puissant malgré le moratoire sur sa syntaxe – qui semble de plus en plus séduire les entreprises. Ruby on Rails ne cesse également de gagner des adeptes.
Quant au PHP, la facilité de sa prise en main en a fait un langage phare.

D'anciens développeurs – véritables Perl fanboys – sont les plus durs.

Pour eux, ce n'est ni la communication de Larry Wall, ni le langage lui-même qui sont en cause. C'est la communauté. Le réseau IRC de Perl serait devenu le royaume de l'incivilité, du mépris et du manque de savoir-vivre.

En déclin ou pas, pour telle ou telle raison, une anecdote ne manquera pas de poser question : la distribution Linux Fedora 12 embarque Rakudo Perl 6.

Fedora 13 sera livrée avec Python 3.

Vraiment rien qu'une anecdote ?

Lire aussi :

Les programmeurs en Perl seraient les plus malpolis

Connaissez-vous les huits opérateurs Perl secrets ? Si ce n'est pas le cas, découvrez-les ici

Les rubriques (actu, forums, tutos) de Développez.com :
Perl
PHP
Python
Ruby
Développement Web

Et vous ? :

Pensez-vous que Perl est sur le déclin ? Ou au contraire que ces compétences sont toujours très demandées par les entreprises ?

Source

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de gorgonite
Rédacteur/Modérateur https://www.developpez.com
Le 02/12/2009 à 19:49
Citation Envoyé par ThomasR Voir le message
Pour en revenir au sujet et à l'exemple de feber, Perl semble être devenu un langage obsolète. C'est le seul dans l'exemple qui ne possède pas de méthode Split sur l'objet String (encore faudrait-il qu'une chaine soit un objet dans ce langage).

clairement cette remarque n'a pas forcement un grand sens, car le monde informatique ne se limite pas à la POO
après, on peut regretter que les aficionados de la POO n'aient pas accès à une encapsulation OO de chaînes de caractères, listant les principales méthodes utilisée dans 95% des cas

mais il faudrait pour cela que le modèle objet de Perl soit mieux normalisé, ou passer par quelque chose de couramment utilisé

plus d'infos sur la POO en Perl http://djibril.developpez.com/tutoriels/perl/poo/

Citation Envoyé par ferber Voir le message
C'est une question que je me pause de temps en temps, mieux vaut 100000 occurrence d'un objet de type "A" ayant une chaine et une méthode( non static ) "b" ou
100000 occurrence d'un objet de type "A" n'ayant une chaine et une methode externe a la classe "A" utilisée pour manipuler les objects de type "A". Selon mes testes (en c# ) il vaut mieux que la méthode soit externe.

pour le coup de la "lourdeur" d'un langage OO avec une "méthode" par objet, ce n'est partiellement vrai que dans les langages OO totalement dynamiques, ou avec un modèle par prototype peu optimisé... l'immense majorité des langages OO sont sur un modèle par classe, et l'utilisation d'une table de méthodes virtuelles évitent d'avoir "une méthode par objet", et associé au JIT ce code sera optimisé, ce qui évitera la double indirection systématique (chose non possible avec les méthodes virtuelles dans un langage natif comme C++, même si on peut faire des choses plus sioux pour arriver à un résultat similaire)

Citation Envoyé par ferber Voir le message

Mais si on sort tout les membres de toute les classes on se retrouve plus vraiment dans de l'orienté objet. Quoi que ça mérite réfléction.

tu reviens à des types enregistrements et des modules de fonctions associés... un autre paradigme, qui a aussi des avantages (mais qui demande une conception différente )
2  0 
Avatar de Jedai
Expert éminent https://www.developpez.com
Le 04/12/2009 à 19:05
Citation Envoyé par djibril Voir le message
Je trouve juste un peu dommage de critiquer des langages de programmation sans en avoir des notions correctes. Et je dit cela pour tous les langages.
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.

Citation Envoyé par Gordon Fowler
la distribution Linux Fedora 12 embarque Rakudo Perl 6.

Fedora 13 sera livrée avec Python 3.

Vraiment rien qu'une anecdote ?
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.

Citation Envoyé par ThomasR Voir le message
Pour en revenir au sujet et à l'exemple de feber, Perl semble être devenu un langage obsolète. C'est le seul dans l'exemple qui ne possède pas de méthode Split sur l'objet String (encore faudrait-il qu'une chaine soit un objet dans ce langage).
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é !

Citation Envoyé par ferber Voir le message
C'est sur.
Mais il permet déjà d'apprécier ou pas le style de syntaxe.
Et me conforte dans l'idée que je n'apprécie pas la syntaxe de perl.
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.

Citation Envoyé par OWickerman
Moi je pense que Perl c'est uniquement pour les vieux, mais comme l'age de la retraite est repoussé chaque année, on va encore en entendre parler un moment.
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 ?

Citation Envoyé par dlusignan
Je pense que la vocation de Perl n'est — de toute façon — pas très orientée web. Pour faire des scripts Shell sur un serveur Linux, il est vraiment fort. Il a été pensé, à la base, beaucoup plus comme un langage d'administration de serveur. Je crois que la raison pour laquelle, il a été mis de l'avant, du point de vue du web à l'époque, c'est tout simplement qu'il n'y avait pas vraiment d'alternative.
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.

Citation Envoyé par teddyalbina
Franchement pour que je revienne sur perl il faudrait un modèle OO potable et aussi le multithreading ainsi qu'une moyen d'écrire des extensions en C++ via une API potable
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.

Citation Envoyé par teddyalbina
des déclarations de fonctions correct donc pas :
Code : Sélectionner tout
sub truc () {  my $self = shift; }
Code : Sélectionner tout
sub () { $this->mavariable;}
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.

Citation Envoyé par teddyalbina
Mais sinon ou en est perl6 ?
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ï
2  0 
Avatar de Narann
Membre habitué https://www.developpez.com
Le 02/12/2009 à 15:15
Je n'ai jamais utilisé Perl mais je sais que je suis passé à Python car il été intégré à Maya (je suis infographiste).

Ducoup ça me fait me demander une chose:

Si perl a perdu des "part" de marché comparé à Python, ne serai-ce pas du au fait que python s'integre facilement à d'autres logiciels, s'offrant une "raison d'y passer" plus valable?
1  0 
Avatar de lex2004
Membre régulier https://www.developpez.com
Le 02/12/2009 à 15:23
Vu le nombre de posts qu'il y a sur ce forum, c'est facile de se faire une idée de la popularité actuelle de Perl.
1  0 
Avatar de luxifer
Nouveau membre du Club https://www.developpez.com
Le 02/12/2009 à 15:33
En même temps je veux pas troller mais 95% des sujets sur ce forum sont soit sur le Java soit sur le .NET alors bon...
1  0 
Avatar de vintz72
Membre actif https://www.developpez.com
Le 02/12/2009 à 15:39
Le problème de Perl, c'est une syntaxe peu (re)lisible et la faiblesse (du moins à l'époque où j'ai côtoyé le langage) de la gestion orienté objet.
En outre, s'étant piqué la vedette sur le Web par Php et Java, il est normal qu'il ne soit plus sous les spotlights.
1  0 
Avatar de ferber
Membre éprouvé https://www.developpez.com
Le 02/12/2009 à 15:56
Code perl : Sélectionner tout
1
2
3
4
5
# perl 
$i=0; 
$informations = "a:b:c:d"; 
@tempChars = split(/:/, $informations); 
print $tempChars[$i];
Code python : Sélectionner tout
1
2
3
4
5
# python 
i=0 
informations = "a:b:c:d"  
tempChars = informations.split( ":" ) 
print tempChars[i]


Code c# : Sélectionner tout
1
2
3
4
5
//c# 
byte i = 0; 
string informations = "a:b:c:d" ; 
string[] tempChars= informations.Split( ":".ToCharArray() ); 
System.Console.WriteLine(tempChars[i]);


Code : Sélectionner tout
1
2
3
4
5
//action script 
var i:int; 
var informations:String = "a:b:c:d"; 
var tempChars:Array = informations.split(":");  
trace(tempChars[0]);

On en conclura ce qu'on voudra
1  0 
Avatar de kaymak
Membre chevronné https://www.developpez.com
Le 02/12/2009 à 16:02
En même temps perl et ces 8 opérateurs secrets, il fait un peu langage de barbu...
1  0 
Avatar de gannher
Membre averti https://www.developpez.com
Le 02/12/2009 à 16:15
Tu veux démontrer quoi ferber ?
1  0 
Avatar de ferber
Membre éprouvé https://www.developpez.com
Le 02/12/2009 à 16:21
Citation Envoyé par gannher Voir le message
Tu veux démontrer quoi ferber ?
Citation Envoyé par ferber Voir le message
On en conclura ce qu'on voudra

Hum je ne pense pas qu'il y ais grand chose a démontrer sur si peu de ligne.
Le but été peut-être juste de présenter/comparer simplement des éléments de base de syntaxe.
1  0