Ingia Kwa undani katika Mjadala wa Python Vs Perl - Ninapaswa Kujifunza Nini Python au Perl?


Mara nyingi wakati lugha mpya ya programu inapoanzishwa, kunakuwa na mjadala ambao huanza miongoni mwa baadhi ya akili fikra katika tasnia ambapo lugha hiyo inalinganishwa na ile ambayo tayari inaeneza mizizi yake. Aina ya buzz mara nyingi huenea katika tasnia ya TEHAMA na mpya mara nyingi hulinganishwa kwa kila kipengele huenda ikawa vipengele, sintaksia au CPU ya msingi na vipengele vya kumbukumbu ikijumuisha muda wa GC na yote, pamoja na iliyopo ya aina yake.

Mifano mingi ya kesi kama hizo inaweza kuchukuliwa na kuchunguzwa tangu zamani ikiwa ni pamoja na mjadala kati ya Java na C#, C++, n.k. Kesi moja kama hii iliyovuta hisia nyingi ilikuwa mjadala kati ya lugha mbili ambazo zilitoka moja baada ya nyingine katika muda mfupi yaani Python na Perl.

Ingawa Python ilivumbuliwa mwanzoni kama mrithi wa lugha ya ABC kama mradi wa programu wa hobby (ambayo ingevutia wavamizi wa Unix/C) kwa mwandishi ambaye aliipa jina baada ya safu ya nyota yake kubwa zaidi Monty Python.

Perl ilikuwa karibu miaka 2 mapema kama lugha ya uandishi ya Unix ambayo ilinuia kurahisisha uchakataji wa ripoti. Ilikuwa ni mchanganyiko wa mchanganyiko wa lugha nyingi ikijumuisha C, hati ya ganda.

Jambo la kuzingatia ni kwamba lugha hizi ambazo zilitokana na dhamira tofauti zinalinganishwa kila mara, jambo ambalo limenifanya nichunguze na kujua sababu zake, ambazo baadhi yake muhimu zimeorodheshwa kama ifuatavyo.

  1. Wote wawili walilenga Mfumo wa Uendeshaji wa Unix, mmoja wa wadukuzi na wengine kuchakata ripoti.
  2. Zote mbili zina mwelekeo wa kitu (Python kuwa zaidi) na kufasiriwa, na moja ikiwa imechapwa kwa nguvu na wazi linapokuja suala la usimbaji yaani Python, na nyingine ikiruhusu uchapaji mbaya kwa braces kwa kuwakilisha kizuizi yaani Perl
  3. Zote mbili zinapingana kimsingi tunaposema, Perl ana njia nyingi za kufanya kazi moja huku chatu akizingatia njia moja tu ya kufanya mambo.

Python dhidi ya Perl - Vipengele Ikilinganishwa

Hebu tuzame kwa kina katika mjadala huu na tujaribu kubaini vipengele vya jumla ambapo lugha hizi mbili zinatofautiana. Pia, wacha tujaribu kutafuta chanzo cha ukweli kwa cliche nyingi ambazo zinaweza kusikika kwenye tasnia ikisema \Python is Perl with training wheels au \Python is sawa na Perl but different ili tujaribu na kuhitimisha kwa suluhisho sahihi kwa mjadala huu usio na mwisho.

Python inachukua faida kubwa juu ya Perl linapokuja suala la usomaji wa nambari. Nambari ya Python ni wazi zaidi kuelewa kuliko ile ya Perl hata wakati wa kusoma nambari baada ya miaka.

Kwa ujongezaji unaowakilisha kizuizi cha nambari, na muundo sahihi, nambari ya Python ni safi zaidi. Kwa upande mwingine, Perl hukopa sintaksia yake kutoka kwa lugha mbalimbali za programu kama vile C, vichujio vya sed linapokuja suala la misemo ya kawaida.

Kando na hili, pamoja na '{' na '}' zinazowakilisha kundi la msimbo na nyongeza isiyo ya lazima ya ';' mwishoni mwa kila mstari, msimbo katika Perl unaweza kuwa tatizo kuelewa ukiisoma baada ya miezi au miaka kwa sababu ya posho yake ya uandishi mbaya.

Lugha ya Perl hukopa sintaksia yake kutoka kwa C na amri zingine za UNIX kama vile sed, awk, n.k. kwa sababu ambayo ina usaidizi wa regex wenye nguvu na uliojengewa ndani bila kuagiza moduli za wahusika wengine.

Pia, Perl inaweza kushughulikia shughuli za OS kwa kutumia vitendaji vilivyojumuishwa. Kwa upande mwingine, Python ina maktaba za watu wengine kwa shughuli zote mbili yaani re kwa regex na os, sys kwa shughuli za os ambazo zinahitaji kuhakikishwa kabla ya kufanya shughuli kama hizo.

Operesheni za regex za Perl 'zimeweka' kama syntax ambayo hurahisisha sio tu kwa shughuli za utaftaji lakini pia kuchukua nafasi, mbadala na shughuli zingine kwenye kamba zinaweza kufanywa kwa urahisi na haraka kuliko chatu ambapo mtu anahitaji kujua na kukumbuka kazi zinazohusika. haja.

Mfano: Fikiria mpango wa kutafuta tarakimu katika kamba katika Perl na Python.

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

Unaona syntax ya Perl ni rahisi na imechochewa na sed amri ambayo inachukua faida juu ya syntax ya Python ambayo huingiza moduli ya mtu wa tatu 're'.

Kipengele kimoja ambapo Python hufunika Perl ni programu yake ya juu ya OO. Python ina usaidizi mkubwa wa programu unaolenga kitu na sintaksia safi na thabiti huku kitu OOP katika Perl kikipitwa na wakati ambapo kifurushi kinatumika kama mbadala wa madarasa.

Pia, kuandika OO msimbo katika Perl kutaongeza ugumu zaidi kwa msimbo, ambao hatimaye utafanya msimbo kuwa mgumu kuelewa, hata subroutines katika Perl ni ngumu sana kupanga na mwishowe ni ngumu kuelewa baadaye.

Kwa upande mwingine, Perl ni bora kwa safu zake moja ambazo zinaweza kutumika kwenye mstari wa amri kwa kufanya kazi mbalimbali. Pia, nambari ya Perl inaweza hatimaye kufanya kazi mbali mbali katika mistari michache ya nambari kuliko python.

Mfano wa msimbo mfupi wa lugha zote mbili ambao unaangazia uwezo wa Perl wa kufanya zaidi kwa LOC kidogo:

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

Faida na hasara - Python dhidi ya Perl

Katika sehemu hii, tutajadili Faida na Hasara za Python na Perl.

  1. Ina sintaksia safi na maridadi ambayo inafanya lugha hii kuwa chaguo bora kama lugha ya kwanza ya upangaji kwa wanaoanza ambao wanataka kuwa na manufaa kwenye lugha yoyote ya programu.
  2. Ina upangaji wa hali ya juu sana na wa asili OO, pia upangaji wa mazungumzo katika Python ni bora zaidi kuliko Perl.
  3. Kuna maeneo mengi ya programu ambapo Python inapendelewa na hata inamzidi Perl. Kama vile: Perl anapendekezwa kwa uandishi wa CGI lakini siku hizi Python's Django na web2py kama lugha za uandishi wa wavuti zinakuwa maarufu zaidi na zinavutiwa sana na tasnia.
  4. Ina vifungashio vingi vya SWIG vya lugha tofauti za upangaji kama vile CPython, IronPython na Jython na uundaji wa hizi umetangulia uundaji wa karatasi za SWIG za Perl.
  5. Msimbo wa chatu huwa umeji ndani vyema na ni rahisi kusoma na kuelewa hata kama unasoma msimbo wa mtu mwingine au hata msimbo wako baada ya miaka mingi.
  6. Python ni nzuri kwa programu mbalimbali kama vile Data Kubwa, Infra Automation, Machine Learning, NLP, n.k, ina usaidizi mkubwa wa jumuiya amilifu kwa sababu ya kuwa Open Source.

  1. Kuna maeneo machache ambapo utekelezaji katika Python kawaida huwa polepole kuliko ule wa Perl ikijumuisha regex na shughuli za msingi wa kamba.
  2. Wakati mwingine ni vigumu kupata aina ya kutofautisha katika Python kwani katika hali ya msimbo mkubwa sana, inabidi uende hadi mwisho ili kupata aina ya kigezo ambacho kinakuwa cha kutatanisha na changamano.

  1. Perl ina kijengo kimoja chenye nguvu na hata inahakikisha upigaji bomba wa UNIX kama sintaksia ambayo inaweza kutumika kwenye safu ya amri kufanya kazi mbalimbali, pia inasukumwa na Unix na upangaji wake wa safu ya amri kwa hivyo inaunganisha amri nyingi zinazoathiriwa na UNIX katika usimbaji wake. .
  2. Perl inajulikana kwa ulinganifu wake wa nguvu wa regex na ulinganifu wa utengamano kwani huathiriwa na sed na awk kama zana zenye nguvu za UNIX. Kwa upande wa regex na shughuli za kamba kama uingizwaji, kulinganisha, uingizwaji, Perl huboresha python ambayo inaweza kuchukua mistari michache ya nambari kufikia sawa. Pia shughuli nyingi za faili za I/O, ushughulikiaji wa kipekee unafanywa haraka kwenye Perl.
  3. Inapokuja suala la lugha kwa ajili ya kuzalisha ripoti, Perl amekuwa maarufu tangu kuanzishwa kwake kama mojawapo ya sababu kuu za mwandishi kukuza lugha kama Perl ilivyokuwa kwa ajili ya kuzalisha ripoti.
  4. Maeneo mengi ya utumaji programu ambapo Perl hupata matumizi yake ni Kupanga Mitandao, Utawala wa Mfumo, Maandishi ya CGI (hapa Python inashinda Perl kwa kutumia Django na web2py), n.k.
  5. Ni rahisi kutambua aina ya kibadilishaji na alama ambazo Perl hutumia kabla yake, kama vile: '@' hutambua mkusanyiko na '%' hutambua heshi.< /li>

  1. Perl ina msimbo changamano sana ambao hufanya iwe vigumu kuelewa kwa novice. Njia ndogo, na hata alama zingine kama vile: '$\\', '$&' n.k ni vigumu kuelewa na kupangia programu mwenye uzoefu mdogo. Pia, msimbo wa Perl wakati kusoma itakuwa ngumu na ngumu kuelewa isipokuwa kama una uzoefu wa ubora.
  2. Utayarishaji wa OO katika Perl umepitwa na wakati kwa vile haujawahi kujulikana kwa upangaji wa OO na utendakazi mwingi kama vile kuweka nyuzi pia hautamkiwi sana kwenye Perl.

Hitimisho

Kama inavyoonekana hapo juu ambapo lugha zote mbili ni nzuri kwa suala lao kulingana na matumizi wanayolenga, Python inachukua faida kidogo juu ya Perl kama chaguo la kwanza kwa novice kwa sababu ya nambari yake safi na rahisi kuelewa, wakati kwa upande mwingine Perl anashinda Python. linapokuja suala la shughuli za upotoshaji wa kamba na laini zingine za hali ya juu za UNIX kama OS na shughuli zingine kadhaa ambazo zinajulikana.

Kwa hivyo, mwishowe, yote ni juu ya eneo maalum unalolenga. Maoni yako yote juu ya nakala hii yanakaribishwa na ningekuomba utoe maoni yako juu ya mada ikiwa kulingana na wewe Python atashinda au Perl.