Perl est-il encore une langue utile et viable? [fermé]

77

Je sais que cela a peut-être déjà été demandé, mais ici rien ne va ...

Perl est-il encore quelque chose qui pourrait être considéré utile? Si quelqu'un était un nouveau programmeur (complètement nouveau dans la programmation ou juste quelques mois / années d'expérience), Perl aurait-il quelque chose à considérer qu'il valait la peine d'apprendre?

Perl est-il toujours utilisé avec la fréquence? Est-ce toujours populaire?

Ou bien Perl est-il en train de mourir comparé à des langages comme Python, Ruby, PHP, ASP.NET, etc.?

En gros, cela se résume à ceci:

  • Est-il toujours utilisé / est-il toujours utilisé fréquemment? Si oui, est-ce qu'il meurt? Si non, cela fera-t-il un retour?
  • Est-ce quelque chose qui mériterait d'être appris?
  • Comment se compare-t-il dans la demande à des langues telles que Python, à la fois en popularité et en convivialité / viabilité? Des langages comme Python ou Ruby pourraient-ils être considérés comme des remplaçants de Perl?

De plus, les nouvelles versions de Perl apporteront-elles vraiment une amélioration importante à la communauté Perl, et ramèneront peut-être Perl au niveau supérieur par rapport à d'autres langues?

MODIFIER:

Ok, je suppose que voici une meilleure question reformulée:

Perl continue-t-il à se développer ou est-il en train de "mourir"? Est-ce toujours une langue qui mérite d'être apprise et utilisée? Quels projets "brille-t-il vraiment" par rapport aux autres langues? Qu'est-ce qui fait de Perl une langue à choisir? Essentiellement: la croissance de Perl est-elle obsolète par rapport à d'autres langues, et si tel est le cas, vous attendez-vous à ce que cela change ou continue?

Et merci à tous ceux qui ont répondu jusqu’à présent, la discussion a été vraiment intéressante!

Bob
la source
12
Ne perdons pas de vue le sujet, selon TIOBE, il figure toujours dans le top 10, devant Ruby et même JavaScript.
Daniel

Réponses:

60

Tout d’abord, il est toujours préférable de lever l’ambiguïté .

Les entreprises parlent de Perl 5 lorsqu'elles parlent de Perl, mais dans un pays lointain, au - delà d' une île aux idées profondes , la tribu des concepteurs par comité prépare encore une lourde dalle de Perl 6 (et elle est presque prête, avec un moteur Haskell et alimenté par les larmes des dieux )

Cela dit, à quoi sert Perl 5 aujourd'hui?

  • anciens systèmes Web / intrawebs - certains ne mourront pas

  • exploration de données / analyse statistique - le moteur Perl regex, même s’il est légèrement obsolète , ( PCREune bibliothèque vrillée , l’ aplatit de toutes les manières possibles et que c’est le PHPmoteur par défaut ) est toujours bon pour une analyse simple

  • Administration système UNIX - Perl doit toujours être installé sous UNIX.
    Vous pouvez compter sur sa disponibilité même sur Mac OS X.

  • prototypage de réseau - de nombreux experts en réseaux ont appris Perl à la mode; et ils font toujours leurs preuves de concept avec.

  • sécurité - de nombreux experts en sécurité ont également besoin de prototypage rapide . (et correctifs automatisés rapides) Perl peut couvrir et couvre cela.

La vaste collection CPAN est très pratique pour traiter des prototypes.
(Les piles peuvent ne pas être incluses, mais elles sont toujours là, sur l'étagère )

N'oubliez pas les inconvénients , cependant:

  • La prise en charge des objets en Perl est difficile , vous bénissez les références et faites des choses impies au nom des objets, puis vous vous demandez pourquoi vous avez pris tous les problèmes en premier lieu.
  • Lire le Perl des autres est plus qu’un métier, c’est une science , mais aussi une douleur .
  • Perl est chouette, ça vous fait penser malin, ça vous fait sentir chouette, vous devenez un rockstar de la programmation . Maintenant, songez à vous lever et à aller travailler dans un bureau rempli de rockstars : c'est un "bateau qui déchire" . Attendez-vous à des fluctuations sauvages.
ZJR
la source
19
@WorldEngineer a accepté, mais le pire à ce sujet est que, venant de Perl, Ruby ne se sent pas chiche du tout: c'est comme une version de Perl muette et peu performante.
ZJR
12
Je n'y vois qu'un seul inconvénient. Personnellement, j’ai plaisir à bénir mes références, mais pour ceux qui ne le font pas, il y a Moose (sur CPAN), qui est un système d’objet assez bon pour que d’autres langues le copient. Et bien que j'aime la niftiness, je n'ai pas rencontré autant de rockstars obsédés par le moi-même dans le monde de Perl. Il existe dans la communauté Perl des développeurs beaucoup plus sérieux et disciplinés (qui adorent jouer au rock pendant leurs temps libres) qu'il n'y a de rockstars. (Je nie explicitement d'être programmeur de rock star jusqu'à ce que les femmes commencent à me jeter leur culotte pendant que j'écris du code.)
Dave Sherohman
3
@johannes dois encore traiter avec la loi Van Rossum: "Whenever you find a python executable preinstalled, it's the wrong version"Corollaire:"sometimes the right version is available, but it has the wrong name"
ZJR
2
Perl est également toujours très important dans le domaine de la bioinformatique.
dietbuddha
3
+1 pour l'administration du système. Je n'ai jamais vu un système d'exploitation basé sur Unix n'incluant pas Perl. Je l'ai même vu dans certains systèmes d'exploitation Linux embarqués qui utilisaient Busybox pour leurs
zones d'
23

À mon avis, après avoir travaillé de nouveau avec Perl après quelques années de non utilisation, il est meilleur que jamais. Perl 5 a beaucoup de génialité dans CPAN, même OO peut être fait maintenant. (Jetez un coup d'œil à Modern Perl )

Perl 5 est loin d'être mort. Il suffit de jeter un coup d’œil sur certains sites Web Perl et CPAN pour découvrir un tout nouveau langage: Perl 6.

Il existe de nombreuses ressources sur le Web, blogs et présentations expliquant pourquoi ce n’est pas mauvais et pourquoi il a une mauvaise réputation qu’il ne mérite pas - il suffit de regarder ces ressources pour mieux comprendre.

Nornagest
la source
7
À mon avis, CPAN est idéal si vous avez besoin d’une roue de n'importe quelle forme, mais d’autant moins si vous avez besoin d’une usine automobile.
@ ThorbjørnRavnAndersen CPAN est idéal si vous avez besoin d’une roue de toute forme. Le problème est que ce shape($wheel) == 'round' ? available_in_cpan($wheel) : false;n'est pas un filtre valide.
Jason Lewis
Ce n'est pas parce que OO existe en Perl que c'est vraiment bon.
Kirbyfan64sos
22

Le principal atout de Perl est CPAN - il existe tellement de modules pré-écrits qu'il est très facile de trouver quelque chose dont vous avez besoin.

Cela dit, je n’apprendrais pas Perl. Perl est un très bon langage pour les gens qui le connaissent déjà (comme moi), mais Python semble être (du point de vue de mon outsider) un meilleur langage pour faire le genre de fichiers et textes d'analyse rapides et sales qui " go-to "langue pour.

Peter Mortensen
la source
Et pensez-vous que cela lui donne un avantage contre d’autres langues? Ou cela ne fait-il que l'égaler à d'autres langues. Par exemple, le framework .NET semble également contenir de nombreuses méthodes et classes utiles.
Bob
6
@ Paul Tomblin - C'est une façon plutôt grossière de le dire. "La principale chose que perl a encore à faire pour ça ..." <- La principale chose que le C / C ++ souhaite, c'est que beaucoup de logiciels y sont encore écrits. En plus de ça, ce sont des ordures.
Rook
D'accord avec Idigas, puisque vous pourriez en dire autant à propos de Java ayant beaucoup de paquets ...
Izkata
1
La question n'était pas "C ++ ou Java sont-ils un bon langage". La question était de savoir si Perl était toujours viable. Et il y a deux raisons pour lesquelles j'écris toujours mes applications Web en Perl: CPAN et j'ai une tonne de code que j'ai déjà écrit.
Paul Tomblin
7
Si je commençais maintenant, j'utiliserais probablement Python. Mais j'utilise Perl parce que je suis bon en Perl.
Paul Tomblin
19

Lorsque j'ai décidé d'apprendre le Perl comme langue maternelle il y a quelques années, plusieurs facteurs ont guidé ma décision:

  • Existe-t-il beaucoup de matériel de référence sur la langue?
  • puis-je facilement trouver de l'aide pour mes questions?
  • la langue est-elle utilisée activement par une population nombreuse et diversifiée?
  • Existe-t-il des projets actifs qui m'aideront à atteindre mes objectifs?

Pour moi, la réponse était oui. Je suis un graphiste. J'ai appris le HTML et le CSS il y a des années, mais je devais améliorer mes compétences après que les clients en voulaient plus de leurs sites Web. J'avais utilisé divers frameworks php qui m'avaient donné le bogue pour vraiment apprendre à programmer. J'ai fait beaucoup de recherches et trouvé des projets bien soutenus comme Template Toolkit ainsi que de nouveaux projets tels que Perl Dancer et Mojolicious. La documentation fournie avec Perl a été très utile, de même que la bibliothèque de publications.

J'ai trouvé les listes de diffusion Perl plutôt conviviales pour les débutants et les actifs. Sur PerlMonks, des personnes du monde entier posent des questions et répondent à un large éventail d’applications. Il existe plusieurs sites d'actualités Perl, blogs et flux actifs. Ces ressources m'ont beaucoup appris sur Perl et la programmation.

Certes, c'est mon expérience. Je ne sais pas exactement combien de personnes se connectent à ces sites, s'abonnent aux listes de diffusion ou construisent leurs applications Web, par exemple à l'aide de Perl. Je ne peux pas non plus dire à quel point mon expérience aurait été meilleure ou pire si j'avais choisi une autre langue pour commencer. Je ne doute pas que j'ai pu trouver beaucoup des mêmes aspects positifs dans les communautés d'autres langues. Je peux dire que je suis toujours satisfait du choix que j'ai fait.

luis.roca
la source
J'ai appris le Perl comme langue maternelle en 1996 parce que je venais de passer de Windows à Linux pour mon système d'exploitation principal. Perl n’a jamais été un langage Web génial (bien que PHP soit la pure synthèse de tout le mal que Perl a à offrir), mais c’est fantastique en remplacement des scripts bash. Le problème survient lorsque les gens prétendent qu'il existe une solution miracle.
Jason Lewis
16

La popularité d'une langue a très peu à voir avec sa viabilité ou sa convivialité. Perl est encore une langue très utilisable. Sa réputation, méritée ou non, d’être hostile aux débutants signifiait que plus personne ne l’apprendrait s’ils pouvaient l’aider. La seule raison pour laquelle je ne l'utilise plus, c'est que personne d'autre que je connais ne l'utilise plus.

Karl Bielefeldt
la source
5
Ainsi, l'affirmation "La seule raison pour laquelle je ne l'utilise plus, c'est que personne d'autre que je connais ne l'utilise plus", ce qui indique que la popularité a peut-être quelque chose à voir avec sa viabilité ou sa facilité d'utilisation. Quoi qu'il en soit, ce n'est pas le but de ma question. Ce que je veux vraiment savoir, est-ce que Perl est toujours utile? Quand le choisis-tu par rapport à d'autres langues (comme dans le cas où ça brille vraiment)?
Bob
1
Les langues existent comme moyen d’expression pour les autres, affirmant que la popularité d’une langue par rapport à la valeur qu’elle présente n’est pas fondée, à mon avis.
gaffes
4
C’est très basé sur l’environnement ... Si vous êtes un administrateur système * nix, vos choix pour accomplir des tâches courantes se résument à Perl, par opposition à sed + awk + grep + bash ... et Perl est généralement plus facile que de rappeler 4 syntaxes script unique.
Jason Lewis
12

Pour la petite histoire, je programme en Perl 5 depuis environ 15 ans, alors je suis un peu partial. Cela dit, j'aime beaucoup Perl. N'écoutez pas les opposants et ne pensez pas que son âge est en quelque sorte un indicateur de sa durée de vie. La meilleure façon de regarder Perl est de le voir en comparaison avec d'autres langues:

  • PHP - PHP est un très bon langage de programmation Web; ne vous méprenez pas. Mais ce n'est qu'un langage de programmation Web. Même les applications Web ont besoin de leurs tâches cronales pour effectuer des processus de nettoyage, et vous devez faire des choses étranges pour que cela se produise. Peu importe d'avoir à écrire un script rapide pour administrateur UNIX ou à analyser un fichier texte. De plus, PHP n'a pas de CPAN.

  • Ruby - La langue est trop nouvelle et "script kiddie" à mon goût. La seule chose que j'ai entendu parler de Ruby, c'est Ruby on Rails. Perl a Catalyst et Dancer (en tant que frameworks MVC), qui sont de foutus bons MVC, mais ce n’est pas la pierre angulaire du langage. Tu ne vas pas trouver "Ruby" comme une exigence dans les offres d'emploi de si tôt (si jamais). De plus, Ruby n'a pas de CPAN.

  • Python - Dans les mots de Larry Wall, Python est juste de l'huile de serpent. Python se préoccupe des espaces et le dernier langage que j'ai utilisé était le BASIC. En outre, comme BASIC, il a été conçu pour être un langage de débutant facile à utiliser. Enfin, pas de CPAN ici.

  • Java - Java est un langage enfant à problèmes. Le concept était d'avoir cette machine virtuelle qui fonctionne sur n'importe quelle plate-forme, mais en raison de l'énorme popularité de la langue dans les cours du niveau collégial, vous voyez les applications Java partout où elles ne devraient pas être. Par exemple, les applications Web internes au serveur ne devraient pas exister. C'est un serveur unique avec les spécifications qu'ils définissent et il est emballé dans une machine virtuelle séparée avec une empreinte mémoire limitée. Java est gonflé et ils n'ont pas de CPAN.

  • C # - En fait, j'utilise assez souvent ce langage et j'ai semblé avoir créé une relation amour / haine avec ce dernier. Pouvoir surcharger des méthodes avec différents paramètres est cool et amusant. Mais si vous voulez un langage qui va chier à chaque ligne de code sur le transtypage , alors C # est fait pour vous. Mon dieu, il veut que vous mettiez le casting explicite PARTOUT! Faire des cours est amusant, mais vous réalisez soudainement que vous passez plus de temps à faire des cours pour rendre ce foutu langage simplement WORK que pour écrire du vrai code.

    De plus, C # n'a pas ... d'accord, il a .NET, qui est vraiment bon et complet. Cependant, j'aime toujours mieux CPAN, car vous pouvez toujours écrire vos propres modules et vous plaindre de l'auteur à propos d'un bogue ou d'un défaut de conception. Et ils sont tous gratuits. De plus, Perl travaille dans le futur sur Perl.NET, nous pourrions donc concevoir des applications Windows avant longtemps.

Perl est une excellente langue qui a:

  • Expressions régulières - Si Perl sait bien faire, c’est la manipulation de texte. Oui, beaucoup de langues ont des expressions régulières, mais Perl les a pratiquement inventées, et il y a une raison pour laquelle grep a un mode "Expression régulière Perl" ou pourquoi Oracle a une section "Extensions influencées par Perl dans Oracle Expressions régulières". Il est intégré et ne nécessite aucun module.

  • Flexibilité - Vous avez trois types de variables de base: Scalars, Arrays et Hash. C'est ça. C'est tout ce dont vous avez besoin. Vous n'avez pas d'int, d'octet, de chaîne ou de cette merde. Perl le comprend très bien. Et vous pouvez utiliser toutes les références que vous voulez sans craindre les fuites de mémoire ou le blocage complet du PC. La langue fonctionne juste.

  • Portabilité - Perl fonctionne très bien sur le Web. Cela fonctionne très bien sous UNIX. Cela fonctionne même très bien sous Windows. Il ne s'agit pas d'une seule fonction. C'est un touche-à-tout, mais aussi un maître (surtout) de tout.

  • Il est facile de faire beaucoup de choses avec un peu de code - Donnez-moi un fichier vierge de 1 Ko et je peux écrire toutes sortes de choses avec cet espace. Même un Perl one-liner est génial à ajouter à un pipe en ligne de commande.

  • CPAN - Je ne saurais dire à quel point il est bon de trouver tout ce dont vous avez besoin pour quoi que ce soit. Qu'est-ce que "n'importe quoi"? Eh bien, qu’en est-il des modules de base de données pour chaque base de données ou chose que vous puissiez imaginer, allant d’Oracle à iPod en passant par le CSV, d’Adabas à Yaswi? Que diriez-vous de plusieurs serveurs Web complets? Qu'en est-il d'un lecteur de fichiers Excel, d'un module SNMP ou d'un module qui lit les commentaires des lignes de débogage ou de modules qui vous aident à programmer plus rapidement? Un projet que je suis en train de faire actuellement consiste à écrire un générateur de carte Terraria dynamique, à partir d'un module existant appelé Games :: RolePlay :: MapGen. .NET n'aurait jamais quelque chose comme ça.

    De plus, l'installation de n'importe quel module via CPAN est un jeu d'enfant. Obtenez-le de Debian. Installez-le directement depuis CPAN. C'est aussi efficace qu'apt-get dans la résolution des dépendances. Je n'ai aucun problème à dire à mon administrateur système d'installer le module X à partir de CPAN, puisqu'il ne s'agit que d'une simple commande one-liner.

Oui, cela a ses défauts, et oui, je suis partisan de cela, mais vous avez probablement déjà entendu les négatifs trop souvent. Ils ne l'emportent pas sur les points positifs, pas de loin.

Brendan Byrd
la source
14
-1 principalement pour ne pas reconnaître que d'autres langues disposent d'outils aussi bons sinon meilleurs que CPAN. Maven Central pour Java par exemple? Il contient plus d'artefacts que CPAN et l'installation des artefacts Maven est une couche 0 car ils sont automatiquement identifiés via une analyse de dépendance du modèle d'objet de projet. De plus, j'ai moins d'expérience avec Ruby Gems mais je pense qu'elles sont à peu près équivalentes à CPAN.
Mikera
8
PHP a poire. Et ce n'est pas seulement un langage de programmation Web.
MattBianco
25
Je ne dirais pas que vous êtes un peu partial. Vous êtes clairement biaisé. Je ne peux pas croire que l'on puisse mépriser Python principalement parce qu'il a beaucoup d'espace et parce que Larry (certainement pas une source objective ici) a utilisé l'expression huile de serpent. Et il n'y a aucune offre d'emploi pour Ruby? Quand avez-vous vu le marché du travail pour la dernière fois? Au moins, faites des efforts pour essayer d'établir les références de Perl.
Muhammad Alkarouri
6
-1 pour une perspective clairement biaisée et non recherchée sur d'autres langues. Je suis d'accord que Python est de l'huile de serpent, mais Ruby == "script kiddie" est absurde. Je n'ai jamais vu une tentative d'intrusion basée sur Ruby sur l'un des serveurs que je gère. C'est principalement du Python. PHP est un langage de programmation acceptable dans tous les sens? Shenanigans. Vos commentaires sur C # démontrent une naïveté stupéfiante en ce qui concerne la dactylographie et / ou l'orientation objet. S'en tenir à Perl, mon pote. Sérieusement, j'aimerai toujours Perl car c'est mon premier «vrai» langage de programmation et il est brillant pour les tâches administrateur système, mais cette réponse est pire que mauvaise.
Jason Lewis
8
+1 Pour distinguer toutes les langues que j'ai jamais aimées (ou détestées) - à l'exception de Perl, bien sûr. :-)
jpaugh
12

La performance est l’une des principales raisons d’opter pour perl. Comparé à Python, Ruby ou l’un des langages de script basés sur JVM, il est extrêmement rapide.

C'est pourquoi il n'a jamais été remplacé dans l'espace de data mining, toutes les autres langues (freebie) sont plus lentes lorsqu'il s'agit de traiter de gros volumes de données.

James Anderson
la source
6
Pouvez-vous fournir un support / des critères pour cette affirmation? Il me semble que les derniers repères que j'ai vus pour Perl vs. Ruby / Python favorisaient ce dernier, en particulier. en incluant des implémentations alternatives de ce dernier.
Jason Lewis
2
Toute remarque sur les performances doit être une généralisation, sauf si des versions et des environnements spécifiques sont cités. Beaucoup de points de repère - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… sont assez typiques. Vous avez raison, les dernières versions de ruby ​​sont assez rapides, mais perl propose régulièrement des versions "d'amélioration des performances", de sorte que vous ne devriez pas avoir de problème à suivre. LUA bat tout.
James Anderson
Lua est assez flamboyant.
Jason Lewis
12

Perl a sa place. Sa "mauvaise réputation" est généralement due au fait qu'il vous permet une grande flexibilité pour faire des choses qui devraient vraiment être faites avec un outil différent.

Si vous vous posez la question "Qu'est-ce que j'essaie de réaliser? Et existe-t-il des outils appropriés pour y parvenir?" alors vous faites partie du chemin.

Si vous écrivez un script rapide, l'utilisation d'un langage de script est logique. Si vous souhaitez créer une application complexe, vous pouvez "l'écrire" en Perl, mais vous ne devriez probablement pas le faire.

Cependant, étant donné que votre question concerne un nouveau programmeur, permettez-moi de laisser Perl seul pour le moment. Tout simplement parce que vous apprendrez moins de mauvaises habitudes dans une langue moins souple.

Ptolemy
la source
3
Bien, Python est une option parfaitement viable pour créer un script rapide également, mais vous pouvez également l’étendre pour créer des programmes plus volumineux. N'est-ce pas la même chose pour Perl? Cela rend-il Python meilleur que Perl?
Bob
@Bob: Je pense que c'est principalement ce que vous avez l'habitude d'écrire et votre goût. Parfois, il existe aussi une bibliothèque perl très pratique que vous n’avez pas en python et vice-versa.
Dagnelies
1
@Bob: Je lui suggérerais d'essayer d'abord python, c'est plus convivial pour les noobs. Ensuite, je lui dirais de choisir une langue complètement différente comme langue seconde, telle que Scheme.
dagnelies
1
@Bob: l'intégralité de la structure .NET n'est disponible que sous Windows. Dans l’espace Unix / Linux, Perl est un excellent langage pour remplacer les scripts shell, effectuer l’administration système et tout ce qui nécessite beaucoup de traitement de texte et pas beaucoup d’autres choses. Il fait des choses directement pour lesquelles (la dernière fois que j'ai regardé) Python avait besoin d'un peu de structure. Cela fait généralement de Perl un pire langage de programmation général, mais de meilleure qualité pour ses applications plus spécialisées.
David Thornley
1
@Bob En fait, c'est un point intéressant. Perl est vraiment utile si vous avez un script shell qui limite les limites de bash. Perl le gère assez facilement, puisque vous pouvez simplement mettre des backticks autour de la plupart des commandes et que cela fonctionnera toujours.
Stephen Gross
12

Python m'a attiré par sa structure - la structure de bloc est "ce que vous voyez est ce que vous obtenez" - et je ne comprends pas pourquoi certaines personnes sont choquées. Je pense que c'était, et c'est une bonne idée.

Je suis retourné à Perl, cependant. Cela semble simplement mieux pensé comme un outil pratique. En théorie informatique, Python et Ruby sont "meilleurs". Mais je travaille dans le monde réel.

Ruby et Python sont plus à la mode chez les enfants fraîchement sortis du collège. La plupart des programmeurs qui sont sur Facebook suivront la mode actuelle et choisiront Ruby ou Python. L'article original illustre ceci: il associe "Est-ce la peine" avec "Est-il toujours populaire?"

Je ne sais ni me soucie de savoir si Perl est "populaire" dans un monde Facebook. C’est probablement le langage de script le plus utilisé par les personnes qui accomplissent beaucoup, ce qui est très différent. Certains des commentateurs qui pensent que leur langue préférée possède une ressource comparable à CPAN ne savent pas à quel point le CPAN est large et profond.

utilisateur83421
la source
5
Les espaces significatifs sont une idée terrible. A toujours été, sera toujours. Cela dit, bien que j'utilise Ruby partout où cela a du sens, il me reste quelques scripts Perl pour les tâches d'administration système que je n'ai aucune raison de réécrire dans Ruby. Pourquoi? Ils fonctionnent très bien et ils se trouvent dans la zone de prédilection de Perl. Pourquoi créer plus de travail?
Jason Lewis
1
Forcer les utilisateurs à indenter correctement est une bonne idée, quelle que soit la langue. Les meilleurs langages (comme Python) appliquent simplement plus de force.
Brendan
10

Perl est LA langue pour écrire des outils à usage unique. Il existe diverses autres applications où Perl est plus ou moins persistant et utile, mais s'il vous manque une commande shell pour faire une chose étrange, si vous avez besoin d'un stub pour récupérer des données d'un socket impair, si vous avez un fichier journal ou un fichier. base de données et devez extraire du contenu d’une manière qui n’est pas à la portée de SQL, si vous devez extraire quelques images du serveur ou si vos modèles de page Web contiennent tous le même type d’erreur et veulent tous les réparer - coup de fouet Un script Perl de 10 minutes est la solution.

Écrire la même chose dans Shell serait probablement possible, mais en raison d'étranges réserves de syntaxe, cela prendra plus de temps et peut être beaucoup plus difficile. Écrire cela dans n'importe quel langage "professionnel" comme C ++, C #, Java, etc. prendra environ une heure en comparaison. L'écriture dans un langage de script concurrent tel que Python, Ruby ou PHP est une alternative viable et prendra probablement jusqu'à 20% plus de temps à écrire.

Oui, les programmes dans d'autres langues seront plus faciles à gérer et à lire. Mais si vous avez besoin d’une solution MAINTENANT, Perl est la solution.

SF.
la source
8

Découvrez les « ajouts récents à CPAN » - la page . Chaque jour, plus de 20 nouveaux modules ou modules mis à jour sont téléchargés. Je pense que le nombre moyen de téléchargements quotidiens a augmenté lentement mais régulièrement. Cette activité est-elle le signe d'une langue en train de mourir? Non!

Cela m'impressionne toujours de voir comment certains modules importants (pour la programmation Web, par exemple, ou les interfaces avec les pilotes de SGBDR) ont été maintenus et améliorés au fil des ans. Souvent par l'auteur original ou par de nouveaux responsables. Cela a souvent créé un code très mature.

Pour intégrer un module dans CPAN, les auteurs sont encouragés à faire beaucoup pour maintenir la compatibilité en amont (avec les versions antérieures de Perl 5) ainsi que l’indépendance de la plate-forme. Voir par exemple http://matrix.cpantesters.org/?dist=DBI (DBI = interface de base de données, couche d'abstraction)

Aussi le langage lui-même: je suis un peu perplexe devant toutes les nouvelles fonctionnalités incluses dans le langage depuis 5.10, 5,12., 5.14. Je n'ai pas appris à tirer parti des nouvelles fonctionnalités. Perl a évolué trop vite pour moi!

minute
la source
7

J'ai appris Perl 4 et 5 en effectuant l'administration système dans les années 90. Aujourd'hui, je fais de la programmation Java (où invoquer Perl n'est généralement pas souhaitable) et j'utilise encore Perl de temps en temps sur mon ordinateur de développement. Il s’agit en général uniquement d’analyser les données dans les fichiers journaux, où les expressions rationnelles dans Perl et l’échafaudage pour l’analyse de texte dans Perl facilitent la tâche sur une ligne de commande.

Essentiellement, je l'utilise aujourd'hui comme un awk sur les stéroïdes. Pour cela c'est brillant.

L'une des caractéristiques de Perl est qu'il existe plus d'une façon de faire presque tout. Cela vous permet de choisir celui qui correspond à votre façon de penser - ce qui est formidable lorsque vous piratez ensemble un ou plusieurs éléments, mais pas aussi génial lorsque vous devez comprendre le code Perl des autres peuples car ils choisissent généralement un autre moyen de le faire qui correspond à leur façon de penser.

Je considérerais Perl comme un outil très utile que vous voudrez peut-être apprendre si vous vous concentrez sur ce que les expressions régulières peuvent faire pour vous aider à parcourir vos fichiers texte. Éloignez-vous de tout ce qui a trait aux objets.

utilisateur1249
la source
Donc, vous diriez que c'est surtout utile pour les scripts rapides pour gérer le texte?
Bob
A mon avis oui, alors c'est vraiment, vraiment bien. Il peut aussi faire d’autres choses, mais celles-ci ne sont pas aussi bien cuites.
1
Bien que Perl maîtrise très bien le texte avec ses expressions régulières, il n’est pas nécessaire de le parcourir si vous connaissez Python ou Ruby (ou peut-être PHP), je dirais, car ils sont également très bons avec les expressions régulières. Python est un peu plus verbeux, mais il est également plus propre.
Eric O Lebigot
@EOL, mais ni Python, ni Ruby, ni PHP ne peuvent dominer l'échafaudage pour le traitement de texte par les rédacteurs. Voir par exemple l'option "-i".
@ ThorbjørnRavnAndersen: Accord, pour un paquebot: Les oneliners de Python (option -c) sont en effet plus longs. :)
Eric O Lebigot
7

Pendant un certain temps, le développement de Perl5 a stagné en raison de l’attention accordée à Perl6, qui a entraîné un long délai entre la publication de la version 5.8 et la version 5.10. Depuis lors, la communauté a vraiment commencé à réaliser que Perl5 et Perl6 étaient deux langues différentes et que de nouvelles versions très régulières ont récemment été publiées.

Perl a récemment remporté un concours d’applications Web utilisant Catalyst (bien que je préfère Mojolicious ) et certaines des nouvelles pratiques de Modern Perl apportent à Perl beaucoup d’idées plus simples d’OO plus propres, avec des éléments tels que Moose.

À mon avis, en tant que développeur Perl, Perl a un bel héritage et un avenir prometteur, car il ne s'agit pas uniquement de la bande conductrice qui unit les réseaux d'entreprise, mais également d'une place dans la nouvelle actualité des applications Web.

AFresh1
la source
3

Je ne suis pas un programmeur expert. Mais j’ai trouvé Perl assez facile à apprendre (j’ai utilisé le livre de chameaux), toujours un plaisir, et PerlMonks est la communauté d’aide la plus sympathique du monde de la programmation. Perl semble avoir perdu son sex-appeal en termes d’embauche de Ruby et de Python, mais seulement dans certaines industries (Web en particulier).

isomorphismes
la source
3

Si vous connaissez Perl, il est plus facile d’apprendre Powershell de Microsoft. En ce qui concerne la syntaxe de powershell, elle n’a pas de racine Perl , mais Powershell a emprunté au langage Perl de nombreuses caractéristiques et concepts, par exemple, la variable $ _, les variables préfixantes avec @ et les chaînes / valeurs scalaires avec $, conventions de fichiers pour nommer et stocker les modules et, d'une certaine manière, le chargement automatique, pour n'en nommer que quelques-uns.

Donc, si vous connaissez Perl, cela vous sera utile et il sera un peu plus facile d'apprendre Powershell, de comprendre l'état d'esprit de Powershell ou de conserver l'idiome de Powershell dans votre mémoire à long terme. Rencontrer Powershell sans un fond en perl est probablement un peu plus étrange. Je dis juste.

Bien sûr, le langage Powershell a ajouté de nouveaux éléments, notamment son convivialité .NET, et il n'a pas poursuivi les fonctions / opérateurs de perl offrant une "compatibilité ascendante" avec les outils de ligne de commande unix.

knb
la source
2

Grant McLean vient de mettre en ligne un court film basé sur l'évolution de mapofcpan.org , montrant la façon dont le réseau CPAN évolue au fil du temps avec un affichage visuel de style carte. C'est assez explicite sur la vitalité de la communauté. Ne pas mourir.

Perl souffre sûrement de sa mauvaise réputation, à cause de nombreuses légendes et parce que sa communauté ne veut pas et ne cherche pas à en faire le langage de programmation le plus hippique du monde. Il est très difficile de comprendre pourquoi tant de gens sont absolument convaincus que c'est un langage horrible. Vous pouvez écrire du code effrayant avec n'importe quelle langue. Perl a les meilleures pratiques comme n’importe quel autre langage, il vous suffit de l’implémenter de différentes façons .

Je peux voir une très triste raison à cette mauvaise réputation: pendant longtemps, les sites Web des communautés Perl ont eu de très mauvais designs d’UI (tout comme perlmonks.org, par exemple). Personnellement, je m'en fiche complètement , peut-être que je viens même à Perl pour cette raison: pas beaucoup d'interface utilisateur à la mode pour les sites Web, mais vous pouvez faire confiance aux outils, à la communauté avec beaucoup plus de foi parce qu'elle n'essaie pas sois plus belle qu'elle ne l'est. Cependant, les outils de qualité ne signifient pas que vous ne devriez pas vous concentrer sur l'apparence, et c'est finalement une sorte d'erreur de ne pas prendre soin de l'apparence.

Par exemple, un de mes amis (qui aime les langues les plus en vogue) m'a dit que le logo actuel de Perl6 était horrible et qu'il serait difficile d'attirer de jeunes personnes vers Perl. Beaucoup plus un problème qu'avec une pierre brillante ou tout autre logo bien conçu .

Je pense que c’est une très mauvaise raison d’impopularité, mais c’est ce qui gouverne le monde.

Sebf
la source
Si vous n'allez pas porter une attention particulière aux détails de votre logo, pourquoi devrais-je présumer que vous allez vous soucier des détails plus en détail dans votre langue? Ce n'est pas simplement que le logo a mauvaise mine, c'est que le mauvais logo est symptomatique d'une culture qui ne valorise pas la façon dont les choses sont présentées, et qui renforce le stéréotype derrière toutes les blagues «n'écrivez que le langage»
Racheet
J'ai entendu parler de personnes qui travaillaient sur la mauvaise réputation. Ces personnes sont des défenseurs du développement moderne en Perl et des tests. Des sites Web tels que builtinperl.com , questub.io changent la manière dont nous devrions considérer le cas Perl. Duck Duck Go est aussi un énorme succès, personne ne peut dire qu'il ne se soucie pas de la façon dont les choses sont présentées. Même metacpan.org a été un moyen de donner une nouvelle expérience à l’utilisateur de CPAN (la principale force de Perl) en affichant du code, de la documentation et des modules de recherche avec une belle interface utilisateur. Je ne crois pas aux logos des langues: C a-t-il un logo? Une langue n'est pas une marque.
smonff
1

Perl n'est certainement pas en train de mourir. Il n’a jamais été aussi excité que d’autres langues.

S'il est vrai que Perl est un ancien langage, il possède une communauté dynamique et très productive, dont la valeur réside dans la bibliothèque CPAN. Je ne pense pas qu'aucune langue ait une bibliothèque aussi étendue et complète que CPAN. Rien ne vient même près. Dans CPAN, vous trouverez des milliers de modules et de cadres qui font à peu près tout ce que vous pouvez imaginer. Besoin d'un serveur web? Il y a HTTP :: Serveur. Besoin d'une base de données autonome? Il y a Muldis :: DB. Quels que soient vos besoins, vous trouverez généralement plusieurs modules qui répondent à vos besoins. Il vous suffit de choisir celui qui convient le mieux à votre application.

Pour ce qui est de Ruby, Python et d’autres concurrents, je pense que la saine concurrence a été un avantage considérable pour Perl. Tout ce que les autres langues ont eu, la communauté Perl a réécrit en Perl. Par exemple, lorsque Ruby était sur le succès de Rails, Perl a obtenu Dancer, qui est à bien des égards meilleur que Rails.

Perl n'est définitivement ni mort ni mourant. Il n'y a rien d'incroyable autour de ça, aucune entreprise, qui gagnerait à mettre en scène Perl, de sorte que les médias ne retiennent pas beaucoup l'attention, et que tous les enfants ne connaissent pas Perl, alors on en parle moins.

Cela fait plus de 6 mois depuis votre post original. Au cas où vous ne l'auriez toujours pas décidé, rendez-vous service et apprenez Perl.

Rox
la source
0

J'utilise Perl pour le développement de jeux Web depuis les années 90 et, après une pause de trois ans, je suis d'accord avec l'affiche précédente. Je reviens et trouve qu'il a évolué bien au-delà de l'endroit où je l'ai laissé.

Est-ce mourir? Aucune chance.

Est-ce utile? Je serais perdu sans cela. Peut-être que c'est juste moi, mais d'après les autres réponses, je dirais que c'est un être vivant très actif.

Guruchild
la source
-6

J'ai acquis l'essentiel de mon expérience professionnelle sur le Web avec PHP, mais au fur et à mesure que je devenais un développeur, les choses se compliquaient un peu, de nombreuses tâches que PHP ne pouvait tout simplement pas accomplir ou qu'il faisait d'une manière totalement inefficace. J'aurais pu lever la main, mais au lieu de cela (grâce à Google), je me suis retrouvé dans des sessions ssh en profitant de libreoffice, ffmpeg, imagemagick pour écrire des fonctions de post-traitement pour PHP. Je ne l'ai jamais utilisé avant que je me sente bien pour PERL .. surtout parce que Perl se trouve parfaitement sous la pile de LAMP.

(1) il est préinstallé sur tous les serveurs LAMP ou a au moins un nouveau régime. (2) dispose d'un excellent dépôt CPAN pour vous faire gagner beaucoup de temps. (3) plus rapide / plus sûr d'effectuer des tâches lorsque PHP s'exécutant sur Apache échoue. (4) très similaire à PHP et facile à apprendre.

Mélangez des idées avec PHP, cuisez avec PERL en utilisant BASH à votre guise, basculez selon MySQL, puis utilisez HTML5 et un peu de jQuery. C'est une bonne recette.

EDJ
la source
1
Quelque chose pour sauvegarder ces déclarations?
Austin Henley