Weboldal keresés

Merüljön el mélyen a Python vs Perl vitában - mit tanuljak meg a Pythonról vagy a Perlről?


Egy új programozási nyelv bevezetésekor gyakran vita indul meg az iparág néhány zseniális elméje között, ahol a nyelvet összehasonlítják azzal, amelyik már terjeszti a gyökereit. Egyfajta felhajtás gyakran terjed az IT-iparban, és az újat gyakran összehasonlítják minden szempontból, legyen szó akár szolgáltatásokról, szintaxisról vagy mag CPU-ról és memóriáról, beleértve a GC-időt és minden mást, a meglévővel.

Az ilyen esetekre számos példa gyűjthető és vizsgálható a múltból, beleértve a Java és a C#, C++, stb. közötti vitát. Az egyik ilyen eset, amely jelentős figyelmet keltett, a két nyelv közötti vita volt, amelyek rövid időn belül egymás után jelentek meg, azaz a Python és a Perl.

Míg a Pythont eredetileg az ABC nyelv utódjaként találták fel, pusztán „hobbi” programozási projektként (amely vonzza a Unix/C hackereket) a szerző számára, aki a nyelvet a legnagyobb sztárja, a Monty Python sorozata.

Javasolt olvasmány: Kezdő lépések a Python programozással és szkriptekkel Linux alatt

A Perl csak majdnem két évvel korábban volt Unix szkriptnyelv, amelynek célja a jelentések feldolgozásának megkönnyítése volt. Számos nyelv keveréke volt, köztük a C, az awk, a sed és a shell script.

Érdemes megjegyezni, hogy ezeket a különböző szándékkal kialakult nyelveket folyamatosan összehasonlítják, ami arra késztetett, hogy tanulmányozzam és kitaláljam az okokat, amelyek közül néhány fontosabbat az alábbiakban felsorolunk:

  1. Mindkettő a Unix operációs rendszert célozta meg, az egyik a hackerek és mások számára a jelentések feldolgozásához.
  2. Mindkettő objektumorientált (a Python a több) és értelmezett, az egyik erősen begépelt és egyértelmű, ha kódolásról van szó, például Pythonról, a másik pedig lehetővé teszi a csúnya gépelést kapcsos zárójelekkel egy blokk, azaz a Perl ábrázolására.
  3. Mindkettő elvileg ellentétes, amikor azt mondjuk, hogy a Perlnek számos módja van egyetlen feladat elvégzésére, míg a python a dolgok egy és egyetlen módjára összpontosít.

Python vs Perl – Összehasonlított szolgáltatások

Merüljünk el mélyen ebbe a vitába, és próbáljuk meg kitalálni, hogy ez a két nyelv milyen átfogó szempontokat különböztet meg egymástól. Próbáljuk meg kideríteni az igazság forrását sok olyan közhely esetében, amelyek a szakmában azt mondják, hogy „A Python egy gyakorlókerekes Perl” vagy „A Python hasonló a Perlhez, de más”, hogy megpróbálhassuk pontos megoldással zárni ezt a véget nem érő vitát.

1. Python's Clean kontra Perl összetett szintaxisa

A Python hatalmas előnyre tesz szert a Perl-lel szemben, ha a kód olvashatóságáról van szó. A Python kódja sokkal tisztábban érthető, mint a Perl, még akkor is, ha évek után olvassa el a kódot.

A kódblokkot képviselő behúzással és megfelelő strukturálással a Python kódja sokkal tisztább. Másrészt a Perl a szintaxisát különböző programozási nyelvekből kölcsönzi, például a Cből, a shell scriptingből, sőt az awk és sed szűrőkből is, ha reguláris kifejezésekről van szó.

Javasolt olvasmány: 15 hasznos "sed" parancs a napi Linux rendszerfelügyeleti feladatokhoz

Ettől eltekintve, ha a '{' és '}' egy kódblokkot jelent, és a ';' szükségtelen hozzáadásával az egyes sorok végén a Perl kódja a következővé válhat. probléma megérteni, ha hónapok vagy évek után elolvassa, mert megengedett a csúnya szkript.

2. A Perl beépített vs Python harmadik fél Regex és operációs rendszer támogatása

A Perl nyelv a szintaxisát a C-ből és más UNIX parancsokból kölcsönzi, például a sed, awk, stb. Ennek köszönhetően nagy teljesítményű és beépített regex-támogatással rendelkezik harmadik féltől származó modulok importálása nélkül.

Ezenkívül a Perl képes kezelni az operációs rendszer műveleteit a beépített funkciók segítségével. Másrészt a Python rendelkezik harmadik féltől származó könyvtárakkal mindkét művelethez, azaz a re a regex és az os, sys az operációs rendszer műveleteihez, amelyekhez ilyen műveletek elvégzése előtt meg kell győződni.

A Perl regex műveletei 'sed-szerű szintaxissal rendelkeznek, amely nem csak a keresési műveleteket teszi egyszerűvé, hanem a karakterláncon végzett helyettesítési, helyettesítési és egyéb műveletek is könnyen és gyorsan elvégezhetők, mint a python, ahol az embernek tudnia kell és ne feledje az igényt kielégítő funkciókat.

Példa: Vegyünk egy programot, amely egy számjegyet keres a karakterláncban Perlben és Pythonban.

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

Látja, hogy a Perl szintaxisa nagyon egyszerű, és a sed parancs ihlette, amely kihasználja a Python szintaxisát, amely harmadik féltől származó 're' modult importál.

3. Python Advanced OO programozás vs Perl One-Liners

Az egyik olyan funkció, ahol a Python háttérbe szorítja a Perl-et, az a fejlett OO programozás. A Python kiterjedt objektum-orientált programozási támogatást nyújt tiszta és következetes szintaxissal, míg a Perl-ben az OOP objektum elavult, ahol a csomagot helyettesítőként használják osztályok számára.

Javasolt olvasmány: A Python Django Web Framework használatának megkezdése

Ezenkívül az OO kód írása Perlben sokkal bonyolultabbá teszi a kódot, ami végül megnehezíti a kód megértését, még a Perl szubrutinjait is nagyon nehéz programozni, és később nehéz megérteni.

Másrészt a Perl a legjobb egysoros programjaihoz, amelyek parancssorban használhatók a különféle feladatok végrehajtására. Ezenkívül a Perl-kód végül kevesebb kódsorban képes különféle feladatokat végrehajtani, mint a python.

Példa mindkét nyelv rövid kódjára, amely kiemeli a Perl azon képességét, hogy többre képes kevesebb LOC mellett:

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

Előnyök és hátrányok – Python vs Perl

Ebben a részben a Python és a Perl előnyeiről és hátrányairól fogunk beszélni.

A Python előnyei:

  1. Letisztult és elegáns szintaxisa miatt ez a nyelv kiváló választás az első programozási nyelvként azoknak a kezdőknek, akik bármilyen programozási nyelvet szeretnének gyakorlatiasan megismerni.
  2. Nagyon fejlett és inherens OO programozással rendelkezik, a szálprogramozás Pythonban is sokkal jobb, mint a Perl.
  3. Sok alkalmazási területen előnyben részesítik a Pythont, és még a Perlt is felülmúlja. Tetszik: A Perl-t részesítik előnyben a CGI-szkriptek készítéséhez, de manapság a Python Django és a web2py-hoz hasonló webes szkriptnyelvek egyre népszerűbbek, és hatalmas vonzerővel bírnak az iparágban.
  4. Számos SWIG burkolója van különböző programozási nyelvekhez, mint a CPython, IronPython és Jython, és ezek fejlesztése megelőzte a fejlesztést SWIG wrappers Perlhez.
  5. A Python kód mindig jól behúzott, könnyen olvasható és érthető, még akkor is, ha valaki más kódját vagy akár a saját kódját évek múltán olvassa.
  6. A Python alkalmas különféle alkalmazásokhoz, például a Big Data, az Infra Automation, a Machine Learning, az NLP, stb. az aktív közösségek hatalmas támogatása, mivel nyílt forráskódú.

Python hátrányai:

  1. Kevés olyan terület van, ahol a Python végrehajtása általában lassabb, mint a Perl, beleértve a regex és a karakterlánc-alapú műveleteket.
  2. Néha nehéz beszerezni a változó típusát a Pythonban, mivel nagyon nagy kód esetén a végére kell menni, hogy olyan típusú változót kapjunk, amely hektikus és összetett lesz.

A Perl előnyei:

  1. A Perl erőteljes egysoros modulokkal rendelkezik, és még UNIX-szerű szintaxist is biztosít, amely parancssorban használható különféle feladatok végrehajtására, emellett a Unix és annak parancssori programozása is befolyásolja, így számos UNIX által befolyásolt parancsot integrál a kódolásába.
  2. A Perl hatékony regex és karakterlánc-összehasonlítási műveleteiről ismert, mivel az sed és az awk-hoz hasonló hatékony UNIX-eszközök befolyásolják. Regex és karakterlánc-műveletek, például helyettesítés, illesztés, csere esetén a Perl jobban teljesít, mint a python, amihez néhány sornyi kódra lenne szükség a azonos. Szintén sok fájl I/O művelet, a kivételek kezelése gyorsabb Perl-en.
  3. Ha a jelentéskészítés nyelvéről van szó, a Perl a bevezetése óta mindig is híres volt, mivel az egyik fő oka annak, hogy a szerző olyan nyelvet dolgozzon ki, mint amilyen a Perl a jelentéskészítéshez.
  4. Számos alkalmazási terület, ahol a Perl használja, a hálózati programozás, a rendszerfelügyelet, a CGI-szkriptelés (itt a Python legyőzi a Perlt a Django-val és a web2py-vel), stb.
  5. Könnyen azonosítható a változó típusa a Perl által előttük használt szimbólumokkal, például: a '@' a tömböket, a '%' pedig a hash-eket azonosítja.

Perl hátrányai:

  1. A Perl nagyon összetett kóddal rendelkezik, ami megnehezíti annak megértését egy kezdő számára. Az alprogramokat, sőt más szimbólumokat is, mint például: '$`', '$&' stb. nehéz megérteni és beprogramozni egy kevésbé tapasztalt programozó számára. Ezenkívül a Perl-kód olvasása során nehéz és bonyolult lenne megérteni, hacsak nem rendelkezik minőségi tapasztalattal.
  2. OO A Perl programozása kissé elavult, mivel soha nem volt ismert az OO programozásról, és sok művelet, például a szálfűzés, szintén kevésbé hangsúlyos Perlben.

Következtetés

Amint fentebb látható, ahol mindkét nyelv jó a megcélzott alkalmazások szempontjából, a Python némi előnyt élvez a Perl-hez képest, mivel a kezdők számára az első választás. tiszta és könnyen érthető kód, míg a Perl felülmúlja a Python-t a karakterlánc-manipulációs műveletek és néhány fejlett egysoros UNIX-hoz, például az operációs rendszer és más ismert műveletek terén.

Tehát végül minden azon a konkrét területen múlik, amelyet megcéloz. A cikkhez fűzött minden megjegyzését szívesen fogadjuk, és arra kérünk, hogy fejtse ki véleményét a témáról, ha Ön szerint a Python vagy a Perl nyer.