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


Usein uuden ohjelmointikielen käyttöönotossa käydään keskustelua joidenkin alan nerokkaiden mielien keskuudessa, jossa kieltä verrataan siihen, joka jo levittää juuriaan. Eräänlainen buzz leviää usein IT-teollisuudessa ja uutta verrataan usein kaikkiin näkökohtiin, olipa sitten kyse ominaisuuksista, syntaksista tai ydinprosessoreista ja muistista, mukaan lukien GC-aika ja kaikki, nykyisen kaltaisen kanssa.

Monet esimerkit tällaisista tapauksista voidaan poimia ja tutkia menneisyydestä, mukaan lukien Java ja C #, C ++ jne. Välinen keskustelu. Yksi tällainen tapaus, joka kiinnitti huomattavaa huomiota, oli kahden kielen välinen keskustelu, joka ilmestyi yksi toisensa jälkeen. lyhyt alue eli Python ja Perl.

Python keksittiin alun perin ABC-kielen seuraajana pelkästään "harrastus" -ohjelmasuunnitteluprojektina (joka houkuttelisi Unix/C-hakkereita) tekijälle, joka nimitti sen suurimman tähtensä Monty Pythonin sarjan mukaan.

Perl oli vain melkein noin 2 vuotta aiemmin Unix-komentosarjakielenä, jonka tarkoituksena oli tehdä raporttien käsittelystä helpompaa. Se oli sekoitus monien kielten yhdistelmää, mukaan lukien C, shell-komentosarja.

Huomionarvoista on, että näitä kieliä, jotka ovat kehittyneet eri tarkoituksilla, verrataan jatkuvasti, mikä on saanut minut tutkimaan ja selvittämään syyt, joista joitain tärkeitä on lueteltu alla:

  1. Molemmat kohdistivat Unix-käyttöjärjestelmän, yhden hakkereille ja muille raporttien käsittelyyn
  2. Molemmat ovat olio-suuntautuneita (Python on enemmän) ja tulkittuja, joista toinen on voimakkaasti kirjoitettu ja selkeä, kun kyseessä on koodaus eli Python, ja muut sallivat ruman kirjoittamisen aaltosulkeilla lohkon eli Perlin edustamiseksi
  3. Molemmat ovat periaatteessa päinvastaisia, kun sanomme, että Perlillä on monia tapoja tehdä yksi tehtävä, kun taas python keskittyy yhteen ja ainoaan tapaan tehdä asioita.

Python vs Perl - Ominaisuudet verrattu

Sukelletaan syvälle tähän keskusteluun ja yritetään selvittää kokonaisnäkökohdat, joissa nämä kaksi kieltä eroavat toisistaan. Yritetään myös selvittää totuuden lähde monille kliseille, jotka teollisuus voi kuulla sanomalla "Python on Perl, jossa on harjoituspyörät" tai "Python on samanlainen kuin Perl, mutta erilainen", jotta voimme yrittää tehdä lopun tarkalla ratkaisulla tähän loputtomaan keskusteluun.

Pythonilla on valtava etu Perliin nähden, kun on kyse koodin luettavuudesta. Pythonin koodi on paljon selkeämmin ymmärrettävissä kuin Perlin, vaikka lukisitkin koodia vuosien jälkeen.

Pythonin koodi on paljon puhtaampi, kun sisennys edustaa koodilohkoa, ja asianmukainen rakenne. Toisaalta Perl lainaa syntaksinsa useilta ohjelmointikieliltä, kuten C, sed-suodattimilta, kun on kyse säännöllisistä lausekkeista.

Sen lisäksi, että '{' ja '}' edustavat koodilohkoa ja tarpeettomat ';' -lisäykset jokaisen rivin lopussa, Perlin koodista voi tulla ongelma ymmärtää, jos luet sen kuukausien tai vuosien jälkeen, koska siinä sallitaan ruma käsikirjoitus.

Perl-kieli lainaa syntaksinsa C: ltä ja muilta UNIX-komentoilta, kuten sed, awk jne., Minkä vuoksi sillä on tavallaan tehokas ja sisäänrakennettu regex-tuki tuomatta kolmannen osapuolen moduuleja.

Perl voi myös käsitellä käyttöjärjestelmän toimintoja käyttämällä sisäänrakennettuja toimintoja. Toisaalta Pythonilla on kolmansien osapuolten kirjastoja sekä operaatioille, ts. Re for regex ja os, sys os-operaatioille, jotka on varmistettava ennen tällaisten toimintojen suorittamista.

Perlin regex-operaatioissa on "sed" kuin syntaksia, mikä helpottaa hakutoimintojen lisäksi myös korvaa, korvaa ja muut merkkijonon toiminnot voidaan tehdä helposti ja nopeasti kuin python, jossa henkilön on tiedettävä ja muistettava toiminnot tarve.

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

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

Näet, että Perlin syntaksin käyttö on helppoa ja innoittamana sed-komennosta, joka hyödyntää Pythonin syntaksia, joka tuo kolmannen osapuolen moduulia 're'.

Yksi ominaisuus, jossa Python varjoaa Perlin, on sen edistynyt OO -ohjelmointi. Pythonilla on laaja objektiivinen ohjelmointituki, jolla on puhdas ja johdonmukainen syntaksit, kun taas Perlissä oleva objekti OOP on vanhentunut, kun pakettia käytetään luokkien korvaajana.

Myös OO -koodin kirjoittaminen Perliin lisää koodiin paljon monimutkaisempaa, mikä lopulta tekisi koodista vaikean ymmärrettävän, jopa Perlin aliohjelmat ovat erittäin vaikea ohjelmoida ja lopulta vaikeita ymmärtää myöhemmin.

Toisaalta, Perl on paras yksilinjoille, joita voidaan käyttää komentorivillä eri tehtävien suorittamiseen. Myös Perl-koodi voi lopulta tehdä erilaisia tehtäviä vähemmän koodiriveillä kuin python.

Lyhytkoodiesimerkki molemmista kielistä, joka korostaa Perlin kykyä tehdä enemmän vähemmän LOC-tilassa:

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 keskustellaan Pythonin ja Perlin eduista ja haitoista.

  1. Siinä on puhdas ja tyylikäs syntaksi, joka tekee tästä kielestä erinomaisen valinnan ensimmäisenä ohjelmointikielenä aloittelijoille, jotka haluavat olla käsillä millä tahansa ohjelmointikielellä.
  2. Sisältää erittäin edistynyttä ja luontaista OO -ohjelmointia, myös Pythonissa ketjuohjelmointi on paljon parempi kuin Perl.
  3. Python on suositeltava monilla sovellusalueilla, ja jopa se ylittää Perlin. Kuten: Perl on suositeltava CGI-komentosarjoille, mutta nykyään Pythonin Django ja web2py, kuten web-komentosarjakielet, ovat yhä suositumpia ja houkuttelevampia teollisuudelta.
  4. Sisältää useita SWIG-kääreitä eri ohjelmointikielille, kuten CPython, IronPython ja Jython, ja niiden kehittäminen on edennyt SWIG-kääreiden kehittämistä Perlille.
  5. Python-koodi on aina hyvin sisennetty ja helppo lukea ja ymmärtää, vaikka lukisit jonkun toisen koodia tai jopa koodiasi vuosien jälkeen.
  6. Python on hyvä erilaisille sovelluksille, kuten Big Data, Infra Automation, Machine Learning, NLP jne., Sillä on valtava tuki aktiivisille yhteisöille avoimen lähdekoodin vuoksi.

  1. On olemassa harvat alueet, joissa Pythonissa suorittaminen on yleensä hitaampaa kuin Perlissä, mukaan lukien regex- ja merkkijono-operaatiot.
  2. Joskus on vaikea saada muuttujatyyppiä Pythonissa, koska erittäin suuren koodin tapauksessa sinun on mentävä loppuun saamaan muuttujatyyppi, joka muuttuu hektiseksi ja monimutkaiseksi.

  1. Perlillä on tehokkaat yksiriviset laitteet ja se varmistaa jopa UNIX-putkiston, kuten syntaksin, jota voidaan käyttää komentorivillä erilaisten tehtävien suorittamiseen, myös Unix vaikuttaa siihen ja sen komentorivin ohjelmointi integroi monet UNIX: n vaikuttamat komennot koodaukseensa .
  2. Perl tunnetaan tehokkaista regex- ja merkkijonovertailutoiminnoistaan, koska sed ja awk vaikuttavat siihen kuin tehokkaat UNIX-työkalut. Regex- ja merkkijono-operaatioissa, kuten korvaaminen, sovitus, korvaaminen, Perl ylittää pythonin, joka tarvitsee muutaman koodirivin saman saavuttamiseksi. Myös monet tiedoston I/O-toiminnot, poikkeusten käsittely tapahtuu nopeammin Perlillä.
  3. Kun kyseessä on kieli raporttien luomista varten, Perl on aina ollut maine sen käyttöönotosta lähtien, koska yksi tärkeimmistä syistä tekijälle kehittää Perlin kaltaista kieltä oli raporttien luominen.
  4. Monia sovellusalueita, joilla Perl löytää käytön, ovat verkko-ohjelmointi, järjestelmänhallinta, CGI-komentosarjat (tässä Python on voittamassa Perlin Djangon ja web2py: n avulla) jne.
  5. Muuttujan tyyppi on helppo tunnistaa symboleilla, joita Perl käyttää ennen niitä, kuten: '@' tunnistaa taulukot ja '%' tunnistaa hajautukset.

  1. Perlillä on hyvin monimutkainen koodi, joka vaikeuttaa aloittelijan ymmärtämistä. Alirutiinit ja jopa muut symbolit, kuten: '$\"' , '$&' jne., On vaikea ymmärtää ja ohjelmoida vähemmän kokeneelle ohjelmoijalle. lukea olisi vaikea ja monimutkainen ymmärtää, ellei sinulla ole laadukasta kokemusta.
  2. OO-ohjelmointi Perlissä on hieman vanhentunutta, koska sitä ei ole koskaan tiedetty OO-ohjelmoinnista, ja monet toiminnot, kuten ketjut, ovat myös vähemmän selvät Perlissä.

Johtopäätös

Kuten yllä nähdään, missä molemmat kielet ovat hyviä heidän mielestään kohdistamiensa sovellusten suhteen, Python käyttää hieman etua Perliin nähden aloittelijan ensimmäisenä vaihtoehtona sen puhtaan ja helposti ymmärrettävän koodin ansiosta, kun taas toisaalta Perl ylittää Pythonin kun on kyse merkkijonon manipulointitoiminnoista ja joistakin edistyneistä yhden linjan käyttöjärjestelmistä UNIX: lle, kuten käyttöjärjestelmälle ja monille muille tunnetuille toiminnoille.

Joten loppujen lopuksi kaikki on kohdennetulla alueella. Kaikki kommenttisi tähän artikkeliin ovat tervetulleita ja pyytäisivät sinua esittämään näkemyksesi aiheesta, jos mielestäsi Python voittaa tai Perl.