Sukella syvälle Python Vs Perl -keskusteluun - Mitä minun pitäisi oppia Python tai Perl?


Usein, kun uusi ohjelmointikieli otetaan käyttöön, alan nerojen keskuudessa alkaa keskustelu, jossa kieltä verrataan siihen, joka jo levittää juuriaan. IT-alalla leviää usein eräänlainen kuhina ja uutta verrataan usein kaikilta osin, olipa se sitten ominaisuuksia, syntaksia tai ydinprosessori- ja muistinäkökohtia, mukaan lukien GC-aika ja kaikki, olemassa olevaan laatuaan.

Monia esimerkkejä tällaisista tapauksista voidaan poimia ja tutkia menneisyydestä, mukaan lukien keskustelu Javan ja C#, C++, jne. välillä. Yksi tällainen tapaus, joka herätti paljon huomiota, oli keskustelu kahden peräkkäin lyhyessä ajassa ilmestyneen kielen välillä, eli Python ja Perl.

Kun taas Python keksittiin alun perin ABC-kielen seuraajaksi vain "harrastus" -ohjelmointiprojektiksi (joka houkutteli Unix/C-hakkereita) kirjoittajalle, joka nimesi sen hänen suurimman tähtensä Monty Python -sarja.

Suositeltu luku: Python-ohjelmoinnin ja komentosarjan käytön aloittaminen Linuxissa

Perl oli vain melkein kaksi vuotta aiemmin Unix-komentosarjakielinä, jonka tarkoituksena oli helpottaa raporttien käsittelyä. Se oli sekoitus useiden kielten yhdistelmää, mukaan lukien C, awk, sed ja komentotulkkikirjoitus.

Huomionarvoinen asia on se, että näitä eri tarkoitusperiä kehittyneitä kieliä verrataan jatkuvasti, mikä on saanut minut tutkimaan ja selvittämään syitä, joista muutama tärkeä on lueteltu alla:

  1. Molemmat kohdistettiin Unix-käyttöjärjestelmään, toinen hakkereille ja muille raporttien käsittelyä varten.
  2. Molemmat ovat oliosuuntautuneita (Python on enemmän) ja tulkittuja, joista toinen on vahvasti kirjoitettu ja selkeä koodauksessa, eli Python, ja toiset sallivat ruman kirjoittamisen aaltosulkeilla lohkon eli Perlin edustamiseksi.
  3. Molemmat ovat periaatteessa vastakkaisia, kun sanomme, Perlillä on monia tapoja tehdä yksi tehtävä, kun taas python keskittyy yhteen ja vain yhteen tapaan tehdä asioita.

Python vs Perl – Ominaisuudet verrattuna

Sukellaanpa syvälle tähän keskusteluun ja yritetään selvittää yleiset näkökohdat, joissa nämä kaksi kieltä eroavat toisistaan. Yritetään myös selvittää totuuden lähde monille kliseille, joita voidaan kuulla alalla sanovan "Python on Perl harjoituspyörillä" tai "Python on samanlainen kuin Perl, mutta erilainen vahva>”, jotta voimme yrittää päättää täsmällisen ratkaisun tähän loputtomaan keskusteluun.

1. Python's Clean vs Perl's Complex Syntax

Pythonilla on valtava etu Perliin verrattuna koodin luettavuuden suhteen. Pythonin koodi on paljon selkeämmin ymmärrettävä kuin Perlin koodi, vaikka luet koodia vuosien jälkeen.

Koodilohkoa edustavan sisennyksen ja asianmukaisen rakenteen ansiosta Pythonin koodi on paljon puhtaampi. Toisaalta Perl lainaa syntaksia useista ohjelmointikielistä, kuten C, shell-komentosarjoista ja jopa awk- ja sed-suodattimista säännöllisten lausekkeiden osalta.

Suositeltu luku: 15 hyödyllistä "sed"-komentoa päivittäisiin Linuxin järjestelmänhallintatehtäviin

Tämän lisäksi, kun '{' ja '}' edustavat koodilohkoa ja tarpeettomasti lisättynä ';' jokaisen rivin loppuun, Perlin koodista voi tulla Ymmärrettävä ongelma, jos luet sen kuukausien tai vuosien jälkeen, koska se sallii ruman käsikirjoituksen.

2. Perlin sisäänrakennettu vs Pythonin kolmannen osapuolen Regex- ja käyttöjärjestelmän tuki

Perl-kieli lainaa syntaksia C:stä ja muista UNIX-komennoista, kuten sed, awk, jne. minkä vuoksi sillä on tehokas ja sisäänrakennettu regex-tuki ilman kolmannen osapuolen moduulien tuontia.

Myös Perl pystyy käsittelemään käyttöjärjestelmän toimintoja sisäänrakennettujen toimintojen avulla. Toisaalta Pythonilla on kolmannen osapuolen kirjastot molemmille toiminnoille, eli re regexille ja os, sys OS-toiminnoille, jotka tarvitsevat on varmistettava ennen tällaisten toimintojen suorittamista.

Perlin regex-operaatioissa on 'sed' kaltainen syntaksi, joka helpottaa hakutoimintojen lisäksi myös merkkijonon korvaamista, korvaamista ja muita operaatioita helposti ja nopeasti kuin pythonissa, jossa henkilön on tiedettävä ja muista tarpeita vastaavat toiminnot.

Esimerkki: Harkitse ohjelmaa, joka etsii merkkijonosta numeroa Perlissä ja Pythonissa.

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

Huomaat, että Perlin syntaksi on helppo ja se on saanut inspiraationsa sed-komennosta, joka hyödyntää Pythonin syntaksia, joka tuo kolmannen osapuolen moduulin 're'.

3. Pythonin Advanced OO -ohjelmointi vs. Perlin One-Liners

Yksi ominaisuus, jossa Python syrjäyttää Perlin, on sen edistynyt OO-ohjelmointi. Pythonilla on laaja olio-ohjelmointituki puhtaalla ja johdonmukaisella syntaksilla, kun taas Perlin-objekti OOP on vanhentunut, jos pakettia käytetään korvikkeena. luokkia varten.

Suositeltu luku: Python Django Web Frameworkin käytön aloittaminen

Myös OO-koodin kirjoittaminen Perlissä tekee koodista paljon monimutkaisempaa, mikä tekisi koodista lopulta vaikeaksi ymmärtää, jopa Perlin aliohjelmia on erittäin vaikea ohjelmoida ja lopulta vaikea ymmärtää myöhemmin.

Toisaalta Perl on paras yksilinjaisilleen, joita voidaan käyttää komentorivillä eri tehtävien suorittamiseen. Perl-koodi voi myös lopulta suorittaa erilaisia tehtäviä harvemmilla koodiriveillä kuin python.

Lyhytkoodiesimerkki molemmista kielistä, joka korostaa Perlin kykyä tehdä enemmän pienemmällä LOC:lla:

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

Plussat ja miinukset - Python vs Perl

Tässä osiossa keskustelemme Pythonin ja Perlin eduista ja haitoista.

Python plussat:

  1. Siinä on puhdas ja tyylikäs syntaksi, mikä tekee tästä kielestä loistavan valinnan ensimmäiseksi ohjelmointikieleksi aloittelijoille, jotka haluavat tutustua mihin tahansa ohjelmointikieleen.
  2. Siinä on erittäin edistynyt ja luontainen OO-ohjelmointi, myös säikeiden ohjelmointi Pythonissa on paljon parempi kuin Perl.
  3. On monia sovellusalueita, joilla Python on suositeltava, ja jopa se on parempi kuin Perl. Tavoin: Perl on suositeltavampi CGI-komentosarjaan, mutta nykyään Pythonin Django ja web2py, kuten web-skriptikielet, ovat tulossa suositummiksi, ja niillä on valtava vetovoima alalla.
  4. Siinä on useita SWIG-kääreitä eri ohjelmointikielille, kuten CPython, IronPython ja Jython, ja näiden kehitys on edeltänyt kehitystä SWIG-kääreistä Perlille.
  5. Python-koodi on aina hyvin sisennetty ja helppolukuinen ja ymmärrettävä, vaikka lukisit jonkun toisen koodia tai jopa koodiasi vuosien jälkeen.
  6. Python sopii erilaisiin sovelluksiin, kuten Big Data, Infra Automation, Machine Learning, NLP, jne. valtava tuki aktiivisille yhteisöille, koska se on avoin lähdekoodi.

Python MIINUKSET:

  1. On muutamia alueita, joilla Pythonin suoritus on yleensä hitaampaa kuin Perlissä, mukaan lukien regex ja merkkijonopohjaiset toiminnot.
  2. Joskus on vaikea saada Pythonissa muuttujan tyyppiä, koska erittäin suuren koodin tapauksessa sinun on mentävä loppuun asti saadaksesi muuttujan tyyppi, josta tulee hektinen ja monimutkainen.

Perl PLUSSAT:

  1. Perlillä on tehokkaat yksiriviset ja jopa UNIX-putkistojen kaltainen syntaksi, jota voidaan käyttää komentorivillä eri tehtävien suorittamiseen, myös Unix ja sen komentoriviohjelmointi vaikuttavat siihen, joten se integroi monia UNIX-vaikutteisia komentoja koodaukseensa.
  2. Perl tunnetaan tehokkaista regex-- ja merkkijonojen vertailutoiminnoistaan, sillä siihen vaikuttavat sed- ja awk-työkalut, kuten tehokkaat UNIX-työkalut. Kun kyseessä ovat säännölliset lausekkeet ja merkkijonotoiminnot, kuten korvaus, sovitus, korvaus, Perl toimii paremmin kuin python, mikä vaatisi muutaman rivin koodia saavuttaakseen sama. Myös monet tiedostojen I/O-toiminnot, poikkeusten käsittely tapahtuu nopeammin Perlissä.
  3. Mitä tulee raporttien luomiseen tarkoitetun kielen, Perl on aina ollut kuuluisa sen käyttöönotosta lähtien yhtenä tärkeimmistä syistä, miksi kirjoittaja kehittää kieltä, kuten Perl oli raporttien luomiseen.
  4. Monet sovellusalueet, joilla Perl käyttää sitä, ovat verkko-ohjelmointi, järjestelmänhallinta, CGI-komentosarja (tässä Python voittaa Perlin Djangon ja web2pyn kanssa), jne.
  5. Muuttujan tyyppi on helppo tunnistaa Perlin ennen niitä käyttämistä symboleista, kuten: '@' tunnistaa taulukot ja '%' tiivisteet.

Perl MIINUKSET:

  1. Perlillä on erittäin monimutkainen koodi, joka vaikeuttaa sen ymmärtämistä aloittelijalle. Alirutiineja ja jopa muita symboleja, kuten: '$`', '$&' jne., on vaikea ymmärtää ja ohjelmoida vähemmän kokeneelle ohjelmoijalle. Myös Perl-koodin lukeminen olisi vaikeaa ja monimutkaista ymmärtää, ellei sinulla ole laadukasta kokemusta.
  2. OO Ohjelmointi Perlissä on hieman vanhentunutta, koska se ei ole koskaan ollut tunnettu OO-ohjelmoinnista ja monet toiminnot, kuten ketjuttaminen, ovat myös vähemmän ilmeisiä Perlissä.

Johtopäätös

Kuten yllä näkyy, missä molemmat kielet ovat hyviä kohdesovelluksissaan, Python saa hieman etua Perliin verrattuna, koska se on aloittelijan ensimmäinen valinta. puhdasta ja helposti ymmärrettävää koodia, kun taas toisaalta Perl ylittää Pythonin merkkijonojen muokkaustoiminnoissa ja joissakin edistyneissä yksilinjaisissa UNIX-järjestelmissä, kuten käyttöjärjestelmässä ja useissa muissa tunnetuissa toiminnoissa.

Joten loppujen lopuksi kaikki riippuu tietystä alueesta, johon kohdistat. Kaikki kommenttisi tähän artikkeliin ovat tervetulleita ja pyydämme sinua kertomaan mielipiteesi aiheesta, jos sinun mielestäsi Python tai Perl voittaa.