Pasinerkite į „Python Vs Perl“ diskusijas – ko turėčiau išmokti „Python“ ar „Perl“?


Dažnai, kai pristatoma nauja programavimo kalba, tarp kai kurių genialių pramonės protų prasideda diskusijos, kuriose kalba lyginama su ta kalba, kuri jau skleidžia savo šaknis. IT pramonėje dažnai plinta tam tikras triukšmas, o naujasis dažnai lyginamas visais aspektais, ar tai gali būti funkcijos, sintaksė ar pagrindinio procesoriaus ir atminties aspektai, įskaitant GC laiką ir visa kita, su esamu tokio tipo.

Daug tokių atvejų pavyzdžių galima paimti ir ištirti iš praeities, įskaitant diskusijas tarp Java ir C#, C++ ir tt. Vienas iš tokių atvejų, sulaukęs daug dėmesio, buvo diskusijos tarp dviejų kalbų, kurios per trumpą laiką pasirodė viena po kitos, t. y. Python ir Perl.

Tuo tarpu Python iš pradžių buvo išrastas kaip ABC kalbos įpėdinis, tik kaip „hobis“ programavimo projektas (kuris pritrauktų Unix/C įsilaužėlius) autoriui, kuris pavadino ją didžiausios jo žvaigždės serija Monty Python.

Siūlomas skaitymas: Kaip pradėti su Python programavimu ir scenarijais Linux sistemoje

Perl buvo beveik 2 metus anksčiau kaip Unix scenarijaus kalba, skirta palengvinti ataskaitų apdorojimą. Tai buvo daugelio kalbų, įskaitant C, awk, sed ir apvalkalo scenarijų, derinys.

Verta atkreipti dėmesį į tai, kad šios skirtingomis intencijomis besivystančios kalbos yra nuolat lyginamos, o tai privertė mane tyrinėti ir išsiaiškinti priežastis, iš kurių keletas svarbių yra išvardytos žemiau:

  1. Abi skirtos Unix operacinei sistemai, viena skirta įsilaužėliams ir kitiems ataskaitoms apdoroti.
  2. Abu yra orientuoti į objektą (daugiau yra Python) ir interpretuojami, o vienas yra griežtai įvestas ir aiškus, kai kalbama apie kodavimą, t.
  3. Abu iš esmės yra priešingi, kai sakome, kad „Perl“ turi daug būdų atlikti vieną užduotį, o „python“ sutelkia dėmesį į vieną ir vienintelį dalykų atlikimo būdą.

Python vs Perl – palygintos funkcijos

Pasinerkime į šias diskusijas ir pabandykime išsiaiškinti bendrus aspektus, kuriais šios dvi kalbos skiriasi viena nuo kitos. Be to, pabandykime išsiaiškinti tiesos šaltinį daugeliui klišių, kurias galima išgirsti pramonėje sakant „Python yra Perlas su mokomaisiais ratais“ arba „Python yra panašus į Perlą, bet skiriasi“, kad galėtume pabandyti ir užbaigti tikslų šios nesibaigiančios diskusijos sprendimą.

1. „Python's Clean“ ir „Perl“ sudėtinga sintaksė

„Python“ turi didžiulį pranašumą prieš „Perl“, kai kalbama apie kodo skaitomumą. Python kodas yra daug aiškiau suprantamas nei Perl, net kai skaitote kodą po metų.

Su įtrauka, vaizduojančia kodo bloką, ir tinkamai susisteminus, Python kodas yra daug švaresnis. Kita vertus, „Perl“ sintaksę skolinasi iš įvairių programavimo kalbų, pvz., C, apvalkalo scenarijų ir net awk ir sed filtrų, kai kalbama apie reguliariąsias išraiškas.

Siūlomas skaitymas: 15 naudingų „sed“ komandų kasdienėms Linux sistemos administravimo užduotims atlikti

Be to, kai '{' ir '}' reiškia kodo bloką ir nereikalingas ';' pridėjimas kiekvienos eilutės pabaigoje, Perl kodas gali tapti Problema, kurią reikia suprasti, jei perskaitysite jį po mėnesių ar metų, nes jame yra bjaurių scenarijų.

2. „Perl“ integruotas ir „Python“ trečiosios šalies „Regex“ ir OS operacijų palaikymas

Perl kalba savo sintaksę skolinasi iš C ir kitų UNIX komandų, pvz., sed, awk ir tt. dėl to jis turi galingą ir įmontuotą regex palaikymą, neimportuojant jokių trečiųjų šalių modulių.

Be to, Perl gali valdyti OS operacijas naudodama integruotas funkcijas. Kita vertus, Python turi trečiųjų šalių bibliotekas abiem operacijoms, t. y. re, skirta regex ir os, sys OS operacijoms, kurias reikia atlikti prieš atliekant tokias operacijas.

„Perl“ reguliariosios išraiškos operacijos turi „sed“ panašią sintaksę, kuri palengvina ne tik paieškos operacijas, bet ir pakeitimo, keitimo ir kitas operacijas su eilute galima atlikti lengvai ir greitai nei python, kai žmogus turi žinoti ir atsiminkite funkcijas, kurios tenkina poreikį.

Pavyzdys: apsvarstykite programą, kuri ieškos skaitmens eilutėje Perl ir Python.

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

Matote, kad Perl sintaksė yra labai paprasta ir įkvėpta komandos sed, kuri naudojasi Python sintaksės pranašumais, importuojančia trečiosios šalies modulį re.

3. Python's Advanced OO programavimas vs Perl's One-Liners

Viena funkcija, kurioje Python užgožia Perl, yra pažangus OO programavimas. Python turi platų objektinio programavimo palaikymą su švaria ir nuoseklia sintaksė, o objektas OOP sistemoje Perl yra pasenęs, kai paketas naudojamas kaip pakaitalas. klasėms.

Siūlomas skaitymas: Darbo su Python Django Web Framework pradžia

Be to, parašius OO kodą Perl programoje, kodas bus daug sudėtingesnis, o tai ilgainiui apsunkins kodo supratimą, net Perl paprogrames labai sunku užprogramuoti ir galiausiai sunku suprasti vėliau.

Kita vertus, „Perl“ geriausiai tinka savo vienkiemiams, kuriuos galima naudoti komandinėje eilutėje įvairioms užduotims atlikti. Be to, Perl kodas ilgainiui gali atlikti įvairias užduotis mažiau kodo eilučių nei python.

Abiejų kalbų trumpojo kodo pavyzdys, išryškinantis Perl gebėjimą nuveikti daugiau naudojant mažiau 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 “$_”; } 

Privalumai ir trūkumai – Python vs Perl

Šiame skyriuje aptarsime Python ir Perl privalumus ir trūkumus.

„Python“ privalumai:

  1. Ji turi švarią ir elegantišką sintaksę, todėl ši kalba yra puikus pasirinkimas kaip pirmoji programavimo kalba pradedantiesiems, norintiems praktiškai naudotis bet kuria programavimo kalba.
  2. Turi labai pažangų ir būdingą OO programavimą, be to, gijų programavimas Python yra daug geresnis nei Perl.
  3. Yra daug taikymo sričių, kuriose pirmenybė teikiama Python ir netgi pranoksta Perl. Patinka: CGI scenarijus teikia pirmenybė Perl, tačiau šiais laikais Python's Django ir web2py pvz., žiniatinklio scenarijų kalbos populiarėja ir labai traukia pramonę.
  4. Turi keletą SWIG paketų, skirtų skirtingoms programavimo kalboms, pvz., CPython, IronPython ir Jython, ir jie buvo sukurti prieš pradedant kurti SWIG įvyniojimų, skirtų Perl.
  5. Python kodas visada yra gerai įtrauktas ir lengvai skaitomas bei suprantamas, net jei skaitote kažkieno kodą ar net savo kodą po metų.
  6. „Python“ tinka įvairioms programoms, tokioms kaip Big Data, Infra Automation, Machine Learning, NLP, etc. didžiulė aktyvių bendruomenių parama, nes yra atvirojo kodo.

Python trūkumai:

  1. Yra keletas sričių, kuriose Python vykdymas paprastai yra lėtesnis nei Perl, įskaitant regex ir eilutėmis pagrįstas operacijas.
  2. Kartais sunku gauti „Python“ kintamojo tipą, nes labai didelio kodo atveju turite eiti iki galo, kad gautumėte kintamojo tipą, kuris tampa įtemptas ir sudėtingas.

„Perl“ privalumai:

  1. „Perl“ turi galingas vieno eilutes ir netgi užtikrina UNIX vamzdyną, panašų į sintaksę, kuri gali būti naudojama komandinėje eilutėje įvairioms užduotims atlikti, taip pat jai įtakos turi „Unix“ ir jos komandų eilutės programavimas, todėl į kodavimą integruota daug UNIX paveiktų komandų.
  2. „Perl“ yra žinomas dėl savo galingų regex ir eilučių palyginimo operacijų, nes jam įtakos turi sed ir awk, pavyzdžiui, galingi UNIX įrankiai. Atliekant reguliariojo reiškinio ir eilučių operacijas, pvz., pakeitimą, atitikimą, pakeitimą, „Perl“ pranoksta „python“, todėl norint pasiekti tas pats. Taip pat daugelis failų įvesties/išvesties operacijų, išimčių tvarkymas atliekamas greičiau Perl.
  3. Kalbant apie ataskaitų generavimo kalbą, „Perl“ visada buvo žinomas nuo pat jos įvedimo kaip viena iš pagrindinių priežasčių, kodėl autorius sukūrė tokią kalbą, kokia buvo „Perl“ ataskaitų generavimui.
  4. Daugelis programų sričių, kuriose „Perl“ naudojasi, yra tinklo programavimas, sistemos administravimas, CGI scenarijus (čia „Python“ įveikia „Perl“ su „Django“ ir „web2py“), ir tt
  5. Kintamojo tipą lengva nustatyti naudojant simbolius, kuriuos „Perl“ naudoja prieš juos, pvz.: „@“ identifikuoja masyvus, o „%“ – maišos.

„Perl“ trūkumai:

  1. „Perl“ turi labai sudėtingą kodą, todėl naujokui sunku jį suprasti. Paprogrames ir net kitus simbolius, tokius kaip: '$`', '$&' ir kt., sunku suprasti ir užprogramuoti mažiau patyrusiam programuotojui. Be to, skaitytą Perl kodą būtų sunku ir sudėtinga suprasti, nebent turite kokybišką patirtį.
  2. OO Programavimas Perl yra šiek tiek pasenęs, nes jis niekada nebuvo žinomas kaip OO programavimas, o daugelis operacijų, pvz., gijų, taip pat yra ne tokios ryškios Perl.

Išvada

Kaip matyti aukščiau, kur abi kalbos yra geros pagal taikomąsias programas, Python turi šiek tiek pranašumo prieš Perl kaip pirmasis naujoko pasirinkimas dėl savo švarus ir lengvai suprantamas kodas, o kita vertus, „Perl“ lenkia „Python“, kai kalbama apie manipuliavimo eilutėmis operacijas ir kai kurias pažangias UNIX platformas, tokias kaip OS ir įvairias kitas žinomas operacijas.

Taigi, galiausiai viskas priklauso nuo konkrečios srities, į kurią taikote. Visi jūsų komentarai apie šį straipsnį yra laukiami ir prašome išsakyti savo nuomonę šia tema, jei, jūsų nuomone, Python arba Perl laimi.