Dykk dypt inn i Python vs Perl-debatt - Hva bør jeg lære Python eller Perl?


Ofte når et nytt programmeringsspråk introduseres, er det en debatt som starter blant noen av de geniale hjernene i bransjen der språket sammenlignes med det som allerede sprer sine røtter. En slags buzz sprer seg ofte i IT-bransjen og den nye sammenlignes ofte på alle aspekter, kan det da være funksjoner, syntaks eller kjerne-CPU og minneaspekter inkludert GC-tid og alt, med den eksisterende i sitt slag.

Mange eksempler på slike saker kan plukkes opp og undersøkes fra fortiden, inkludert debatten mellom Java og C#, C++, osv. En slik sak som vakte betydelig oppmerksomhet var debatten mellom to språk som kom ut etter hverandre i løpet av kort tid, dvs. Python og Perl.

Mens Python opprinnelig ble oppfunnet som en etterfølger til ABC-språket bare som et «hobby»-programmeringsprosjekt (som ville tiltrekke seg Unix/C-hackere) for forfatteren som oppkalte det etter serie av hans største stjerne Monty Python.

Foreslått lesing: Komme i gang med Python-programmering og skripting i Linux

Perl var bare nesten to år tidligere som et Unix-skriptspråk som hadde til hensikt å gjøre rapportbehandlingen enklere. Det var en blanding av en kombinasjon av mange språk inkludert C, awk, sed og shell script.

Det som er verdt å merke seg er at disse språkene som har utviklet seg med forskjellige intensjoner blir konstant sammenlignet, noe som har fått meg til å studere og finne ut årsakene, hvorav noen viktige er listet opp som nedenfor:

  1. Begge målrettet Unix-operativsystemet, ett for hackere og andre for å behandle rapporter.
  2. Begge er objektorienterte (Python er mer) og tolket, hvor en er sterkt skrevet og tydelig når det gjelder koding, dvs. Python, og andre tillater stygg skriving med klammeparenteser for å representere en blokk, dvs. Perl
  3. Begge er motsatte i prinsippet når vi sier, Perl har mange måter å gjøre en enkelt oppgave på mens python fokuserer på én og bare én måte å gjøre ting på.

Python vs Perl – Funksjoner sammenlignet

La oss dykke dypt inn i denne debatten og prøve å finne ut de generelle aspektene der disse to språkene skiller seg fra hverandre. La oss også prøve å finne ut kilden til sannheten for mange klisjeer som kan høres i bransjen som sier "Python er Perl med treningshjul" eller "Python ligner på Perl, men annerledes sterk> ” slik at vi kan prøve å konkludere med en nøyaktig løsning på denne uendelige debatten.

1. Python's Clean vs Perl's Complex Syntax

Python tar en stor fordel fremfor Perl når det gjelder kodelesbarhet. Pythons kode er mye klarere å forstå enn Perl selv når du leser kode etter år.

Med innrykk som representerer kodeblokken, og riktig strukturering, er Pythons kode mye renere. På den annen side låner Perl sin syntaks fra ulike programmeringsspråk som C, shell-scripting og til og med awk- og sed-filtre når det kommer til regulære uttrykk.

Foreslått lesing: 15 nyttige 'sed'-kommandoer for daglige Linux-systemadministrasjonsoppgaver

Bortsett fra dette, med '{' og '}' som representerer en kodeblokk og unødvendig tillegg av ';' på slutten av hver linje, kan kode i Perl bli et problem å forstå hvis du leser den etter måneder eller år på grunn av dens tillatelse av stygg skripting.

2. Perls innebygde kontra Pythons 3rd Party Regex og OS Operations Support

Perl-språket låner syntaksen fra C og andre UNIX-kommandoer som sed, awk, osv. På grunn av dette har den veldig kraftig og innebygd regex-støtte uten å importere noen tredjepartsmoduler.

Dessuten kan Perl håndtere OS-operasjoner ved hjelp av innebygde funksjoner. På den annen side har Python tredjepartsbiblioteker for begge operasjonene, dvs. re for regex og os, sys for OS-operasjoner som må sikres før slike operasjoner utføres.

Perls regex-operasjoner har "sed"-liknende syntaks som gjør det enkelt ikke bare for søkeoperasjoner, men også erstatning, erstatning og andre operasjoner på en streng kan gjøres enkelt og raskt enn python der en person trenger å vite og husk funksjonene som dekker behovet.

Eksempel: Vurder et program for å søke etter et siffer 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 veldig enkel og inspirert av sed-kommandoen som utnytter Pythons-syntaksen som importerer tredjepartsmodulen 're'.

3. Pythons avanserte OO-programmering vs Perls One-Liner

En funksjon der Python overskygger Perl er dens avanserte OO-programmering. Python har omfattende objektorientert programmeringsstøtte med ren og konsistent syntaks mens objektet OOP i Perl er utdatert der pakken brukes som erstatning for klasser.

Foreslått lesing: Komme i gang med Python Django Web Framework

Å skrive OO-kode i Perl vil også legge til mye mer kompleksitet til koden, noe som til slutt vil gjøre koden vanskelig å forstå, selv subrutiner i Perl er svært vanskelige å programmere og til slutt vanskelige å forstå senere.

På den annen side er Perl best for sine one-liners som kan brukes på kommandolinjen for å utføre de forskjellige oppgavene. Dessuten kan Perl-kode til slutt gjøre forskjellige oppgaver i færre linjer med kode enn python.

Et kortkodeeksempel på begge språkene som fremhever Perl evne til å gjøre mer 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 “$_”; } 

Fordeler og ulemper – Python vs Perl

I denne delen vil vi diskutere fordeler og ulemper med Python og Perl.

Python PROS:

  1. Den har en ren og elegant syntaks som gjør dette språket til et godt valg som det første programmeringsspråket for nybegynnere som ønsker å ha hands-on på et hvilket som helst programmeringsspråk.
  2. Har veldig avansert og iboende OO-programmering, også trådprogrammering i Python er mye bedre enn Perl.
  3. Det er mange applikasjonsområder hvor Python foretrekkes, og til og med det overgår Perl. Som: Perl foretrekkes for CGI-skripting, men i dag blir Pythons Django og web2py som nettskriptspråk stadig mer populære og har en stor attraksjon fra industrien.
  4. Har flere SWIG-omslag for forskjellige programmeringsspråk som CPython, IronPython og Jython og utvikling av disse har gått foran utviklingen av SWIG-omslag for Perl.
  5. Python-koden er alltid godt innrykket og lett å lese og forstå selv om du leser andres kode eller til og med koden din etter år.
  6. Python er bra for ulike applikasjoner som Big Data, Infra Automation, Machine Learning, NLP, osv. enorm støtte fra aktive samfunn på grunn av å være åpen kildekode.

Ulemper med Python:

  1. Det er få områder hvor kjøring i Python vanligvis er tregere enn Perl, inkludert regex og strengbaserte operasjoner.
  2. Noen ganger er det vanskelig å få tak i typen variabel i Python, da i tilfeller med veldig stor kode, må du gå til slutten for å få en type variabel som blir hektisk og kompleks.

Perl PROS:

  1. Perl har kraftige one-liners og sikrer til og med UNIX-piping som syntaks som kan brukes på kommandolinjen for å utføre ulike oppgaver, også den er påvirket av Unix og dens kommandolinjeprogrammering så integrerer mange UNIX-påvirkede kommandoer i kodingen.
  2. Perl er kjent for sine kraftige regex og strengsammenligningsoperasjoner ettersom den er påvirket av sed og awk som kraftige UNIX-verktøy. Når det gjelder regulære uttrykk og strengoperasjoner som erstatning, samsvar, erstatning, overgår Perl python som vil ta noen få linjer med kode for å oppnå samme. Også mange fil I/O-operasjoner, unntakshåndtering gjøres raskere på Perl.
  3. Når det gjelder et språk for rapportgenerering, har Perl alltid vært berømt siden introduksjonen som en av hovedgrunnene til at forfatteren utviklet språk slik Perl var for rapportgenerering.
  4. Mange applikasjonsområder der Perl finner sin bruk er Nettverksprogrammering, Systemadministrasjon, CGI-skripting (her overvinner Python Perl med Django og web2py), etc.
  5. Det er lett å identifisere typen variabel med symbolene som Perl bruker før dem, som: ‘@’ identifiserer arrays og ‘%’ identifiserer hashes.

Perl CONS:

  1. Perl har en veldig kompleks kode som gjør det vanskelig å forstå for en nybegynner. Subrutiner, og til og med andre symboler som: ‘$`’, ‘$&’ osv. er vanskelig å forstå og programmere for en mindre erfaren programmerer. Dessuten ville Perl-kode når den ble lest, være vanskelig og kompleks å forstå med mindre du har en kvalitetsopplevelse.
  2. OO Programmering i Perl er litt utdatert ettersom det aldri har vært kjent for OO-programmering, og mange operasjoner som tråding er også mindre uttalt på Perl.

Konklusjon

Som vist ovenfor, hvor begge språk er gode i forhold til applikasjonene de retter seg mot, drar Python litt fordel over Perl som et førstevalg for en nybegynner på grunn av sin ren og lettfattelig kode, mens Perl på den annen side overgår Python når det kommer til strengmanipulasjonsoperasjoner og noen avanserte one-liners for UNIX som OS og diverse andre operasjoner den er kjent for.

Så til syvende og sist handler alt om det spesifikke området du målretter mot. Alle dine kommentarer til denne artikkelen er velkomne og vil be deg om å gi dine synspunkter på emnet hvis Python vinner eller Perl.