Sukelduge sügavale Pythoni vs Perli arutelu - mida peaksin õppima Pythoni või Perli?


Uue programmeerimiskeele kasutuselevõtmisel tekib sageli arutelu, mis saab alguse mõnest tööstuse geeniusest, kus keelt võrreldakse juba juurte levitamisega. Omamoodi buzz levib IT-valdkonnas sageli ja uut võrreldakse sageli kõigis aspektides, olgu siis tegemist funktsioonide, süntaksiga või põhiseadmete protsessoriga ja mälu aspektidega, sealhulgas GC aeg ja kõik koos olemasolevaga.

Palju näiteid sellistest juhtumitest võib leida ja uurida minevikust, sealhulgas Java ja C #, C ++ jne vahelist arutelu. Üks selline juhtum, mis pälvis märkimisväärset tähelepanu, oli kahe keele vaheline arutelu, mis ilmus üksteise järel lühike vahemik, st Python ja Perl.

Kui Python leiutati algselt ABC keele järeltulijana lihtsalt\"hobi \" programmeerimisprojektina (mis meelitaks Unix/C häkkerid) autorile, kes nimetas selle oma suurima tähe Monty Pythoni sarja järgi.

Perl oli just peaaegu kaks aastat varem Unixi skriptikeelena, mille eesmärk oli aruannete töötlemise lihtsustamine. See oli segu paljude keelte kombinatsioonist, sealhulgas C, shelliskript.

Väärib märkimist, et neid eri kavatsustega arenenud keeli võrreldakse pidevalt, mis on pannud mind uurima ja välja selgitama põhjused, millest mõned olulised on loetletud allpool:

  1. Mõlemad olid suunatud Unixi operatsioonisüsteemile, üks häkkeritele ja teistele aruannete töötlemiseks.
  2. Mõlemad on objektorienteeritud (seda enam, et Python) ja neid tõlgendatakse, kusjuures üks neist on kodeerimise, st Pythoni puhul tugevalt kirjutatud ja selge, ning teised võimaldavad plokkide, s.t Perli, esitamiseks kole traksidega trükkimist
  3. Mõlemad on põhimõtteliselt vastupidised, kui ütleme, et Perlil on ühe ülesande täitmiseks palju võimalusi, samas kui python keskendub ühele ja ainult ühele viisile.

Python vs Perl - funktsioonid võrreldes

Sukeldugem sellesse arutelusse ja proovime välja selgitada üldised aspektid, kus need kaks keelt üksteisest eristuvad. Proovime välja selgitada ka paljude klišeede tõeallikad, mida tööstuses võib öelda\"Python on treeningratastega Perl" või\"Python on Perliga sarnane, kuid erinev", et saaksime proovida ja lõpetada täpne lahendus sellele lõputule arutelule.

Koodide loetavuse osas võtab Python Perli ees tohutu eelise. Pythoni kood on palju arusaadavam kui Perl, isegi kui lugeda koodi pärast aastaid.

Koodiploki esindava taande ja õige struktureerimisega on Pythoni kood palju puhtam. Teisalt laenab Perl oma süntaksit erinevatest programmeerimiskeeltest, näiteks C, sed filtrid, kui tegemist on regulaaravaldistega.

Lisaks sellele, kui '{' ja '}' tähistavad koodiplokki ja ';' ebavajalik lisamine iga rea lõpus, võib Perli kood muutuda probleem, millest aru saada, kui loete seda mõne kuu või aasta pärast, sest see lubab inetut skriptimist.

Perli keel laenab oma süntaksit C-lt ja muudelt UNIX-i käskudelt, nagu sed, awk jne, tänu millele on sellel nii võimas ja sisseehitatud regex-tugi, ilma et imporditaks ühtegi kolmanda osapoole moodulit.

Samuti saab Perl hallata operatsioonisüsteemi operatsioone sisseehitatud funktsioonide abil. Teiselt poolt on Pythonil kolmanda osapoole teegid nii toimingute jaoks, st regexi ja os-i jaoks, os-operatsioonide süsteemid, mis tuleb enne selliste toimingute tegemist tagada.

Perli regex-toimingutel on „sed” nagu süntaks, mis hõlbustab lisaks otsinguoperatsioonidele ka stringi asendamist, asendamist ja muid toiminguid, mida saab hõlpsalt ja kiiresti teha kui python, kus inimene peab teadma ja meeles pidama funktsioone, mis rahuldavad vajadus.

Näide: kaaluge programmi, et otsida stringist numbrit Perlis ja Pythonis.

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

Näete, et Perli süntaks on nii lihtne ja inspireeritud sed-käsklusest, mis kasutab ära Pythoni süntaksit, mis impordib kolmanda osapoole moodulit „re”.

Üks funktsioon, kus Python Perli varjutab, on selle täiustatud OO -programmeerimine. Pythonil on ulatuslik objektiivse programmeerimise tugi, millel on puhas ja ühtlane süntaks, samal ajal kui Perli objekt OOP on aegunud, kus paketti kasutatakse klasside asendajana.

Samuti muudab OO koodi kirjutamine Perlis koodile palju keerukama, mis muudaks koodi lõpuks raskesti mõistetavaks, isegi Perli alamprogramme on väga raske programmeerida ja hiljem on neid hiljem raske mõista.

Teiselt poolt on Perl parim oma ühe liini jaoks, mida saab käsureal kasutada erinevate ülesannete täitmiseks. Samuti saab Perli kood lõpuks erinevaid ülesandeid teha vähem koodiridades kui python.

Mõlema keele lühikoodinäide, mis tõstab esile Perli võimet teha vähem LOC-s rohkem:

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 “$_”; } 

Plussid ja miinused - Python vs Perl

Selles osas käsitleme Pythoni ja Perli plusse ja miinuseid.

  1. Sellel on puhas ja elegantne süntaks, mis muudab selle keele suurepäraseks valikuks kui esimene programmeerimiskeel algajatele, kes soovivad praktiliselt suhelda mis tahes programmeerimiskeelega.
  2. Tal on väga arenenud ja omane OO programmeerimine, ka Pythonis on lõime programmeerimine palju parem kui Perl.
  3. Pythoni eelistatakse paljudes rakendusvaldkondades ja isegi see ületab Perli. Nagu: Perli eelistatakse CGI-skriptide jaoks, kuid tänapäeval on Pythoni Django ja web2py-ga sarnased veebiskriptikeeled muutumas üha populaarsemaks ja neid huvitab tööstusharu tohutult.
  4. Sellel on mitu SWIG-i ümbrist erinevate programmeerimiskeelte jaoks, nagu CPython, IronPython ja Jython, ning nende väljatöötamine on eelnenud SWIG-i ümbriste arendamisele Perli jaoks.
  5. Pythoni kood on alati hästi taandatud ning hõlpsasti loetav ja arusaadav, isegi kui loete aastate pärast kellegi teise koodi või isegi oma koodi.
  6. Python sobib hästi mitmesuguste rakenduste jaoks, nagu Big Data, Infra Automation, Machine Learning, NLP jne. Sellel on avatud lähtekoodiga olemise tõttu tohutu aktiivsete kogukondade tugi.

  1. On vähe piirkondi, kus Pythoni käivitamine on tavaliselt aeglasem kui Perlil, sealhulgas regex ja stringipõhised toimingud.
  2. Mõnikord on Pythoni muutuja tüübi hankimine keeruline, kuna väga suure koodi korral peate hektilise ja keerulise muutuja tüübi saamiseks minema lõpuni.

  1. Perlil on võimsad üherealised liinid ja see tagab isegi UNIX-i torustiku nagu süntaks, mida saab käsureal kasutada mitmesuguste ülesannete täitmiseks, samuti mõjutab Unix ja selle käsurea programmeerimine integreerib nii palju UNIX-i mõjutatud käske oma kodeeringusse .
  2. Perl on tuntud oma võimsa regexi ja stringide võrdlustoimingute poolest, kuna sed ja awk mõjutavad seda nagu võimsad UNIX-i tööriistad. Regexi ja stringi toimingute, nagu asendamine, sobitamine, asendamine, korral ületab Perl pythoni, mis võtab sama koodi saavutamiseks mõne rea koodi. Ka paljud failide sisend-/väljundoperatsioonid, erandite haldamine toimub Perlil kiiremini.
  3. Mis puutub aruande koostamise keelde, siis Perl on selle kasutuselevõtust alates alati kuulsus olnud, kuna üks peamisi põhjusi, miks autor arendada keelt, nagu Perl, oli aruannete koostamiseks.
  4. Paljud rakendusalad, kus Perl oma kasutust leiab, on võrguprogrammimine, süsteemihaldus, CGI skriptimine (siin ületab Python Perli Django ja web2py abil) jne.
  5. Muutuja tüüpi on lihtne tuvastada sümbolitega, mida Perl enne neid kasutab, näiteks: '@' tähistab massiive ja '%' räsisid.

  1. Perlil on väga keeruline kood, mis muudab algaja jaoks selle mõistmise keeruliseks. Alamprogramme ja isegi muid sümboleid, näiteks: '$\\ "' , '$&' jne on vähem kogenud programmeerijale raske mõista ja programmeerida. Samuti Perli kood kui lugeda on keeruline ja keeruline mõista, kui teil pole kvaliteetset kogemust.
  2. OL-i programmeerimine Perlis on veidi ajale jalgu jäänud, kuna see pole kunagi olnud OO-programmeerimise jaoks tuntud ja paljud toimingud, näiteks lõimimine, on Perlil ka vähem väljendunud.

Järeldus

Nagu eespool näidatud, kui mõlemad keeled on nende sihitud rakenduste osas head, võtab Python algaja jaoks esimese valikuna natuke eelist Perli ees oma puhta ja hõlpsasti mõistetava koodi tõttu, samas kui Perl ületab Pythoni mis puutub stringide manipuleerimise toimingutesse ja mõnedesse UNIX-i täiustatud ühekaitselistesse, näiteks operatsioonisüsteemi ja mitmetesse muudesse operatsioonidesse, mille jaoks see on teada.

Nii et lõpuks sõltub kõik konkreetsest teie sihitud piirkonnast. Kõik teie kommentaarid selle artikli kohta on teretulnud ja palume teil selle teema kohta oma arvamust avaldada, kui teie arvates võidab Python või Perl.