Kafa djúpt í Python vs Perl umræður - hvað ætti ég að læra Python eða Perl?


Oft þegar nýtt forritunarmál er kynnt er umræða sem byrjar meðal einhverra snillinga í greininni þar sem tungumálið er borið saman við það sem þegar er að dreifa rótum sínum. Eins konar suð dreifist oft í upplýsingatækniiðnaðinum og sá nýi er oft borinn saman á öllum sviðum, getur það þá verið eiginleikar, setningafræði eða kjarna CPU og minni þættir þar á meðal GC tíma og allt, við þann sem fyrir er af sinni tegund.

Mörg dæmi um slík tilvik er hægt að tína til og rannsaka frá fortíðinni, þar á meðal umræðuna milli Java og C#, C++ o.s.frv. Eitt slíkt mál sem vakti talsverða athygli var umræðan milli tveggja tungumála sem komu fram hvert á eftir öðru í stutt span þ.e. Python og Perl.

Þar sem Python var upphaflega fundið upp sem arftaki ABC tungumálsins eingöngu sem áhugamál forritunarverkefni (sem myndi laða að Unix/C tölvusnápur) fyrir höfundinn sem nefndi það eftir röð stærstu stjörnu hans Monty Python.

Perl var tæpum tveimur árum áður sem Unix forskriftarmál sem ætlaði að auðvelda skýrsluvinnslu. Það var blanda af blöndu af mörgum tungumálum þar á meðal C, skeljahandriti.

Það sem er athyglisvert er að stöðugt er verið að bera saman þessi tungumál sem þróuðust af mismunandi ásetningi, sem hefur fengið mig til að rannsaka og finna út ástæðurnar, þar af eru nokkrar mikilvægar taldar upp eins og hér að neðan:

  1. Bæði miðuð Unix stýrikerfi, annað fyrir tölvuþrjóta og aðra til að vinna úr skýrslum.
  2. Bæði eru hlutbundin (Python er því meira) og túlkuð, þar sem annað er sterkt vélritað og skýrt þegar kemur að kóðun, þ.e. Python, og annað leyfir ljóta innslátt með axlaböndum til að tákna blokk, þ.e. Perl
  3. Bæði eru andstæð í grundvallaratriðum þegar við segjum, Perl hefur margar leiðir til að gera eitt verkefni á meðan python einbeitir sér að einni og einu leið til að gera hlutina.

Python vs Perl – Eiginleikar bornir saman

Við skulum kafa djúpt inn í þessa umræðu og reyna að átta okkur á heildarþættinum þar sem þessi tvö tungumál greina frá hvort öðru. Við skulum líka reyna að komast að uppsprettu sannleikans fyrir margar klisjur sem heyrast í greininni segja „Python er Perl með æfingahjólum“ eða „Python er svipað og Perl en öðruvísi“ svo að við getum reynt að álykta með nákvæm lausn á þessari endalausu umræðu.

Python tekur gríðarlega forskot á Perl þegar kemur að læsileika kóða. Kóði Python er miklu skýrari að skilja en Perl, jafnvel þegar þú lest kóða eftir mörg ár.

Með inndrætti sem táknar kóðablokkina og rétta uppbyggingu er kóðinn Python miklu hreinni. Á hinn bóginn fær Perl setningafræði sína að láni frá ýmsum forritunarmálum eins og C, sed síum þegar kemur að reglulegum tjáningum.

Fyrir utan þetta, þar sem '{' og '}' tákna kóðablokk og óþarfa viðbót við ';' í lok hverrar línu, gæti kóði í Perl orðið vandamál að skilja ef þú lest það eftir mánuði eða ár vegna þess að það er ljótt handrit.

Perl tungumál fær setningafræði sína að láni frá C og öðrum UNIX skipunum eins og sed, awk o.s.frv., þar af leiðandi hefur það mjög öflugan og innbyggðan regex stuðning án þess að flytja inn einingar frá þriðja aðila.

Einnig getur Perl séð um stýrikerfisaðgerðir með því að nota innbyggðar aðgerðir. Aftur á móti hefur Python þriðja aðila bókasöfn fyrir bæði aðgerðirnar, þ.e.a.s. fyrir regex og os, sys fyrir stýrikerfisaðgerðir sem þarf að tryggja áður en slíkar aðgerðir eru framkvæmdar.

Regex-aðgerðir Perl hafa 'sed' eins og setningafræði sem auðveldar ekki aðeins leitaraðgerðir heldur einnig að skipta út, skipta út og öðrum aðgerðum á streng er hægt að gera auðveldlega og hratt en python þar sem einstaklingur þarf að þekkja og muna aðgerðirnar sem koma til móts við þörfin.

Dæmi: Íhugaðu forrit til að leita að tölustaf í strengnum í Perl og Python.

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

Þú sérð að setningafræðin fyrir Perl er mjög auðveld og innblásin af sed skipuninni sem nýtir sér setningafræði Python sem flytur inn „re“ frá þriðja aðila.

Einn eiginleiki þar sem Python skyggir á Perl er háþróuð OO forritun þess. Python hefur víðtækan hlutbundinn forritunarstuðning með hreinni og samkvæmri setningafræði á meðan hluturinn OOP í Perl er úreltur þar sem pakkinn er notaður sem staðgengill fyrir flokka.

Að skrifa OO kóða í Perl mun einnig bæta kóðann miklu flóknari, sem myndi á endanum gera kóðann erfiðan að skilja, jafnvel undirrútur í Perl eru mjög erfiðar í forritun og á endanum erfiðar að skilja síðar.

Á hinn bóginn er Perl best fyrir einlínu sína sem hægt er að nota á skipanalínunni til að framkvæma hin ýmsu verkefni. Einnig getur Perl kóða að lokum gert ýmis verkefni í færri línum af kóða en python.

Stuttkóðadæmi um bæði tungumálin sem undirstrikar getu Perl til að gera meira í minna 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 “$_”; } 

Kostir og gallar - Python vs Perl

Í þessum hluta munum við ræða kosti og galla Python og Perl.

  1. Það hefur hreina og glæsilega setningafræði sem gerir þetta tungumál að frábæru vali sem fyrsta forritunarmál fyrir byrjendur sem vilja læra hvaða forritunarmál sem er.
  2. Er með mjög háþróaða og eðlislæga OO forritun, einnig er þráðaforritun í Python miklu betri en Perl.
  3. Það eru mörg forritasvæði þar sem Python er ákjósanlegur og jafnvel það er betri en Perl. Eins og: Perl er valinn fyrir CGI forskriftir en nú á dögum eru Python's Django og web2py eins og vefforskriftarmál að verða vinsælli og hafa mikið aðdráttarafl frá greininni.
  4. Er með nokkra SWIG umbúðir fyrir mismunandi forritunarmál eins og CPython, IronPython og Jython og þróun þeirra hefur verið á undan þróun SWIG umbúða fyrir Perl.
  5. Python-kóði er alltaf vel inndreginn og auðvelt að lesa og skilja, jafnvel þótt þú sért að lesa kóða einhvers annars eða jafnvel kóðann þinn eftir mörg ár.
  6. Python er gott fyrir ýmis forrit eins og Big Data, Infra Automation, Machine Learning, NLP, o.s.frv., það hefur mikinn stuðning frá virkum samfélögum vegna þess að það er opinn uppspretta.

  1. Það eru fá svæði þar sem keyrsla í Python er venjulega hægari en Perl, þar með talið regex og strengjabundnar aðgerðir.
  2. Stundum er erfitt að fá tegund breytu í Python þar sem í tilfellum af mjög stórum kóða þarftu að fara til loka til að fá tegund breytu sem verður erilsamur og flókinn.

  1. Perl er með öfluga einlínu og tryggir jafnvel UNIX lagnir eins og setningafræði sem hægt er að nota á skipanalínunni til að framkvæma ýmis verkefni, einnig er hún undir áhrifum frá Unix og skipanalínuforritun þess svo samþættir margar skipanir undir áhrifum UNIX í kóðun sinni .
  2. Perl er þekkt fyrir öfluga regex- og strengsamanburðaraðgerðir þar sem það er undir áhrifum frá sed og awk eins og öflugum UNIX verkfærum. Þegar um er að ræða regex og strengjaaðgerðir eins og skipti, samsvörun, skipti, er Perl betri en python sem myndi taka nokkrar línur af kóða til að ná því sama. Einnig margar skrár I/O aðgerðir, meðhöndlun undantekninga er hraðari á Perl.
  3. Þegar kemur að tungumáli fyrir skýrslugerð hefur Perl alltaf verið fræg frá því að það var kynnt sem ein helsta ástæða þess að höfundur þróaði tungumál eins og Perl var fyrir skýrslugerð.
  4. Mörg forritasvæði þar sem Perl finnur notkun þess eru netforritun, kerfisstjórnun, CGI scripting (hér er Python að sigrast á Perl með Django og web2py), o.s.frv.
  5. Það er auðvelt að bera kennsl á gerð breytu með táknunum sem Perl notar á undan þeim, eins og: '@' auðkennir fylki og '%' auðkennir kjötkássa.< /li>

  1. Perl er með mjög flókinn kóða sem gerir það erfitt að skilja fyrir nýliði. Undirvenjur og jafnvel önnur tákn eins og: '$\', '$&' osfrv eru erfiðar að skilja og forrita fyrir minna reyndan forritara. Einnig Perl kóða þegar lestur væri erfitt og flókið að skilja nema þú hafir góða reynslu.
  2. OO forritun í Perl er svolítið úrelt þar sem hún hefur aldrei verið þekkt fyrir OO forritun og margar aðgerðir eins og þráður eru líka minna áberandi á Perl.

Niðurstaða

Eins og sést hér að ofan þar sem bæði tungumálin eru góð með tilliti til þeirra forrita sem þau miða á, tekur Python dálítið forskot á Perl sem fyrsta val fyrir byrjendur vegna hreins og auðskiljanlegs kóða, en á hinn bóginn er Perl betri en Python þegar það kemur að strengjameðferðaraðgerðum og nokkrum háþróuðum einlínum fyrir UNIX eins og OS og ýmsar aðrar aðgerðir sem það er þekkt fyrir.

Svo, á endanum, snýst þetta allt um það tiltekna svæði sem þú miðar á. Allar athugasemdir þínar við þessa grein eru vel þegnar og biðja þig um að gefa þínar skoðanir á efninu ef Python vinnur eða Perl samkvæmt þér.