Recherche de site Web

Plongez profondément dans le débat Python contre Perl – Que dois-je apprendre Python ou Perl ?


Souvent, lorsqu'un nouveau langage de programmation est introduit, un débat s'engage parmi certains des esprits géniaux du secteur, dans lequel le langage est comparé à celui qui a déjà ses racines. Une sorte de buzz se propage souvent dans l'industrie informatique et le nouveau est souvent comparé sur tous les aspects, qu'il s'agisse alors de fonctionnalités, de syntaxe ou d'aspects de base du processeur et de la mémoire, y compris le temps GC et tout, avec l'existant du genre.

De nombreux exemples de tels cas peuvent être récupérés et étudiés dans le passé, y compris le débat entre Java et C#, C++, etc. Un de ces cas qui a beaucoup retenu l'attention est le débat entre deux langages qui sont apparus l'un après l'autre en peu de temps, à savoir Python et Perl.

Alors que Python a été initialement inventé comme successeur du langage ABC simplement comme un projet de programmation de « passe-temps » (qui attirerait les hackers Unix/C) pour l'auteur qui l'a nommé d'après le série de sa plus grande star Monty Python.

Lecture suggérée : Premiers pas avec la programmation et les scripts Python sous Linux

Perl existait il y a environ deux ans en tant que langage de script Unix destiné à faciliter le traitement des rapports. C'était un mélange de plusieurs langages, dont C, awk, sed et shell script.

Ce qu'il convient de noter, c'est que ces langages qui ont évolué avec des intentions différentes sont constamment comparés, ce qui m'a amené à étudier et à comprendre les raisons, dont quelques-unes sont énumérées ci-dessous :

  1. Tous deux ciblaient le système d'exploitation Unix, l'un destiné aux pirates informatiques et d'autres pour traiter les rapports.
  2. Les deux sont orientés objet (Python étant le plus) et interprétés, l'un étant fortement typé et clair en matière de codage, c'est-à-dire Python, et l'autre permettant un typage laid avec des accolades pour représenter un bloc, c'est-à-dire Perl.
  3. Les deux sont en principe opposés lorsque nous disons que Perl a de nombreuses façons d'effectuer une seule tâche tandis que Python se concentre sur une et une seule façon de faire les choses.

Python vs Perl – Comparaison des fonctionnalités

Approfondissons ce débat et essayons de comprendre les aspects généraux par lesquels ces deux langues se différencient. Essayons également de découvrir la source de vérité de nombreux clichés qui peuvent être entendus dans l'industrie disant « Python est Perl avec des roues d'entraînement » ou « Python est similaire à Perl mais différent » afin que nous puissions essayer de conclure avec une solution précise à ce débat sans fin.

1. Syntaxe propre de Python et syntaxe complexe de Perl

Python prend un énorme avantage sur Perl en matière de lisibilité du code. Le code de Python est beaucoup plus clair à comprendre que celui de Perl, même en lisant le code après des années.

Avec une indentation représentant le bloc de code et une structuration appropriée, le code de Python est beaucoup plus propre. D'un autre côté, Perl emprunte sa syntaxe à divers langages de programmation comme le  C, les scripts shell et même les filtres awk et sed lorsqu'il s'agit d'expressions régulières.

Lecture suggérée : 15 commandes « sed » utiles pour les tâches quotidiennes d'administration système Linux

En dehors de cela, avec '{' et '}' représentant un bloc de code et l'ajout inutile de ';' à la fin de chaque ligne, le code en Perl pourrait devenir un problème à comprendre si vous le lisez après des mois ou des années en raison de sa part de scripts laids.

2. Prise en charge des opérations du système d'exploitation et des expressions régulières tierces de Perl par rapport à Python

Le langage Perl emprunte sa syntaxe à C et à d'autres commandes UNIX comme sed, awk, etc. grâce à quoi il dispose d'un support regex très puissant et intégré sans importer de modules tiers.

De plus, Perl peut gérer les opérations du système d'exploitation à l'aide de fonctions intégrées. D'un autre côté, Python dispose de bibliothèques tierces pour les deux opérations, c'est-à-dire re pour regex et os, sys pour les opérations os qui doivent être assuré avant de procéder à de telles opérations.

Les opérations regex de Perl ont une syntaxe de type 'sed' qui facilite non seulement les opérations de recherche, mais également le remplacement, le remplacement et d'autres opérations sur une chaîne peuvent être effectuées facilement et rapidement par rapport à Python où une personne a besoin de savoir et rappelez-vous les fonctions qui répondent au besoin.

Exemple : Considérons un programme pour rechercher un chiffre dans la chaîne en Perl et Python.

Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

Vous voyez que la syntaxe de Perl est très simple et inspirée de la commande sed qui profite de la syntaxe de Python qui importe le module tiers 're'.

3. Programmation OO avancée de Python par rapport aux One-Liners de Perl

Une fonctionnalité dans laquelle Python éclipse Perl est sa programmation avancée OO. Python dispose d'un support étendu de programmation orientée objet avec une syntaxe propre et cohérente, tandis que l'objet OOP en Perl est obsolète lorsque le package est utilisé comme substitut. pour les cours.

Lecture suggérée : Premiers pas avec Python Django Web Framework

De plus, écrire du code OO en Perl ajoutera beaucoup plus de complexité au code, ce qui finirait par rendre le code difficile à comprendre, même les sous-programmes en Perl sont très difficiles à programmer et finalement difficiles à comprendre plus tard.

D'un autre côté, Perl est préférable pour ses one-liners qui peuvent être utilisés sur la ligne de commande pour effectuer les différentes tâches. De plus, le code Perl peut éventuellement effectuer diverses tâches en moins de lignes de code que Python.

Un exemple de shortcode des deux langages qui met en évidence la capacité de Perl à faire plus avec moins de LOC :

try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

Avantages et inconvénients – Python vs Perl

Dans cette section, nous discuterons des avantages et des inconvénients de Python et Perl.

Avantages de Python :

  1. Il possède une syntaxe claire et élégante qui fait de ce langage un excellent choix en tant que premier langage de programmation pour les novices qui souhaitent se familiariser avec n'importe quel langage de programmation.
  2. Possède une programmation OO très avancée et inhérente, et la programmation de threads en Python est bien meilleure que Perl.
  3. Il existe de nombreux domaines d'application dans lesquels Python est préféré et même il surpasse Perl. J'aime : Perl est préféré pour les scripts CGI, mais de nos jours, Django de Python et web2py comme les langages de script Web sont de plus en plus populaires et attirent énormément de l'industrie.
  4. Possède plusieurs wrappers SWIG pour différents langages de programmation comme CPython, IronPython et Jython et leur développement a précédé le développement de wrappers SWIG pour Perl.
  5. Le code Python est toujours bien indenté et facile à lire et à comprendre même si vous lisez le code de quelqu'un d'autre ou même votre code après des années.
  6. Python convient à diverses applications telles que le Big Data, l'Infra Automation, l'Machine Learning, le NLP, etc. énorme soutien des communautés actives car étant Open Source.

INCONVÉNIENTS de Python :

  1. Il existe peu de domaines dans lesquels l'exécution en Python est généralement plus lente que celle en Perl, notamment les opérations regex et basées sur les chaînes.
  2. Parfois, il est difficile d'obtenir le type de variable en Python car dans les cas de code très volumineux, il faut aller jusqu'au bout pour obtenir un type de variable qui devient mouvementé et complexe.

Avantages de Perl :

  1. Perl a de puissants one-liners et garantit même une syntaxe de type UNIX qui peut être utilisée sur la ligne de commande pour effectuer diverses tâches. Il est également influencé par Unix et sa programmation en ligne de commande et intègre donc de nombreuses commandes influencées par UNIX dans son codage.
  2. Perl est connu pour ses puissantes opérations de comparaison de regex et de chaînes, car il est influencé par sed et awk, comme les puissants outils UNIX. Dans le cas d'opérations d'expression régulière et de chaîne telles que la substitution, la correspondance, le remplacement, Perl surpasse Python, ce qui nécessiterait quelques lignes de code pour atteindre l'objectif. même. Également pour de nombreuses opérations d'E/S de fichiers, la gestion des exceptions est effectuée plus rapidement sur Perl.
  3. Lorsqu'il s'agit d'un langage de génération de rapports, Perl a toujours été célèbre depuis son introduction comme l'une des principales raisons pour lesquelles l'auteur a développé un langage comme Perl l'était pour la génération de rapports.
  4. De nombreux domaines d'application dans lesquels Perl trouve son utilité sont la Programmation réseau, l'Administration système, les Scripts CGI (ici Python surpasse Perl avec Django et web2py), etc.
  5. Il est facile d'identifier le type de variable grâce aux symboles que Perl utilise devant eux, comme : '@' identifie les tableaux et '%' identifie les hachages.

Inconvénients de Perl :

  1. Perl a un code très complexe qui le rend difficile à comprendre pour un novice. Les sous-programmes, et même d'autres symboles comme : '$`', '$&' etc. sont difficiles à comprendre et à programmer pour un programmeur moins expérimenté. De plus, le code Perl une fois lu serait difficile et complexe à comprendre à moins d'avoir une expérience de qualité.
  2. La programmation OO en Perl est un peu dépassée car elle n'a jamais été connue pour la programmation OO et de nombreuses opérations comme le threading sont également moins prononcées en Perl.

Conclusion

Comme vu ci-dessus, où les deux langages sont bons en fonction des applications qu'ils ciblent, Python prend un léger avantage sur Perl comme premier choix pour un novice en raison de son Un code propre et facile à comprendre, alors que d'un autre côté, Perl surpasse Python en ce qui concerne les opérations de manipulation de chaînes et certains one-liners avancés pour UNIX comme le système d'exploitation et diverses autres opérations pour lesquelles il est connu.

Donc, en fin de compte, tout dépend du domaine spécifique que vous ciblez. Tous vos commentaires sur cet article sont les bienvenus et vous demanderaient de donner votre avis sur le sujet si selon vous Python gagne ou Perl.