Python vs Perl jedeline çuňňur çümüň - Python ýa-da Perl näme öwrenmeli?


Köplenç täze programmirleme dili girizilende, diliň köklerini ýaýradýan dil bilen deňeşdirilýän pudakdaky käbir zehinli adamlaryň arasynda jedel başlaýar. IT pudagynda köplenç bir hili gykylyk ýaýraýar we täzesi köplenç hemme taraplar bilen deňeşdirilýär, soňra aýratynlyklar, sintaksis ýa-da esasy CPU we GC wagty we hemmesini öz içine alýan ýat aspektleri bolup biler.

Geçmişden Java we C #, C ++ we ş.m. ýaly jedelleri öz içine alýan şeýle mysallaryň köpüsini alyp we derňäp bolýar. Möhüm ünsi çeken şeýle wakalaryň biri, biri-birinden çykan iki diliň arasyndaky jedel boldy. gysga aralyk, ýagny Python we Perl.

Python ilki bilen ABC diliniň mirasdüşeri hökmünde diňe iň uly ýyldyzy Monti Pitonyň seriýaly adyny alan awtor üçin diňe hobbi programmirleme taslamasy (Unix/C hakerlerini özüne çeker) hökmünde oýlanyp tapylan bolsa.

Perl, takmynan 2 ýyl ozal hasabat işlemegi aňsatlaşdyrmagy maksat edinýän Unix skript dili hökmünde bolupdy. Bu C, gabyk skripti ýaly köp dilleriň utgaşmasydy.

Bellemeli zat, dürli niýetlerden dörän bu dilleriň yzygiderli deňeşdirilmegi, bu meni öwrenmäge we sebäplerini anyklamaga mejbur etdi, käbir möhümleriniň aşakda görkezilişi:

  1. Ikisem nyşana alnan Unix operasiýa ulgamy, biri hakerler we beýlekiler hasabatlary işlemek üçin.
  2. Ikisi hem obýekte gönükdirilen (Python has köp) we düşündirilýär, biri Python-y kodlaşdyrmak meselesinde berk ýazylýar we düşnükli, beýlekisi bolsa bir bloky görkezmek üçin ýaýlar bilen ýigrenji ýazmaga mümkinçilik berýär Perl
  3. Perliň bir işi ýerine ýetirmegiň köp usuly bar, pifon bolsa ýeke-täk iş etmegiň usulyna ünsi jemleýär diýlende ikisem tersdir.

Python vs Perl - Deňeşdirilen aýratynlyklar

Geliň, bu jedele çuňňur seredeliň we bu iki diliň biri-birinden tapawutlanýan umumy taraplaryny anyklamaga synanyşalyň. Mundan başga-da, bu pudakda\Python tälim tigirleri bilen Perl ýa-da\Python Perl-e meňzeýär, ýöne üýtgeşik diýen sözleri eşidip boljak hakykatlaryň çeşmesini tapmaga synanyşalyň. bu gutarnykly jedele takyk çözgüt.

Kod okalmagy meselesinde Python Perl-den uly artykmaçlyk alýar. Python-yň kody, birnäçe ýyldan soň kod okasaňam Perliňkiden has düşnüklidir.

Kod blokuny görkezýän indentasiýa we dogry gurluş bilen Python-yň kody has arassa. Beýleki tarapdan, Perl sintaksisini C ýaly dürli programmirleme dillerinden karz alýar, yzygiderli aňlatmalar barada aýdylanda.

Mundan başga-da, her setiriň soňundaky '{' we '}' kod blokyny we ';' gereksiz goşmaçany görkezýän bolsa, Perldäki kod bolup biler nejis skriptlere rugsat berendigi sebäpli aýlardan ýa-da ýyllardan soň okasaň düşünmek meselesi.

Perl dili sintaksisini C we sed, awk we ş.m. ýaly beýleki UNIX buýruklaryndan karz alýar, şonuň üçin üçünji tarap modullaryny import etmezden güýçli we gurlan regex goldawyna eýe.

Şeýle hem, Perl içerki funksiýalary ulanyp, OS amallaryny dolandyryp biler. Beýleki tarapdan, Python-da iki amal üçin üçünji tarap kitaphanalary bar, ýagny regex we os üçin, şeýle amallary etmezden ozal üpjün edilmeli os amallary üçin sys.

Perl-iň regex amallary sintaksis ýaly “sed” bar, bu diňe bir gözleg amallaryny aňsatlaşdyrman, bir setirde çalyşmak, çalyşmak we beýleki amallary pifona garanyňda aňsat we çalt ýerine ýetirip bolýar, bu ýerde adamyň bilýän funksiýalaryny bilmeli we ýatda saklamaly. zerurlyk.

Mysal: Perl we Python-daky setirde san gözlemek üçin bir programma serediň.

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

Perl üçin sintaksisiň aňsatdygyny we üçünji tarap modulyny “täzeden” import edýän Python sintaksisinden artykmaç peýdalanýan sed buýrugy bilen ylham alýandygyny görýärsiňiz.

Python-yň Perl-i örtýän aýratynlygy, ösen OO programmirlemekdir. Python, arassa we yzygiderli sintaksis bilen giň obýekte gönükdirilen programmirleme goldawyna eýedir, Perldäki obýekt OOP köne, paket sapaklaryň ornuny tutýan ýerinde köne.

Mundan başga-da, Perlde OO kod ýazmak koda has çylşyrymlylyk goşar, bu bolsa kody düşünmegi kynlaşdyrar, hatda Perldäki subroutinalary hem programmalaşdyrmak gaty kyn we soň düşünmek kyn bolar.

Beýleki tarapdan, Perl dürli tabşyryklary ýerine ýetirmek üçin buýruk setirinde ulanyp boljak bir setirleri üçin iň gowusydyr. Şeýle hem, Perl kody ahyrsoňy pifondan has az setirde dürli işleri ýerine ýetirip biler.

Iki diliň gysga kodly mysaly, Perl-iň az LOC-da has köp işlemek ukybyny görkezýär:

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

Gowy we zyýanly taraplary - Python vs Perl

Bu bölümde Python we Perl-iň oňaýly taraplaryny ara alyp maslahatlaşarys.

  1. Arassa we ajaýyp sintaksis bar, bu dil islendik programmirleme dilini bilmek isleýän täze gelenler üçin ilkinji programmirleme dili hökmünde bu dili ajaýyp saýlaýar.
  2. Örän ösen we mahsus OO Programmirleme, şeýle hem Python-da sapak programmirlemek Perl-den has gowudyr.
  3. Python-yň ileri tutulýan we hatda Perl-den öňe geçýän köp sanly amaly ýerleri bar. Halaýan: Perl CGI skriptleri üçin has gowy görülýär, ýöne häzirki wagtda Pythonyň Django we web skript dilleri ýaly web2py has meşhur bolýar we bu pudakda uly gyzyklanma döredýär.
  4. CPython, IronPython we Jython ýaly dürli programmirleme dilleri üçin birnäçe SWIG örtükleri bar we bularyň ösüşi Perl üçin SWIG örtükleriniň ösmeginden öň bolup geçdi.
  5. Python kody elmydama gowy ýazylýar we başga biriniň koduny ýa-da hatda koduňyzy birnäçe ýyldan soň okasaňyzam okamak we düşünmek aňsat.
  6. Python, Big Data, Infra Automation, Machine Learning, NLP we ş.m. ýaly dürli programmalar üçin amatly, açyk çeşme bolany sebäpli işjeň jemgyýetleriň uly goldawyna eýe.

  1. Python-da ýerine ýetiriş, adatça, Perl-den has haýal, regex we simli esasly amallar az.
  2. Kämahal Python-da üýtgeýjiniň görnüşini almak gaty uly koddaky ýaly kyn bolýar, üýtgeýän we çylşyrymly üýtgeýän görnüşi almak üçin ahyryna çenli gitmeli bolýar.

  1. Perl-iň güýçli bir çyzgysy bar we hatda dürli wezipeleri ýerine ýetirmek üçin buýruk setirinde ulanyp boljak sintaksis ýaly UNIX turbalaryny üpjün edýär, şeýle hem Unix we buýruk setiri programmirlemesi täsir edýär, şonuň üçin kodlaşdyrmakda köp UNIX täsirli buýruklary birleşdirýär .
  2. Perl, güýçli UNIX gurallary ýaly sed we awk täsir edýändigi sebäpli güýçli regex we simli deňeşdirme amallary bilen tanalýar. Regex we çalyşmak, gabat gelmek, çalyşmak ýaly amallar bolan ýagdaýynda, Perl pifondan öňe geçýär, şol bir maksada ýetmek üçin birnäçe setir kod gerek bolar. Şeýle hem köp faýl I/O amallary, kadadan çykma Perl-de has çalt ýerine ýetirilýär.
  3. Hasabat döretmek üçin bir dile gezek gelende, Perl awtoryň Perl ýaly diliň ösmeginiň esasy sebäpleriniň biri hökmünde hasabat döredilmegi üçin döredileninden bäri hemişe meşhurlyk gazandy.
  4. Perliň ulanýan ýerleriniň köpüsi Network Programming, System Administration, CGI Scripting (bu ýerde Python Django we web2py bilen Perl-den üstün çykýar) we ş.m.
  5. Üýtgeýjiniň görnüşini Perliň ozal ulanýan nyşanlary bilen kesgitlemek aňsat, meselem: '@' massiwleri kesgitleýär we '%' heşleri kesgitleýär.

  1. Perl, täze gelenlere düşünmegi kynlaşdyrýan gaty çylşyrymly kody bar. Subroutines we hatda beýleki simwollar: '$\\ ' , '$&' we ş.m. has tejribeli programmist üçin düşünmek we programma düzmek kyn. Şeýle hem Perl kody okalanda hil tejribesi bolmasa düşünmek kyn we çylşyrymly bolardy.
  2. Perl-de OO programmirlemek birneme köne, sebäbi OO programmirlemek bilen hiç wagt tanalmaýar we sapak ýaly köp amal Perl-de az aýdylýar.

Netije

Aboveokarda görkezilişi ýaly, niýetlenen programmalar boýunça iki diliň hem oňat tarapy bar, Python arassa we düşnükli kody sebäpli täze gelen adam üçin ilkinji saýlama hökmünde Perl-den birneme artykmaçlyk alýar, beýleki tarapdan Perl Pythondan öňe geçýär. simli manipulýasiýa amallary we UNIX üçin OS we beýleki belli amallar ýaly käbir ösen bir çyzgylar barada aýdylanda.

Şeýlelik bilen, ahyrynda hemme zat belli bir sebite bagly. Bu makaladaky ähli teswirleriňiz hoş geldiňiz we Python ýeňiş gazansa ýa-da Perl bolsa, mowzuk hakda pikirleriňizi bermegiňizi haýyş eder.