Scufundați-vă adânc în dezbaterea Python vs Perl - Ce ar trebui să învăț Python sau Perl?


Adesea, atunci când este introdus un nou limbaj de programare, există o dezbatere care începe în rândul unora dintre mințile geniale din industrie în care limbajul este comparat cu cel care își răspândește deja rădăcinile. Un fel de zgomot se răspândește adesea în industria IT, iar cel nou este adesea comparat pe fiecare aspect, poate fi apoi caracteristici, sintaxă sau aspecte de bază ale CPU și memorie, inclusiv timpul GC și toate, cu cel existent de acest fel.

Multe exemple de astfel de cazuri pot fi preluate și investigate din trecut, inclusiv dezbaterea dintre Java și C#, C++, etc. Un astfel de caz care a atras o cantitate semnificativă de atenție a fost dezbaterea dintre două limbi care a apărut una după alta într-un interval scurt, adică Python și Perl.

În timp ce Python a fost inventat inițial ca un succesor al limbajului ABC, doar ca un proiect de programare „hobby” (care ar atrage hackeri Unix/C) pentru autorul care l-a numit după seria celei mai mari vedete a lui Monty Python.

Perl a fost cu aproape 2 ani mai devreme ca limbaj de scripting Unix, care intenționa să faciliteze procesarea rapoartelor. A fost un amestec de o combinație de mai multe limbi, inclusiv C, script shell.

Lucrul care merită remarcat este că aceste limbi care au evoluat cu intenții diferite sunt comparate în mod constant, ceea ce m-a făcut să studiez și să-mi dau seama motivele, dintre care unele importante sunt enumerate mai jos:

  1. Ambele au vizat sistemul de operare Unix, unul pentru hackeri și alții pentru a procesa rapoarte.
  2. Ambele sunt orientate pe obiecte (Python fiind cel mai mult) și interpretate, unul fiind puternic tastat și clar atunci când vine vorba de codare, de exemplu, Python, iar celălalt permițând tastarea urâtă cu acolade pentru a reprezenta un bloc, adică Perl
  3. Ambele sunt opuse în principiu când spunem că Perl are mai multe moduri de a face o singură sarcină, în timp ce Python se concentrează pe un singur mod de a face lucrurile.

Python vs Perl – Caracteristici comparate

Să ne adâncim în această dezbatere și să încercăm să descoperim aspectele generale în care aceste două limbi se diferențiază una de cealaltă. De asemenea, să încercăm să aflăm sursa adevărului pentru multe clișee care pot fi auzite în industrie spunând „Python este Perl cu roți de antrenament” sau „Python este similar cu Perl, dar diferit. ”, astfel încât să putem încerca să încheiem cu o soluție exactă la această dezbatere fără sfârșit.

1. Curățarea lui Python vs Sintaxa complexă a lui Perl

Python are un avantaj imens față de Perl când vine vorba de citirea codului. Codul lui Python este mult mai clar de înțeles decât cel al lui Perl, chiar și atunci când citiți codul după ani.

Cu indentarea reprezentând blocul de cod și structurarea adecvată, codul lui Python este mult mai curat. Pe de altă parte, Perl își împrumută sintaxa din diferite limbaje de programare, cum ar fi C, filtrele sed atunci când vine vorba de expresii regulate.

În afară de aceasta, cu '{' și '}' reprezentând un bloc de cod și adăugarea inutilă de ';' la sfârșitul fiecărei linii, codul în Perl ar putea deveni o problemă de înțeles dacă o citiți după luni sau ani din cauza permisiunii sale de scripting urâte.

2. Suportul pentru operațiuni ale sistemului de operare și regex de la terță parte a lui Perl vs. Python

Limbajul Perl își împrumută sintaxa din C și alte comenzi UNIX precum sed, awk, etc. datorită căruia are suport pentru expresii regex puternic și încorporat, fără a importa module terțe.

De asemenea, Perl poate gestiona operațiunile sistemului de operare folosind funcții încorporate. Pe de altă parte, Python are biblioteci terță parte pentru ambele operațiuni, adică re pentru regex și os, sys pentru operațiunile OS care trebuie să să fie asigurată înainte de a efectua astfel de operațiuni.

Operațiile regex ale lui Perl au o sintaxă asemănătoare „sed”, ceea ce facilitează nu numai operațiunile de căutare, ci și operațiunile de înlocuire, înlocuire și alte operațiuni pe un șir pot fi făcute ușor și rapid decât Python, unde o persoană trebuie să știe și amintiți-vă de funcțiile care răspund nevoilor.

Exemplu: luați în considerare un program pentru a căuta o cifră în șir în Perl și Python.

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

Vedeți că sintaxa pentru Perl este foarte ușoară și inspirată de comanda sed care profită de sintaxa Python care importă modulul terță parte ‘re’.

3. Programarea avansată OO din Python vs One-Liners de la Perl

O caracteristică în care Python eclipsează Perl este programarea sa avansată OO. Python are suport extins pentru programare orientată pe obiecte, cu sintaxă curată și consecventă, în timp ce obiectul OOP în Perl este depășit în cazul în care pachetul este folosit ca înlocuitor pentru cursuri.

De asemenea, scrierea codului OO în Perl va adăuga mult mai multă complexitate codului, ceea ce ar face în cele din urmă codul dificil de înțeles, chiar și subrutinele în Perl sunt foarte greu de programat și, în cele din urmă, greu de înțeles mai târziu.

Pe de altă parte, Perl este cel mai bun pentru liniile sale unice care pot fi folosite pe linia de comandă pentru efectuarea diferitelor sarcini. De asemenea, codul Perl poate face în cele din urmă diverse sarcini în mai puține linii de cod decât python.

Un exemplu de cod scurt al ambelor limbi care evidențiază capacitatea Perl de a face mai mult în mai puțin 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 “$_”; } 

Avantaje și dezavantaje - Python vs Perl

În această secțiune, vom discuta avantajele și dezavantajele Python și Perl.

PROP Python:

  1. Are o sintaxă curată și elegantă, ceea ce face ca acest limbaj să fie o alegere excelentă ca prim limbaj de programare pentru începători care doresc să folosească orice limbaj de programare.
  2. Are programare OO foarte avansată și inerentă, de asemenea, programarea firelor în Python este mult mai bună decât Perl.
  3. Există multe domenii de aplicație în care Python este preferat și chiar depășește Perl. Ca: Perl este preferat pentru scripting CGI, dar în zilele noastre limbajele de scripting web de la Python Django și web2py devin din ce în ce mai populare și au o mare atracție din partea industriei.
  4. Are mai multe pachete SWIG pentru diferite limbaje de programare, cum ar fi CPython, IronPython și Jython, iar dezvoltarea acestora a a precedat dezvoltarea ambalajelor SWIG pentru Perl.
  5. Codul Python este întotdeauna bine indentat și ușor de citit și de înțeles chiar dacă citiți codul altcuiva sau chiar codul dvs. după ani de zile.
  6. Python este bun pentru diverse aplicații precum Big Data, Infra Automation, Machine Learning, NLP, etc. , are un sprijin imens din partea comunităților active, deoarece este Open Source.

Python CONTRA:

  1. Există puține domenii în care execuția în Python este de obicei mai lentă decât cea a Perl, inclusiv regex și operațiuni bazate pe șiruri.
  2. Uneori este dificil să obțineți tipul de variabilă în Python, deoarece în cazurile de cod foarte mare, trebuie să mergeți până la capăt pentru a obține un tip de variabilă care devine agitată și complexă.

PRO PERL:

  1. Perl are linii unice puternice și asigură chiar și tubulatură UNIX, cum ar fi sintaxa, care poate fi folosită pe linia de comandă pentru a efectua diverse sarcini, de asemenea, este influențat de Unix și de programarea sa din linia de comandă, astfel încât integrează multe comenzi influențate de UNIX în codificare. .
  2. Perl este cunoscut pentru operațiunile sale puternice de regex și de comparare a șirurilor de caractere, deoarece este influențat de instrumentele UNIX puternice, precum sed și awk. În cazul operațiunilor regex și șiruri de caractere, cum ar fi înlocuirea, potrivirea, înlocuire, Perl depășește python-ul, care ar necesita câteva linii de cod pentru a obține la fel. De asemenea, multe operațiuni I/O de fișiere, gestionarea excepțiilor se face mai rapid pe Perl.
  3. Când vine vorba de un limbaj pentru generarea de rapoarte, Perl a fost întotdeauna renumit de la introducerea sa, fiind unul dintre principalele motive pentru care autorul a dezvoltat un limbaj așa cum a fost Perl pentru generarea de rapoarte.
  4. Multe domenii de aplicație în care Perl își găsește utilizarea sunt Programarea în rețea, Administrarea sistemului, Scriptarea CGI (aici Python depășește Perl cu Django și web2py), etc.
  5. Este ușor să identifici tipul de variabilă cu simbolurile pe care Perl le folosește înaintea lor, cum ar fi: '@' identifică matrice și '%' identifică hashuri.< /li>

Perl CONTRA:

  1. Perl are un cod foarte complex, care îl face dificil de înțeles pentru un începător. Subrutinele și chiar și alte simboluri precum: '$\\', '$&' etc sunt greu de înțeles și de programat pentru un programator mai puțin experimentat. De asemenea, codul Perl atunci când citiți ar fi dificil și complex de înțeles dacă nu aveți o experiență de calitate.
  2. Programarea
  3. OO în Perl este puțin depășită, deoarece nu a fost niciodată cunoscută pentru programarea OO și multe operațiuni precum threading-ul sunt, de asemenea, mai puțin pronunțate în Perl.

Concluzie

După cum sa văzut mai sus, în cazul în care ambele limbi sunt bune în ceea ce privește aplicațiile pe care le vizează, Python profită puțin de Perl ca primă alegere pentru un începător, datorită cod curat și ușor de înțeles, în timp ce, pe de altă parte, Perl îl depășește pe Python în ceea ce privește operațiunile de manipulare a șirurilor și unele linii avansate pentru UNIX, cum ar fi OS și diverse alte operațiuni pentru care este cunoscut.

Deci, în cele din urmă, totul depinde de zona specifică pe care o vizați. Toate comentariile voastre la acest articol sunt binevenite și v-ar cere să vă exprimați părerile asupra subiectului dacă, potrivit dvs., Python câștigă sau Perl.