Dyk dybt ned i Python vs Perl-debat - Hvad skal jeg lære Python eller Perl?


Ofte når et nyt programmeringssprog introduceres, er der en debat, der starter blandt nogle af de geniale sind i branchen, hvor sproget sammenlignes med det, der allerede spreder sine rødder. En slags brummer spredes ofte i IT-branchen, og den nye sammenlignes ofte på alle aspekter, kan det være funktioner, syntaks eller centrale CPU- og hukommelsesaspekter inklusive GC-tid og alt sammen med den eksisterende af sin art.

Mange eksempler på sådanne sager kan hentes og undersøges fra fortiden, herunder debatten mellem Java og C #, C ++ osv. En sådan sag, der tiltrak en betydelig opmærksomhed, var debatten mellem to sprog, der kom ud efter hinanden i et kort span dvs. Python og Perl.

Mens Python oprindeligt blev opfundet som en efterfølger til ABC-sproget blot som et "hobby" -programmeringsprojekt (som ville tiltrække Unix/C-hackere) for forfatteren, der opkaldte det efter serien af hans største stjerne Monty Python.

Perl var næsten 2 år tidligere som et Unix-scriptingsprog, der havde til formål at gøre rapportbehandlingen lettere. Det var en blanding af en kombination af mange sprog, herunder C, shell-script.

Det, der er værd at bemærke, er, at disse sprog, der udviklede sig med forskellige intentioner, konstant sammenlignes, hvilket har fået mig til at studere og finde ud af årsagerne, som nogle vigtige er anført som nedenfor:

  1. Begge målrettede Unix-operativsystem, en til hackere og andre til at behandle rapporter.
  2. Begge er objektorienterede (Python er jo mere) og fortolkes, hvor den ene er stærkt skrevet og klar, når det kommer til kodning, dvs. Python, og anden tillader grim skrivning med seler til at repræsentere en blok, dvs. Perl
  3. Begge er i princippet modsatte, når vi siger, Perl har mange måder at udføre en enkelt opgave på, mens python fokuserer på en og kun en måde at gøre ting på.

Python vs Perl - Sammenlignede funktioner

Lad os dykke dybt ned i denne debat og prøve at finde ud af de overordnede aspekter, hvor disse to sprog adskiller sig fra hinanden. Lad os også prøve at finde ud af sandhedskilden for mange klichéer, som man kan høre i branchen siger "Python er Perl med træningshjul" eller "Python ligner Perl men anderledes", så vi kan prøve at afslutte med en nøjagtig løsning til denne uendelige debat.

Python tager en kæmpe fordel i forhold til Perl, når det kommer til kodelæsbarhed. Pythons kode er meget tydeligere at forstå end Perl's, selv når man læser kode efter år.

Med indrykning, der repræsenterer kodeblokken, og korrekt strukturering er Pythons kode meget renere. På den anden side låner Perl sin syntaks fra forskellige programmeringssprog som C, sed-filtre, når det kommer til regulære udtryk.

Bortset fra dette med '{' og '}' , der repræsenterer en blok kode og unødvendig tilføjelse af ';' i slutningen af hver linje, kunne kode i Perl blive et problem at forstå, hvis du læser det efter måneder eller år på grund af dets tilladelse til grim scripting.

Perl-sprog låner sin syntaks fra C og andre UNIX-kommandoer som sed, awk osv., Som det har meget kraftig og indbygget regex-support uden at importere nogen tredjepartsmoduler.

Perl kan også håndtere OS-operationer ved hjælp af indbyggede funktioner. På den anden side har Python tredjepartsbiblioteker til både operationerne, dvs. til regex og os, sys til os-operationer, der skal sikres, før sådanne operationer udføres.

Perls regex-operationer har 'sed' som syntaks, hvilket gør det let ikke kun for søgefunktioner, men også udskiftning, erstatning og andre operationer på en streng kan udføres let og hurtigt end python, hvor en person har brug for at kende og huske de funktioner, der imødekommer behovet.

Eksempel: Overvej et program for at søge efter et ciffer i strengen i Perl og Python.

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

Du ser, at syntaksen for Perl er meget let og inspireret af sed-kommandoen, som udnytter Pythons syntaks, der importerer tredjepartsmodul 're'.

En funktion, hvor Python overskygger Perl, er dens avancerede OO programmering. Python har omfattende objektorienteret programmeringsstøtte med ren og konsistent syntaks, mens objektet OOP i Perl er forældet, hvor pakken bruges som erstatning for klasser.

Også at skrive OO -kode i Perl vil tilføje koden meget mere kompleksitet, hvilket i sidste ende vil gøre koden vanskelig at forstå, selv underrutiner i Perl er meget vanskelige at programmere og til sidst vanskelige at forstå senere.

På den anden side er Perl bedst for sine one-liners, som kan bruges på kommandolinjen til at udføre de forskellige opgaver. Perl-kode kan også i sidste ende udføre forskellige opgaver i færre kodelinjer end python.

Et kortkodeeksempel på begge sprog, der fremhæver Perl-evnen til at gøre mere i mindre 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 “$_”; } 

Fordele og ulemper - Python vs Perl

I dette afsnit vil vi diskutere fordele og ulemper ved Python og Perl.

  1. Det har en ren og elegant syntaks, som gør dette sprog til et godt valg som det første programmeringssprog for nybegyndere, der ønsker at have praktisk brug for ethvert programmeringssprog.
  2. Har meget avanceret og iboende OO Programmering, også trådprogrammering i Python er langt bedre end Perl.
  3. Der er mange applikationsområder, hvor Python foretrækkes, og endda overgår Perl. Ligesom: Perl foretrækkes til CGI-scripting, men i dag bliver Pythons Django og web2py som web-scripting-sprog mere populære og har en enorm attraktion fra branchen.
  4. Har flere SWIG-indpakninger til forskellige programmeringssprog som CPython, IronPython og Jython, og udvikling af disse har forud for udviklingen af SWIG-indpakninger til Perl.
  5. Python-kode er altid godt indrykket og let at læse og forstå, selvom du læser en andens kode eller endda din kode efter år.
  6. Python er godt til forskellige applikationer som Big Data, Infra Automation, Machine Learning, NLP osv., det har enorm støtte fra aktive samfund på grund af at være Open Source.

  1. Der er få områder, hvor eksekvering i Python normalt er langsommere end Perl, inklusive regex og strengbaserede operationer.
  2. Nogle gange er det vanskeligt at få den type variabel i Python, som i tilfælde af meget stor kode, skal du gå til slutningen for at få en type variabel, der bliver hektisk og kompleks.

  1. Perl har kraftige one-liners og sikrer endda UNIX-rør som syntaks, som kan bruges på kommandolinjen til at udføre forskellige opgaver, det er også påvirket af Unix og dets kommandolinjeprogrammering integrerer så mange UNIX-påvirkede kommandoer i sin kodning .
  2. Perl er kendt for sine kraftige regex- og strengesammenligningsoperationer, da den er påvirket af sed og awk som kraftfulde UNIX-værktøjer. I tilfælde af regex- og strengoperationer som erstatning, matching, udskiftning overgår Perl python, hvilket ville tage et par linjer kode for at opnå det samme. Også mange fil I/O-handlinger, undtagelsesbehandling håndteres hurtigere på Perl.
  3. Når det kommer til et sprog til generering af rapporter, har Perl altid været berømmet siden dets introduktion som en af hovedårsagerne til, at forfatteren udviklede sprog som Perl var for rapportgenerering.
  4. Mange applikationsområder, hvor Perl finder sin anvendelse, er Netværksprogrammering, Systemadministration, CGI Scripting (her overvinder Python Perl med Django og web2py) osv.
  5. Det er let at identificere typen af variabel med de symboler, som Perl bruger foran dem, som: '@' identificerer arrays og '%' identificerer hashes.

  1. Perl har en meget kompleks kode, som gør det vanskeligt at forstå for en nybegynder. Underrutiner og endda andre symboler som: '$\"' , '$ &' osv. Er svære at forstå og programmere for en mindre erfaren programmør. Også Perl-kode når læse ville være vanskeligt og komplekst at forstå, medmindre du har en kvalitetsoplevelse.
  2. OO-programmering i Perl er lidt forældet, da det aldrig har været kendt for OO-programmering, og mange operationer som threading er også mindre udtalt på Perl.

Konklusion

Som det ses ovenfor, hvor begge sprog er gode med hensyn til de applikationer, de målretter mod, tager Python en smule fordel over Perl som førstevalg for en nybegynder på grund af sin rene og letforståelige kode, mens Perl på den anden side overgår Python når det kommer til strengmanipulationsoperationer og nogle avancerede one-liners til UNIX som OS og forskellige andre operationer, det er kendt for.

Så i sidste ende afhænger det hele af det specifikke område, du målretter mod. Alle dine kommentarer til denne artikel er velkomne og vil bede dig om at give dine synspunkter om emnet, hvis Python vinder eller Perl ifølge dig.