Zaronite duboko u Python protiv Perl debate - što trebam naučiti Python ili Perl?


Često kada se uvede novi programski jezik, započne rasprava među nekim genijalnim umovima u industriji u kojoj se jezik uspoređuje s onim koji već širi svoje korijene. Neka vrsta zujanja često se širi u IT industriji, a nova se često uspoređuje po svim aspektima, a to mogu biti značajke, sintaksa ili jezgra CPU-a i memorije, uključujući GC vrijeme i sve ostalo, s postojećim te vrste.

Mnogi primjeri takvih slučajeva mogu se pokupiti i istražiti iz prošlosti, uključujući raspravu između Jave i C #, C ++ itd. Jedan od takvih slučajeva koji je privukao značajnu pozornost bila je rasprava između dva jezika koja je izašla jedan za drugim u kratak raspon tj. Python i Perl.

Dok je Python u početku izumljen kao nasljednik ABC jezika samo kao "hobi" programski projekt (koji bi privukao Unix/C hakere) za autora koji ga je nazvao po seriji njegove najveće zvijezde Monty Pythona.

Perl je bio gotovo otprilike dvije godine ranije kao Unixov skriptni jezik koji je trebao olakšati obradu izvještaja. Bila je to mješavina kombinacije mnogih jezika, uključujući C, ljusku skriptu.

Ono što vrijedi napomenuti jest da se ovi jezici koji su se razvili iz različitih namjera neprestano uspoređuju, što me natjeralo da proučim i shvatim razloge, od kojih su neki važni navedeni u nastavku:

  1. Obje su ciljale Unix operativni sustav, jedan za hakere i drugi za obradu izvještaja.
  2. Obje su objektno orijentirane (Python je više) i interpretirane su, s tim da je jedna jako otkucana i jasna kada je u pitanju kodiranje tj. Python, a druga omogućava ružno tipkanje zagradama za predstavljanje bloka, tj. Perl
  3. Obje su u principu suprotne kad kažemo, Perl ima mnogo načina za izvršavanje jednog zadatka, dok se python usredotočuje na jedan i jedini način na koji to radi.

Python vs Perl - Usporedbe značajki

Zaronimo duboko u ovu raspravu i pokušajmo dokučiti sveukupne aspekte u kojima se ova dva jezika međusobno razlikuju. Pokušajmo također otkriti izvor istine za mnoge klišee koji se mogu čuti u industriji kako kažu „Python je Perl s kotačićima za vježbanje“ ili „Python je sličan Perlu, ali drugačiji“, tako da možemo pokušati zaključiti s točnim rješenjem na ovu beskrajnu raspravu.

Python ima veliku prednost u odnosu na Perl što se tiče čitljivosti koda. Pythonov kôd puno je jasnije razumjeti od Perlovog čak i kada čita kod nakon nekoliko godina.

S uvlačenjem koje predstavlja blok koda i pravilnim strukturiranjem, Pythonov kod je puno čišći. S druge strane, Perl posuđuje sintaksu iz različitih programskih jezika poput C, sed filtera kada su u pitanju regularni izrazi.

Osim toga, s '{' i '}' koji predstavljaju blok koda i nepotrebno dodavanje ';' na kraju svakog retka, kôd u Perlu mogao bi postati problem koji treba razumjeti ako ga pročitate nakon nekoliko mjeseci ili godina zbog dopuštanja ružnog skriptiranja.

Perl jezik posuđuje sintaksu iz C i ostalih UNIX naredbi poput sed, awk itd., Zbog čega ima moćnu i ugrađenu podršku za regularni izraz bez uvoza modula treće strane.

Također, Perl se može nositi s operacijama OS-a koristeći ugrađene funkcije. S druge strane, Python ima biblioteke treće strane za obje operacije, tj. Re za regex i os, sys za os operacije koje treba osigurati prije izvođenja takvih operacija.

Perlove operacije regularnih izraza imaju sintaksu poput "sed", što olakšava ne samo operacije pretraživanja, već i zamjenu, zamjenu i druge operacije na nizu, lako i brzo od pythona, gdje osoba treba znati i upamtiti funkcije koje joj odgovaraju potreba.

Primjer: Razmotrite program za traženje znamenke u nizu u Perlu i Pythonu.

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

Vidite da je sintaksa za Perl jednostavna i nadahnuta naredbom sed koja iskorištava prednost nad sintaksom Pythona koja uvozi modul "re" treće strane.

Jedna značajka u kojoj Python zasjenjuje Perl je njegovo napredno OO programiranje. Python ima opsežnu podršku objektno orijentiranog programiranja s čistom i dosljednom sintaksom, dok je objekt OOP u Perlu zastario gdje se paket koristi kao zamjena za klase.

Također, pisanje OO koda u Perl dodat će puno više složenosti kodu, što bi na kraju otežalo razumijevanje koda, čak je i potprograme u Perlu vrlo teško programirati, a kasnije ih je teško razumjeti.

S druge strane, Perl je najbolji za svoje jednostruke linije koje se mogu koristiti na naredbenom retku za izvršavanje različitih zadataka. Također, Perl kôd na kraju može obavljati razne zadatke u manje redaka koda od pythona.

Primjer kratkog koda za oba jezika koji ističe sposobnost Perla da učini više u manje 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 “$_”; } 

Prednosti i nedostaci - Python vs Perl

U ovom ćemo odjeljku razgovarati o prednostima i nedostacima Pythona i Perla.

  1. Ima čistu i elegantnu sintaksu što ovaj jezik čini izvrsnim izborom kao prvim programskim jezikom za početnike koji žele imati praktičan rad sa bilo kojim programskim jezikom.
  2. Ima vrlo napredno i svojstveno OO programiranje, također programiranje niti u Pythonu puno je bolje od Perla.
  3. Postoje mnoga područja primjene u kojima se daje prednost Pythonu, pa čak i on nadmašuje Perl. Poput: Perl je poželjniji za CGI skriptiranje, ali danas Pythonov Django i web2py poput web skriptnih jezika postaju sve popularniji i privlače veliku pažnju industrije.
  4. Ima nekoliko SWIG omotača za različite programske jezike kao što su CPython, IronPython i Jython, a njihov razvoj prethodio je razvoju SWIG omotača za Perl.
  5. Python kôd uvijek je dobro uvučen i lagan za čitanje i razumijevanje, čak i ako čitate tuđi kôd ili čak svoj kôd nakon godina.
  6. Python je dobar za razne aplikacije poput velikih podataka, Infra automatizacije, Strojnog učenja, NLP-a itd., ima ogromnu podršku aktivnih zajednica jer je otvoren izvor.

  1. Malo je područja u kojima je izvršavanje u Pythonu obično sporije od onog u Perlu, uključujući regex i operacije temeljene na stringovima.
  2. Ponekad je teško dobiti vrstu varijable u Pythonu, jer u slučajevima vrlo velikog koda, morate ići do kraja da biste dobili vrstu varijable koja postaje užurbana i složena.

  1. Perl ima moćne jednostruke linije i čak osigurava UNIX cjevovode poput sintakse koji se mogu koristiti na naredbenom retku za izvršavanje različitih zadataka, također na to utječe Unix i njegovo programiranje naredbenog retka pa u svoje kodiranje integrira mnoge naredbe pod utjecajem UNIX-a .
  2. Perl je poznat po svojim moćnim operacijama poređenja regularnih izraza i niza jer je pod utjecajem sed i awk poput moćnih UNIX alata. U slučaju operacija regularnih izraza i niza poput zamjene, podudaranja, zamjene, Perl nadmašuje python koji bi trebao nekoliko redaka koda da bi postigao isto. Također mnoge I/O operacije s datotekama, obrada iznimki brže se obavlja na Perlu.
  3. Što se tiče jezika za generiranje izvještaja, Perl je uvijek bio na glasu od svog uvođenja kao jedan od glavnih razloga da autor razvije jezik poput Perla za generiranje izvještaja.
  4. Mnoga područja primjene u kojima Perl koristi su mrežno programiranje, administracija sustava, CGI skriptiranje (ovdje Python svladava Perl pomoću Djanga i web2py) itd.
  5. Lako je identificirati vrstu varijable sa simbolima koje Perl koristi prije njih, poput: '@' identificira nizove i '%' identificira hešove.

  1. Perl ima vrlo složen kôd zbog kojeg je početniku teško razumjeti. Podprograme, pa čak i druge simbole poput: '$\"' , '$&' itd. Teško je razumjeti i programirati za manje iskusnog programera. Također, Perl kod kada čitanje bi bilo teško i složeno razumjeti ako nemate kvalitetno iskustvo.
  2. OO programiranje u Perlu pomalo je zastarjelo jer nikada nije bilo poznato po OO programiranju, a mnoge su operacije poput navoja niti manje izražene na Perlu.

Zaključak

Kao što se vidi gore, gdje su oba jezika dobra po svom pogledu prema aplikacijama koje ciljaju, Python ima malo prednosti nad Perlom kao prvi izbor za početnika zbog čistog i lako razumljivog koda, dok s druge strane Perl nadmašuje Python kada je riječ o operacijama manipulacije nizovima i nekim naprednim jednostrukim linijama za UNIX poput OS-a i raznih drugih operacija po kojima je poznat.

Na kraju, sve je na određenom području koje ciljate. Svi vaši komentari na ovaj članak su dobrodošli i tražili bi od vas da date svoje stavove o toj temi ako prema vama Python pobijedi ili Perl.