Dziļi ienirstiet Python Vs Perl debatēs - ko man vajadzētu iemācīties Python vai Perl?


Bieži vien, ieviešot jaunu programmēšanas valodu, rodas diskusijas, kas sākas starp dažiem nozares ģeniālajiem prātiem, kur valoda tiek salīdzināta ar valodu, kas jau izplata tās saknes. IT nozarē bieži izplatās sava veida buzz, un jauno bieži salīdzina visos aspektos, vai tad tie var būt funkcijas, sintakse vai centrālā procesora un atmiņas aspekti, ieskaitot GC laiku un visus, ar esošo.

Daudzus šādu gadījumu piemērus var savākt un izpētīt no pagātnes, tostarp debates starp Java un C #, C ++ utt. Viens no šādiem gadījumiem, kas pievērsa ievērojamu uzmanību, bija divu valodu diskusijas, kas parādījās viena pēc otras. īss laidums, ti, Python un Perl.

Tā kā Python sākotnēji tika izgudrots kā ABC valodas pēctecis tikai kā "hobija" programmēšanas projekts (kas piesaistītu Unix/C hakerus) autoram, kurš to nosauca pēc savas lielākās zvaigznes Monty Python sērijas.

Perls bija gandrīz gandrīz divus gadus agrāk kā Unix skriptu valoda, kuras mērķis bija atvieglot pārskatu apstrādi. Tas bija daudzu valodu apvienojums, ieskaitot C, čaulas skriptu.

Vērts pievērst uzmanību tam, ka šīs valodas, kas attīstījušās ar dažādiem nodomiem, tiek pastāvīgi salīdzinātas, un tas man ir licis izpētīt un noskaidrot iemeslus, no kuriem daži svarīgi ir uzskaitīti šādi:

  1. Gan mērķtiecīga operētājsistēma Unix, viena hakeriem un citi, lai apstrādātu pārskatus.
  2. Abi ir objektorientēti (jo vairāk Python) un tiek interpretēti, un viens ir stingri rakstīts un skaidrs, kad runa ir par kodēšanu, t.i., Python, un citi ļauj neglīti rakstīt ar lencēm, lai attēlotu bloku, t.i., Perlu.
  3. Abi principā ir pretēji, ja mēs sakām, ka Perlam ir daudz veidu, kā veikt vienu uzdevumu, savukārt pitons koncentrējas uz vienu un tikai vienu veidu.

Python vs Perl - salīdzinātās funkcijas

Iegremdēsimies dziļi šajās debatēs un mēģināsim noskaidrot vispārīgos aspektus, kur šīs divas valodas atšķiras viena no otras. Mēģināsim noskaidrot patiesības avotu daudzām klišejām, kuras nozarē var dzirdēt, sakot “Python ir Perls ar treniņu riteņiem” vai “Python ir līdzīgs Perlam, bet atšķirīgs”, lai mēs varētu mēģināt noslēgt ar precīzu risinājumu šīm nebeidzamajām debatēm.

Python izmanto milzīgas priekšrocības salīdzinājumā ar Perl, kad runa ir par koda lasāmību. Python kods ir daudz skaidrāk saprotams nekā Perl, pat lasot kodu pēc gadiem.

Ar ievilkumu, kas apzīmē koda bloku, un pareizu strukturēšanu, Python kods ir daudz tīrāks. No otras puses, Perls aizņem savu sintaksi no dažādām programmēšanas valodām, piemēram, C, sed filtriem, kad runa ir par regulārām izteiksmēm.

Bez tam, ar '{' un '}' , kas apzīmē koda bloku, un nevajadzīgu ';' pievienošanu katras rindas beigās, kods Perl varētu kļūt par problēma, lai saprastu, vai to izlasījāt pēc mēnešiem vai gadiem, jo tas pieļauj neglīto skriptu izveidi.

Perl valoda aizņem savu sintaksi no C un citām UNIX komandām, piemēram, sed, awk utt., Kuru dēļ tai ir spēcīgs un iebūvēts regex atbalsts, neimportējot nevienu trešo pušu moduli.

Arī Perls var apstrādāt OS darbības, izmantojot iebūvētās funkcijas. No otras puses, Python ir trešo pušu bibliotēkas gan operācijām, t.i., re for regex, gan os, sys os operācijām, kas jānodrošina pirms šādu darbību veikšanas.

Perla regex operācijām ir “sed” kā sintakse, kas atvieglo ne tikai meklēšanas operācijas, bet arī virknes nomaiņu, aizstāšanu un citas darbības var veikt viegli un ātri nekā pitonu, kur personai ir jāzina un jāatceras funkcijas, kas rūpējas par nepieciešamība.

Piemērs: Apsveriet programmu, kā meklēt ciparu virknē Perl un Python.

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

Jūs redzat, ka Perl sintakse ir ļoti vienkārša un iedvesmota no sed komandas, kas izmanto priekšrocības salīdzinājumā ar Python sintaksi, kas importē trešās puses moduli “re”.

Viena funkcija, kurā Python aizēno Perlu, ir tā uzlabotā OO programmēšana. Python ir plašs objektorientētas programmēšanas atbalsts ar tīru un konsekventu sintaksi, savukārt objekts OOP Perlā ir novecojis, kur pakete tiek izmantota kā klases aizstājēja.

Tāpat, rakstot OO kodu Perl, kods kļūs daudz sarežģītāks, kas galu galā padarītu kodu grūti saprotamu, pat Perlā esošās apakšprogrammas ir ļoti grūti programmēt un vēlāk grūti saprast.

No otras puses, Perl ir vispiemērotākais tās līnijpārvadātājiem, kurus komandrindā var izmantot dažādu uzdevumu veikšanai. Arī Perla kods galu galā var veikt dažādus uzdevumus mazāk koda rindās nekā pitons.

Īss kodu piemērs abām valodām, kas izceļ Perla spēju paveikt vairāk mazākos 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 “$_”; } 

Plusi un mīnusi - Python vs Perl

Šajā sadaļā mēs apspriedīsim Python un Perl plusi un mīnusi.

  1. Tai ir tīra un eleganta sintakse, kas padara šo valodu par lielisku izvēli kā pirmo programmēšanas valodu iesācējiem, kuri vēlas praktiski darboties jebkurā programmēšanas valodā.
  2. Ir ļoti progresīva un raksturīga OO programmēšana, arī Python vītņu programmēšana ir daudz labāka nekā Perl.
  3. Ir daudz lietojumprogrammu apgabalu, kur priekšroka tiek dota Python, un pat tas pārspēj Perlu. Patīk: CGI skriptiem priekšroka tiek dota Perlam, taču mūsdienās Python Django un web2py, piemēram, tīmekļa skriptu valodas, kļūst arvien populārākas un tām ir milzīga nozares piesaiste.
  4. Ir vairāki SWIG iesaiņotāji dažādām programmēšanas valodām, piemēram, CPython, IronPython un Jython, un to izstrāde ir notikusi pirms SWIG ietinēju izstrādes Perl.
  5. Python kods vienmēr ir labi ievilkts, viegli lasāms un saprotams, pat ja pēc gadiem lasāt kāda cita kodu vai pat kodu.
  6. Python ir piemērots dažādām lietojumprogrammām, piemēram, Big Data, Infra Automation, Machine Learning, NLP utt., Tam ir milzīgs aktīvo kopienu atbalsts, jo tas ir atvērts avots.

  1. Ir dažas jomas, kurās Python izpilde parasti ir lēnāka nekā Perl, ieskaitot regex un virknes operācijas.
  2. Dažreiz Python ir grūti iegūt mainīgā veidu, jo ļoti liela koda gadījumā jums ir jādodas līdz beigām, lai iegūtu mainīgā veidu, kas kļūst drudžains un sarežģīts.

  1. Perl ir jaudīgi vienas līnijas līnijas un pat nodrošina UNIX cauruļvadus, piemēram, sintaksi, kurus komandrindā var izmantot dažādu uzdevumu veikšanai, kā arī to ietekmē Unix un tā komandrindas programmēšana, tāpēc kodēšanā integrē daudzas UNIX ietekmētās komandas .
  2. Perls ir pazīstams ar savām jaudīgajām regex un virkņu salīdzināšanas operācijām, jo to ietekmē sed un awk kā spēcīgi UNIX rīki. Regulāras izteiksmes un virkņu operāciju gadījumā, piemēram, aizstāšana, saskaņošana, aizstāšana, Perls pārspēj pitonu, kura sasniegšanai būtu nepieciešamas dažas koda rindiņas. Arī daudzas failu I/O darbības, izņēmumu apstrāde tiek veikta ātrāk Perl.
  3. Runājot par pārskatu ģenerēšanas valodu, Perls kopš tā ieviešanas vienmēr ir bijis slavens, jo viens no galvenajiem iemesliem, kādēļ autors attīstīja valodu, piemēram, Perls, bija pārskatu veidošana.
  4. Daudzas lietojumprogrammu jomas, kurās Perl atrod lietojumu, ir Tīkla programmēšana, Sistēmas administrēšana, CGI skripti (šeit Python pārvar Perlu ar Django un web2py) utt.
  5. Mainīgā veidu ir viegli identificēt ar simboliem, kurus Perls lieto pirms tiem, piemēram: '@' identificē masīvus un '%' identificē jaucējkrānus.

  1. Perlam ir ļoti sarežģīts kods, kas iesācējam ir grūti saprotams. Apakšprogrammas un pat citi simboli, piemēram: '$\"' , '$&' utt., Ir mazāk saprotami un programmējami mazāk pieredzējušam programmētājam. Arī Perl kods, kad lasīt būtu grūti un sarežģīti saprast, ja vien jums nav kvalitatīvas pieredzes.
  2. OO programmēšana Perl ir nedaudz novecojusi, jo tā nekad nav bijusi zināma par OO programmēšanu, un daudzas darbības, piemēram, pavedieni, Perl ir arī mazāk izteiktas.

Secinājums

Kā redzams iepriekš, kur abas valodas ir labas attiecībā uz viņu atlasītajām lietojumprogrammām, Python izmanto mazliet priekšrocības salīdzinājumā ar Perl kā pirmo iesācēju izvēli, jo tā ir tīra un viegli saprotama koda dēļ, turpretī Perl no otras puses pārspēj Python kad runa ir par virkņu manipulācijas operācijām un dažām uzlabotām vienas līnijas līnijām UNIX, piemēram, OS un dažādām citām operācijām, par kurām tā ir zināma.

Tātad galu galā viss ir atkarīgs no konkrētās jomas, kuru mērķējat. Visi jūsu komentāri par šo rakstu ir laipni gaidīti un lūdzam jūs izteikt savu viedokli par šo tēmu, ja pēc jūsu domām uzvar Python vai Perl.