Potopite se globoko v razpravo Python in Perl - Kaj naj se naučim Pythona ali Perla?


Pogosto se ob uvedbi novega programskega jezika začne razprava med nekaterimi genialnimi možgani v panogi, v kateri se jezik primerja z jezikom, ki že širi svoje korenine. V IT industriji se pogosto širi nekakšen buzz, novega pa pogosto primerjajo z vseh vidikov, lahko pa gre za lastnosti, sintakso ali jedro CPU in pomnilnika, vključno z GC časom in vsem, z obstoječim takšnim.

Veliko primerov takšnih primerov je mogoče pobrati in raziskati iz preteklosti, vključno z razpravo med Javo in C #, C ++ itd. Eden takih primerov, ki je vzbudil veliko pozornosti, je bila razprava med dvema jezikoma, ki sta izhajali eden za drugim kratek razpon, tj. Python in Perl.

Medtem ko je bil Python sprva izumljen kot naslednik jezika ABC zgolj kot\"hobi" programski projekt (ki bi pritegnil hekerje Unix/C) za avtorja, ki ga je poimenoval po seriji njegove največje zvezde Monty Pythona.

Perl je bil skoraj dve leti prej kot skriptni jezik Unix, ki naj bi olajšal obdelavo poročil. Bila je mešanica kombinacije številnih jezikov, vključno s C, lupinsko pisavo.

Treba je omeniti, da se te jezike, ki so se razvili z različnimi nameni, nenehno primerja, kar me je spodbudilo k proučevanju in ugotavljanju razlogov, od katerih so nekateri pomembni navedeni spodaj:

  1. Oba ciljana na operacijski sistem Unix, eden za hekerje in drugi za obdelavo poročil.
  2. Oba sta objektno usmerjena (Python je bolj) in interpretirana, pri čemer je eden močno natipkan in jasen pri kodiranju, tj. Python, drugi pa omogočata grdo tipkanje z oklepaji za predstavljanje bloka, tj. Perl
  3. Oboje je načeloma nasprotno, če rečemo, da ima Perl na različne načine eno samo nalogo, medtem ko se python osredotoča na en in samo en način.

Python vs Perl - primerjane funkcije

Poglobimo se v to razpravo in poskusimo ugotoviti splošne vidike, v katerih se ta dva jezika razlikujeta. Poskusimo tudi ugotoviti vir resnice za številne klišeje, ki jih v industriji slišimo reči\"Python je Perl z vadbenimi kolesi" ali\"Python je podoben Perlu, vendar drugačen", tako da lahko poskusimo in zaključimo z natančna rešitev te neskončne razprave.

Python ima veliko prednost pred Perlom, ko gre za berljivost kode. Pythonovo kodo je veliko jasneje razumeti kot kodo Perla, tudi če beremo kodo po letih.

Z vdolbinami, ki predstavljajo blok kode, in pravilnim strukturiranjem je Pythonova koda veliko bolj čista. Po drugi strani pa si Perl izposoja sintakso iz različnih programskih jezikov, kot je C, sed filtri, ko gre za regularne izraze.

Poleg tega lahko '{' in '}' predstavlja blok kode in nepotrebno dodajanje ';' na koncu vsake vrstice, lahko koda v Perlu postane težavo razumeti, če jo preberete po mesecih ali letih, ker dopušča grdo skriptiranje.

Jezik Perl si sposoja sintakso iz C in drugih ukazov UNIX, kot so sed, awk itd., Zaradi česar ima močno in vgrajeno podporo za regex, ne da bi uvažal katere koli tretje module.

Perl lahko obdeluje tudi operacijske sisteme z vgrajenimi funkcijami. Po drugi strani ima Python neodvisne knjižnice za obe operaciji, tj.re za regex in os, sys za os operacije, ki jih je treba zagotoviti pred takimi operacijami.

Perlove operacije regularnih izrazov imajo sintakso "sed", kar olajša ne samo iskalne operacije, temveč tudi nadomeščanje, nadomeščanje in druge operacije niza, ki jih je mogoče enostavno in hitro opraviti kot python, kjer mora oseba vedeti in si zapomniti funkcije, ki jim nuja.

Primer: razmislite o programu za iskanje številke v nizu v Perl in Python.

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

Vidite, da je sintaksa za Perl enostavna in navdihnjena z ukazom sed, ki ima prednost pred sintakso Pythona, ki uvaža modul "re" tretje osebe.

Ena od lastnosti, pri kateri Python zasenči Perl, je njegovo napredno programiranje OO . Python ima obsežno objektno usmerjeno programsko podporo s čisto in dosledno sintakso, medtem ko je objekt OOP v Perlu zastarel, kjer se paket uporablja kot nadomestek za razrede.

Tudi pisanje kode OO v Perl bo kodi dodalo veliko več zapletenosti, kar bi sčasoma otežilo razumevanje kode, tudi podprograme v Perlu je zelo težko programirati in sčasoma težko razumeti pozneje.

Po drugi strani pa je Perl najboljši za enobarvne obloge, ki jih lahko uporabljate v ukazni vrstici za izvajanje različnih nalog. Koda Perl lahko sčasoma opravi različna opravila v manj vrsticah kode kot python.

Primer kratke kode obeh jezikov, ki poudarja zmožnost Perla, da naredi več v manj 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 in slabosti - Python vs Perl

V tem poglavju bomo obravnavali prednosti in slabosti Pythona in Perla.

  1. Ima čisto in elegantno sintakso, zaradi česar je ta jezik odlična izbira kot prvi programski jezik za začetnike, ki želijo imeti praktičen kateri koli programski jezik.
  2. Ima zelo napredno in lastno OO programiranje, prav tako je programiranje niti v Pythonu precej boljše od Perla.
  3. Obstaja veliko aplikacijskih področij, kjer je prednost Python in celo presega Perl. Kot: Perl je najprimernejši za CGI skriptiranje, danes pa sta Pythonova Django in web2py, kot so spletni skriptni jeziki, vse bolj priljubljena in imata veliko zanimanje industrije.
  4. Ima več zavitkov SWIG za različne programske jezike, kot so CPython, IronPython in Jython, njihov razvoj pa je pred razvojem zavitkov SWIG za Perl.
  5. Koda Python je vedno dobro razčlenjena in enostavna za branje in razumevanje, tudi če po letih berete kodo nekoga ali celo svojo kodo.
  6. Python je dober za različne aplikacije, kot so veliki podatki, infrardeča avtomatizacija, strojno učenje, NLP itd., ker ima odprtokodno podporo, ima veliko podporo aktivnih skupnosti.

  1. Obstaja nekaj področij, kjer je izvajanje v Pythonu običajno počasnejše od izvajanja Perla, vključno z operacijami regularnih izrazov in nizov.
  2. Včasih je težko dobiti vrsto spremenljivke v Pythonu, saj je v primeru zelo velike kode treba iti do konca, da dobimo vrsto spremenljivke, ki postane zapletena in zapletena.

  1. Perl ima zmogljive enovrstne linije in celo zagotavlja UNIX-jevo cevovodno sintakso, ki se lahko uporablja v ukazni vrstici za izvajanje različnih nalog, prav tako nanj vpliva Unix in njegovo programiranje ukazne vrstice, tako da v svoje kodiranje vključuje številne ukaze, na katere vpliva UNIX. .
  2. Perl je znan po svojih zmogljivih operacijah primerjave regularnih izrazov in nizov, saj nanj vplivajo sed in awk kot močna orodja UNIX. V primeru operacij regularnih izrazov in nizov, kot so zamenjava, ujemanje, zamenjava, Perl preseže python, za kar bi potrebovali nekaj vrstic kode. Tudi številne vhodno/izhodne operacije datotek, obdelava izjem je hitrejša v Perlu.
  3. Kar zadeva jezik za ustvarjanje poročil, je bil Perl že od svoje uvedbe vedno znan kot eden glavnih razlogov, da je avtor razvil jezik, kot je bil Perl za ustvarjanje poročil.
  4. Številna področja uporabe, kjer se Perl uporablja, so omrežno programiranje, sistemsko upravljanje, CGI skriptiranje (tukaj Python premaguje Perl z Django in web2py) itd.
  5. Tip spremenljivke je enostavno prepoznati s simboli, ki jih Perl uporablja pred njimi, na primer: '@' identificira polja in '%' identificira zgoščene znake.

  1. Perl ima zelo zapleteno kodo, zaradi katere je novinec težko razumljiv. Podprograme in celo druge simbole, kot so: '$\\ "' , '$&' itd., Je težko razumeti in programirati za manj izkušenega programerja. Koda Perl branje bi bilo težko in zapleteno razumeti, razen če imate kakovostno izkušnjo.
  2. OO programiranje v Perlu je nekoliko zastarelo, saj še nikoli ni bilo znano po programiranju OO, številne operacije, kot je navoj, pa so tudi manj izrazite v Perlu.

Zaključek

Kot je razvidno zgoraj, kjer sta oba jezika dobro obravnavana glede na ciljni aplikaciji, ima Python nekoliko prednost pred Perlom kot prva izbira za začetnika zaradi čiste in lahko razumljive kode, medtem ko Perl po drugi strani prekaša Python ko gre za operacije manipulacije nizov in nekatere napredne enovrstne podloge za UNIX, kot so OS in različne druge operacije, po katerih je znana.

Na koncu je vse na določenem področju, na katerega ciljate. Vsi vaši komentarji o tem članku so dobrodošli in vas prosimo, da podate svoje mnenje o temi, če po vašem zmaga Python ali Perl.