Għaddas fil-fond fid-dibattitu Python Vs Perl - X'għandi nitgħallem Python jew Perl?


Ħafna drabi meta tiġi introdotta lingwa ta 'programmar ġdida, ikun hemm dibattitu li jibda fost xi wħud mill-imħuħ ġenju fl-industrija fejn il-lingwa hija mqabbla ma' dik li diġà qed tifrex l-għeruq tagħha. Tip ta 'buzz spiss jinfirex fl-industrija tal-IT u l-ġdida ħafna drabi titqabbel fuq kull aspett jista' mbagħad ikun karatteristiċi, sintassi jew aspetti ewlenin tas-CPU u l-memorja inkluż il-ħin GC u kollox, ma 'dak eżistenti tat-tip tiegħu.

Ħafna eżempji ta’ każijiet bħal dawn jistgħu jinġabru u jiġu investigati mill-passat inkluż id-dibattitu bejn Java u C#, C++, eċċ. Każ bħal dan li ġibed ammont sinifikanti ta’ attenzjoni kien id-dibattitu bejn żewġ lingwi li ħareġ wieħed wara l-ieħor f’ medda qasira jiġifieri Python u Perl.

Billi Python kien ivvintat inizjalment bħala suċċessur tal-lingwa ABC sempliċement bħala proġett ta 'programmazzjoni ta' \passatemp (li jattira hackers Unix/C) għall-awtur li semmieh wara s-serje tal-akbar stilla tiegħu Monty Python.

Perl kien kważi madwar sentejn qabel bħala lingwa ta' skripting Unix li kienet maħsuba biex tagħmel l-ipproċessar tar-rapporti aktar faċli. Kienet taħlita ta' taħlita ta' ħafna lingwi inkluż C, script shell.

Il-ħaġa li ta’ min jinnota hija li dawn il-lingwi li evolvew b’intenzjonijiet differenti qed jiġu kkomparati kontinwament, li ġagħlitni nistudja u nifhem ir-raġunijiet, li minnhom xi wħud importanti huma elenkati kif hawn taħt:

  1. It-tnejn immiraw lejn is-Sistema Operattiva Unix, waħda għall-hackers u oħrajn biex jipproċessaw ir-rapporti.
  2. It-tnejn huma orjentati lejn l-oġġetti (Python huwa l-aktar) u interpretati, b'waħda tkun ittajpjata b'mod qawwi u ċara meta niġu għall-kodifikazzjoni jiġifieri Python, u oħrajn li jippermettu ttajpjar ikrah b'ċingi biex jirrappreżenta blokka jiġifieri Perl
  3. It-tnejn huma opposti fil-prinċipju meta ngħidu, Perl għandu ħafna modi kif jagħmel biċċa xogħol waħda filwaqt li python jiffoka fuq mod wieħed u wieħed biss kif tagħmel l-affarijiet.

Python vs Perl - Karatteristiċi Imqabbla

Ejja ngħaddu fil-fond f'dan id-dibattitu u nippruvaw insemmu l-aspetti ġenerali fejn dawn iż-żewġ lingwi jiddifferenzjaw minn xulxin. Ukoll, ejja nippruvaw insibu s-sors tal-verità għal ħafna cliches li jistgħu jinstemgħu fl-industrija jgħidu Python huwa Perl bir-roti tat-taħriġ jew Python huwa simili għal Perl iżda differenti sabiex inkunu nistgħu nippruvaw nikkonkludu b' soluzzjoni preċiża għal dan id-dibattitu li ma jintemm qatt.

Python jieħu vantaġġ kbir fuq Perl meta niġu għall-qari tal-kodiċi. Il-kodiċi ta 'Python huwa ħafna aktar ċar biex jinftiehem minn dak ta' Perl anke meta taqra l-kodiċi wara snin.

B'indentazzjoni li tirrappreżenta l-blokka tal-kodiċi, u strutturar xieraq, il-kodiċi ta 'Python huwa ħafna aktar nadif. Min-naħa l-oħra, Perl jissellef is-sintassi tiegħu minn diversi lingwi ta' programmar bħal C, sed filters fejn jidħlu espressjonijiet regolari.

Barra minn dan, bi '{' u '}' li jirrappreżentaw blokka ta' kodiċi u żieda bla bżonn ta' ';' fl-aħħar ta' kull linja, kodiċi f'Perl jista' jsir problema li tifhem jekk taqrah wara xhur jew snin minħabba l-allowance tagħha ta’ scripting ikrah.

Il-lingwa Perl tissellef is-sintassi tagħha minn C u kmandi UNIX oħra bħal sed, awk, eċċ. Minħabba f'hekk għandha appoġġ regex b'saħħtu u integrat mingħajr ma jimporta moduli ta' parti terza.

Ukoll, Perl jista 'jimmaniġġja l-operazzjonijiet tal-OS billi juża funzjonijiet integrati. Min-naħa l-oħra, Python għandu libreriji ta 'partijiet terzi kemm għall-operazzjonijiet, jiġifieri re għal regex u os, sys għal operazzjonijiet os li jeħtieġ li jiġu żgurati qabel ma jsiru tali operazzjonijiet.

L-operazzjonijiet regex ta’ Perl għandhom sintassi bħal ‘sed’ li tagħmilha faċli mhux biss għal operazzjonijiet ta’ tfittxija iżda wkoll operazzjonijiet ta’ sostituzzjoni, sostituzzjoni u operazzjonijiet oħra fuq string jistgħu jsiru faċilment u malajr minn python fejn persuna teħtieġ tkun taf u tiftakar il-funzjonijiet li jaħsbu. il-ħtieġa.

Eżempju: Ikkunsidra programm biex tfittex ċifra fis-sekwenza f'Perl u Python.

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

Tara li s-sintassi għal Perl hija faċli u ispirata mill-kmand sed li jieħu vantaġġ fuq is-sintassi ta 'Python li timporta l-modulu ta' parti terza re.

Karatteristika waħda fejn Python igħolli l-Perl hija l-ipprogrammar avvanzat tiegħu OO. Python għandu appoġġ estensiv għall-ipprogrammar orjentat lejn l-oġġetti b'sintassi nadifa u konsistenti filwaqt li l-oġġett OOP f'Perl huwa skadut fejn il-pakkett jintuża bħala sostitut għall-klassijiet.

Ukoll, il-kitba tal-kodiċi OO f'Perl se żżid ħafna aktar kumplessità mal-kodiċi, li eventwalment jagħmel il-kodiċi diffiċli biex jinftiehem, anke subroutines f'Perl huma diffiċli ħafna biex jiġu pprogrammati u eventwalment diffiċli biex jinftiehmu aktar tard.

Min-naħa l-oħra, Perl huwa l-aħjar għall-one-liners tiegħu li jistgħu jintużaw fuq il-linja tal-kmand għat-twettiq tal-kompiti varji. Ukoll, il-kodiċi Perl jista 'eventwalment jagħmel diversi kompiti f'inqas linji ta' kodiċi minn python.

Eżempju ta' shortcode taż-żewġ lingwi li jenfasizza l-kapaċità ta' Perl li jagħmel aktar f'inqas 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 “$_”; } 

Vantaġġi u Żvantaġġi - Python vs Perl

F'din it-taqsima, ser niddiskutu l-Prosperità u l-Iżvantaġġi ta 'Python u Perl.

  1. Għandu sintassi nadifa u eleganti li tagħmel din il-lingwa għażla kbira bħala l-ewwel lingwa ta' programmar għan-novizzi li jridu jkollhom hands-on fuq kwalunkwe lingwa ta' programmar.
  2. Għandha ipprogrammar avvanzat ħafna u inerenti ta' OO, ukoll l-ipprogrammar tal-ħajt f'Python huwa ferm aħjar minn Perl.
  3. Hemm ħafna oqsma ta' applikazzjoni fejn Python huwa preferut u anke jaqbeż lil Perl. Bħal: Perl huwa ppreferut għall-iskript CGI iżda llum il-ġurnata Django ta' Python u web2py bħal lingwi ta' skript tal-web qed isiru aktar popolari u għandhom attrazzjoni kbira mill-industrija.
  4. Għandu diversi wrappers SWIG għal lingwi ta' programmar differenti bħal CPython, IronPython u Jython u l-iżvilupp ta' dawn ippreċeda l-iżvilupp ta' wrappers SWIG għal Perl.
  5. Il-kodiċi Python huwa dejjem indentjat tajjeb u faċli biex jinqara u jinftiehem anki jekk tkun qed taqra l-kodiċi ta' xi ħadd ieħor jew saħansitra l-kodiċi tiegħek wara snin.
  6. Python huwa tajjeb għal diversi applikazzjonijiet bħal Big Data, Infra Automation, Machine Learning, NLP, eċċ, għandu appoġġ kbir għal komunitajiet attivi minħabba li huwa Open Source.

  1. Ftit oqsma fejn l-eżekuzzjoni f'Python hija ġeneralment aktar bil-mod minn dik ta' Perl inklużi operazzjonijiet ibbażati fuq regex u string.
  2. Kultant huwa diffiċli li tikseb it-tip ta' varjabbli f'Python peress li f'każijiet ta' kodiċi kbir ħafna, trid tmur sal-aħħar biex tikseb tip ta' varjabbli li ssir hectic u kumplessa.

  1. Perl għandu one-liners b'saħħithom u anke jiżgura pajpijiet UNIX bħal sintassi li jistgħu jintużaw fuq il-linja tal-kmand biex iwettqu diversi kompiti, ukoll huwa influwenzat minn Unix u l-programmazzjoni tal-linja tal-kmand tiegħu sabiex jintegra ħafna kmandi influwenzati minn UNIX fil-kodifikazzjoni tiegħu .
  2. Perl huwa magħruf għall-operazzjonijiet qawwija tiegħu ta' paragun ta' regex u string peress li huwa influwenzat minn sed u awk bħal għodod qawwija UNIX. Fil-każ ta 'operazzjonijiet regex u string bħal sostituzzjoni, tqabbil, sostituzzjoni, Perl tegħleb lil python li jieħu ftit linji ta' kodiċi biex jinkiseb l-istess. Ukoll ħafna operazzjonijiet I/O tal-fajls, l-immaniġġjar tal-eċċezzjonijiet isir aktar malajr fuq Perl.
  3. Fir-rigward ta' lingwa għall-ġenerazzjoni tar-rapporti, il-Perl dejjem kien fama mill-introduzzjoni tiegħu bħala waħda mir-raġunijiet ewlenin għall-awtur biex jiżviluppa lingwaġġ bħalma kien il-Perl għall-ġenerazzjoni tar-rapporti.
  4. Ħafna oqsma ta' applikazzjoni fejn Perl isib l-użu tiegħu huma l-Programmazzjoni tan-Netwerk, l-Amministrazzjoni tas-Sistema, CGI Scripting (hawnhekk Python qed jegħleb lil Perl b'Django u web2py), eċċ.
  5. Huwa faċli li tidentifika t-tip ta' varjabbli bis-simboli li Perl juża quddiemhom, bħal: '@' jidentifika arrays u '%' jidentifika hashes.< /li>

  1. Perl għandu kodiċi kumpless ħafna li jagħmilha diffiċli biex jinftiehem għal novizzi. Subroutines, u anke simboli oħra bħal: '$\', '$&' eċċ huma diffiċli biex jifhmu u jiġu pprogrammati għal programmatur b'inqas esperjenza. Ukoll, kodiċi Perl meta jaqra jkun diffiċli u kumpless biex jinftiehem sakemm ma jkollokx esperjenza ta' kwalità.
  2. L-ipprogrammar OO fil-Perl huwa daqsxejn skadut peress li qatt ma kien magħruf għall-ipprogrammar OO u ħafna operazzjonijiet bħall-kamini huma wkoll inqas evidenti fuq Perl.

Konklużjoni

Kif jidher hawn fuq fejn iż-żewġ lingwi huma tajbin fir-rigward tagħhom skont l-applikazzjonijiet li jimmiraw, Python jieħu ftit vantaġġ fuq Perl bħala l-ewwel għażla għal novizzi minħabba l-kodiċi nadif u faċli biex jinftiehem, filwaqt li min-naħa l-oħra Perl tegħleb lil Python. meta niġu għal operazzjonijiet ta 'manipulazzjoni ta' spag u xi one-liners avvanzati għal UNIX bħal OS u diversi operazzjonijiet oħra li huwa magħruf għalihom.

Allura, fl-aħħar, huwa kollu fuq iż-żona speċifika li timmira. Il-kummenti kollha tiegħek dwar dan l-artikolu huma milqugħa u nitolbok li tagħti l-fehmiet tiegħek dwar is-suġġett jekk skond int Python jirbaħ jew Perl.