Aprofundeix en el debat entre Python i Perl: què he d'aprendre Python o Perl?


Sovint, quan s'introdueix un nou llenguatge de programació, hi ha un debat que s'inicia entre algunes de les ments genials de la indústria on es compara el llenguatge amb el que ja està estenent les seves arrels. Sovint s'estén una mena de brunzit a la indústria informàtica i el nou es compara sovint en tots els aspectes, ja siguin característiques, sintaxi o aspectes bàsics de CPU i memòria, inclòs el temps GC i tot, amb l'existent d'aquest tipus.

Es poden recollir i investigar molts exemples d'aquests casos del passat, inclòs el debat entre Java i C#, C++, etc. Un d'aquests casos que va cridar una quantitat significativa d'atenció va ser el debat entre dos llenguatges que va sorgir un darrere l'altre en un període curt, és a dir, Python i Perl.

Mentre que Python es va inventar inicialment com a successor del llenguatge ABC només com un projecte de programació hobby (que atrauria els pirates informàtics Unix/C) per a l'autor que el va batejar després de la sèrie de la seva estrella més gran, Monty Python.

Perl va ser gairebé 2 anys abans com a llenguatge de script Unix que pretenia facilitar el processament d'informes. Era una barreja d'una combinació de molts idiomes, inclòs C, shell script.

El que val la pena destacar és que s'estan comparant constantment aquests llenguatges que van evolucionar amb diferents intencions, fet que m'ha fet estudiar i esbrinar-ne els motius, dels quals n'hi ha d'importants a continuació:

  1. Tots dos s'orientaven al sistema operatiu Unix, un per als pirates informàtics i uns altres per processar informes.
  2. Tots dos estan orientats a objectes (Python és el més) i s'interpreten, un d'ells molt escrit i clar quan es tracta de codificar, és a dir, Python, i un altre que permet escriure lletges amb claus per representar un bloc, és a dir, Perl
  3. Tots dos són oposats en principi quan diem que Perl té moltes maneres de fer una única tasca mentre que Python se centra en una i només una manera de fer les coses.

Python vs Perl - Característiques comparades

Aprofundim en aquest debat i intentem esbrinar els aspectes generals on es diferencien aquestes dues llengües. A més, intentem esbrinar la font de la veritat per a molts clixés que es poden escoltar a la indústria que diuen Python és Perl amb rodes d'entrenament o Python és similar a Perl però diferent de manera que podem intentar concloure amb una solució precisa a aquest debat interminable.

Python treu un gran avantatge respecte a Perl pel que fa a la llegibilitat del codi. El codi de Python és molt més clar d'entendre que el de Perl fins i tot quan llegeix el codi després d'anys.

Amb el sagnat que representa el bloc de codi i una estructuració adequada, el codi de Python és molt més net. D'altra banda, Perl pren en préstec la seva sintaxi de diversos llenguatges de programació com C, filtres sed quan es tracta d'expressions regulars.

A part d'això, amb '{' i '}' que representen un bloc de codi i l'addició innecessària de ';' al final de cada línia, el codi en Perl podria convertir-se en un problema d'entendre si el llegiu després de mesos o anys a causa de la seva concessió de guió lletja.

El llenguatge Perl pren prestada la seva sintaxi de C i d'altres ordres UNIX com sed, awk, etc., per la qual cosa té un suport d'expressió regular molt potent i integrat sense importar cap mòdul de tercers.

A més, Perl pot gestionar operacions del sistema operatiu mitjançant funcions integrades. D'altra banda, Python té biblioteques de tercers per a les dues operacions, és a dir, re per a regex i os, sys per a operacions d'OS que cal assegurar-se abans de fer aquestes operacions.

Les operacions d'expressió regular de Perl tenen una sintaxi semblant a sed que facilita no només les operacions de cerca, sinó que també es poden fer les operacions de substitució, substitució i altres en una cadena de manera fàcil i ràpida que Python, on una persona necessita conèixer i recordar les funcions que atenen la necessitat.

Exemple: considereu un programa per cercar un dígit a la cadena en Perl i Python.

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

Veieu que la sintaxi de Perl és molt fàcil i està inspirada en l'ordre sed que aprofita la sintaxi de Python que importa el mòdul de tercers re.

Una característica on Python eclipsa Perl és la seva programació avançada OO. Python té un ampli suport de programació orientada a objectes amb una sintaxi neta i consistent, mentre que l'objecte OOP en Perl està obsolet quan el paquet s'utilitza com a substitut de les classes.

A més, escriure codi OO en Perl afegirà molta més complexitat al codi, cosa que dificultaria la comprensió del codi, fins i tot les subrutines en Perl són molt difícils de programar i, finalment, difícils d'entendre més endavant.

D'altra banda, Perl és el millor per les seves línies d'una línia que es poden utilitzar a la línia d'ordres per realitzar les diferents tasques. A més, el codi Perl pot eventualment fer diverses tasques en menys línies de codi que Python.

Un exemple de codi curt dels dos idiomes que destaca la capacitat de Perl per fer més en menys 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 “$_”; } 

Pros i contres: Python vs Perl

En aquesta secció, parlarem dels avantatges i els contres de Python i Perl.

  1. Té una sintaxi neta i elegant que fa d'aquest llenguatge una opció fantàstica com a primer llenguatge de programació per als novells que volen tenir pràcticament qualsevol llenguatge de programació.
  2. Té una programació OO molt avançada i inherent, també la programació de fils en Python és molt millor que Perl.
  3. Hi ha moltes àrees d'aplicació on es prefereix Python i fins i tot supera Perl. Com: Perl és preferit per als scripts CGI, però avui en dia el Django de Python i els llenguatges de scripts web com web2py són cada cop més populars i tenen una gran atracció de la indústria.
  4. Té diversos embolcalls SWIG per a diferents llenguatges de programació com CPython, IronPython i Jython i el desenvolupament d'aquests ha precedit el desenvolupament dels embolcalls SWIG per a Perl.
  5. El codi de Python sempre està ben sagnat i és fàcil de llegir i entendre, fins i tot si llegeixis el codi d'una altra persona o fins i tot el teu codi després d'anys.
  6. Python és bo per a diverses aplicacions com ara Big Data, Infra Automation, Machine Learning, NLP, etc., té un gran suport a les comunitats actives perquè és de codi obert.

  1. Hi ha poques àrees on l'execució en Python sol ser més lenta que la de Perl, incloses les operacions basades en cadenes i expresions regulars.
  2. De vegades és difícil obtenir el tipus de variable a Python, ja que en casos de codi molt gran, has d'anar fins al final per obtenir un tipus de variable que esdevingui agitada i complexa.

  1. Perl té una línia d'ordres potents i fins i tot garanteix la canonada UNIX com la sintaxi que es pot utilitzar a la línia d'ordres per realitzar diverses tasques, també està influenciada per Unix i la seva programació de línia d'ordres, de manera que integra moltes ordres influïdes en UNIX en la seva codificació. .
  2. Perl és conegut per les seves potents operacions de comparació d'expressions regulars i de cadenes, ja que està influenciat per sed i awk com les potents eines UNIX. En el cas d'operacions d'expressions regulars i de cadenes com la substitució, la concordança, la substitució, Perl supera python, que necessitarien unes quantes línies de codi per aconseguir el mateix. També moltes operacions d'E/S de fitxers, el maneig d'excepcions es fa més ràpid a Perl.
  3. Quan es tracta d'un llenguatge per a la generació d'informes, Perl sempre ha tingut fama des de la seva introducció com una de les raons principals perquè l'autor desenvolupi un llenguatge com ho va ser Perl per a la generació d'informes.
  4. Moltes àrees d'aplicació on Perl troba el seu ús són la programació de xarxa, l'administració de sistemes, scripting CGI (aquí Python està superant Perl amb Django i web2py), etc.
  5. És fàcil identificar el tipus de variable amb els símbols que fa servir Perl abans d'ells, com ara: '@' identifica matrius i '%' identifica hashes.< /li>

  1. Perl té un codi molt complex que fa que sigui difícil d'entendre per a un principiant. Les subrutines, i fins i tot altres símbols com: '$\\', '$&', etc. són difícils d'entendre i de programar per a un programador menys experimentat. A més, el codi Perl quan llegiu seria difícil i complex d'entendre tret que tingueu una experiència de qualitat.
  2. La programació d'OO en Perl està una mica obsoleta, ja que mai s'ha conegut per la programació d'OO i moltes operacions com ara l'enroscatge també són menys pronunciades a Perl.

Conclusió

Com s'ha vist anteriorment, on tots dos idiomes són bons pel que fa a les aplicacions a les quals s'orienten, Python treu una mica d'avantatge sobre Perl com a primera opció per a un principiant a causa del seu codi net i fàcil d'entendre, mentre que, d'altra banda, Perl supera Python. quan es tracta d'operacions de manipulació de cadenes i algunes línies avançades per a UNIX com el sistema operatiu i diverses altres operacions per les quals és conegut.

Per tant, al final, tot depèn de l'àrea específica a la qual us orienteu. Tots els vostres comentaris sobre aquest article són benvinguts i us demanarem que doneu la vostra opinió sobre el tema si segons vosaltres guanya Python o Perl.