Dive Jin sinu Python Vs Perl Debate - Kini O yẹ ki Mo Kọ Python tabi Perl?


Nigbagbogbo nigbati a ba ṣafihan ede siseto tuntun, ariyanjiyan kan wa ti o bẹrẹ laarin diẹ ninu awọn oloye-pupọ ti o wa ninu ile-iṣẹ eyiti ede ti ṣe afiwe pẹlu eyiti o ntan awọn gbongbo rẹ tẹlẹ. Iru ariwo nigbagbogbo ntan ni ile-iṣẹ IT ati pe tuntun ni a ṣe afiwe nigbagbogbo lori gbogbo abala le lẹhinna jẹ awọn ẹya, sintasi tabi Sipiyu akọkọ ati awọn aaye iranti pẹlu akoko GC ati gbogbo rẹ, pẹlu ọkan ti o wa tẹlẹ ti iru rẹ.

Ọpọlọpọ awọn apẹẹrẹ ti iru awọn ọran bẹẹ ni a le mu ki a ṣe iwadii lati igba atijọ pẹlu ariyanjiyan laarin Java ati C #, C ++, ati bẹbẹ lọ Ọkan iru ọran ti o fa iye pataki ti afiyesi ni ijiroro laarin awọn ede meji eyiti o jade ọkan lẹhin ekeji ni igba kukuru ie Python ati Perl.

Lakoko ti o ti ṣẹda Python ni ibẹrẹ bi arọpo si ede ABC lasan bi iṣẹ siseto\"ifisere" kan (eyiti yoo fa awọn olosa Unix/C) fun onkọwe ti o pe orukọ rẹ lẹhin atẹlera irawọ nla rẹ Monty Python.

Perl sunmọ fere to ọdun 2 sẹyin bi ede kikọ Unix eyiti o pinnu lati jẹ ki iṣelọpọ iroyin rọrun. O jẹ adalu idapọ ti ọpọlọpọ awọn ede pẹlu C, iwe afọwọkọ ikarahun.

Ohun ti o yẹ ki a kiyesi ni pe awọn ede wọnyi ti o dagbasoke ti awọn ero oriṣiriṣi ni a nfiwera nigbagbogbo, eyiti o jẹ ki n ṣe iwadi ati ṣayẹwo awọn idi, eyiti eyiti a ṣe akojọ diẹ ninu awọn pataki bi isalẹ:

  1. Awọn mejeeji ti a fojusi Ẹrọ-iṣẹ Unix, ọkan fun awọn olutọpa ati awọn miiran lati ṣe ilana awọn iroyin.
  2. Awọn mejeeji jẹ iṣalaye-ọrọ (Python jẹ diẹ sii) ati tumọ, pẹlu ọkan ti o ni titẹ lagbara ati fifin nigbati o ba de si ifaminsi ie Python, ati omiiran gbigba titẹ ilosiwaju pẹlu awọn àmúró fun aṣoju aṣoju kan ie Perl
  3. Awọn mejeeji ni idakeji ni opo nigba ti a sọ, Perl ni ọpọlọpọ awọn ọna ti ṣiṣe iṣẹ-ṣiṣe kan lakoko ti Python fojusi ọkan ati ọna kan ti ṣiṣe awọn ohun.

Python vs Perl - Awọn ẹya Ti a Fiwe

Jẹ ki a jinle jinlẹ si ariyanjiyan yii ki a gbiyanju lati wa awọn abala gbogbogbo nibiti awọn ede meji wọnyi ṣe iyatọ si ara wọn. Pẹlupẹlu, jẹ ki a gbiyanju wiwa orisun otitọ fun ọpọlọpọ awọn jinna eyiti o le gbọ ni ile-iṣẹ naa n sọ\"Python ni Perl pẹlu awọn kẹkẹ ikẹkọ” tabi\"Python jẹ iru si Perl ṣugbọn o yatọ si" ki a le gbiyanju ati pari pẹlu ojutu pipe si ijiroro ailopin yii.

Python gba anfani nla lori Perl nigbati o ba wa si kika koodu. Koodu Python jẹ eyiti o ṣalaye pupọ lati ni oye ju ti Perl paapaa nigba kika koodu lẹhin ọdun.

Pẹlu ifunni ti o nsoju bulọọki koodu, ati iṣeto to dara, koodu Python jẹ olulana mimọ julọ. Ni apa keji, Perl ya awọkan lati oriṣiriṣi awọn ede siseto bii C, awọn asẹ sed nigbati o ba de awọn ifihan deede.

Yato si eyi, pẹlu '{' ati '}' ti o nsoju iwe koodu kan ati afikun ti ko ni dandan ti ';' ni opin ila kọọkan, koodu ni Perl le di iṣoro kan lati ni oye ti o ba ka lẹhin osu tabi ọdun nitori ti igbanilaaye rẹ ti kikọ afọwọyi.

Ede Perl ya awọkan lati C ati awọn ofin UNIX miiran bii sed, awk, ati bẹbẹ lọ nitori eyiti o ni ọna ti o lagbara ati atilẹyin regex ti a ṣe sinu rẹ laisi gbigbe wọle eyikeyi awọn modulu ẹnikẹta.

Pẹlupẹlu, Perl le mu awọn iṣẹ OS ṣiṣẹ nipa lilo awọn iṣẹ inu. Ni apa keji, Python ni awọn ile-ikawe ẹnikẹta fun awọn iṣẹ mejeeji ie re fun regex ati os, sys fun awọn iṣẹ os eyiti o nilo lati ni idaniloju ṣaaju ṣiṣe awọn iṣẹ bẹ.

Awọn iṣẹ regex ti Perl ni 'sed' bii iṣọpọ eyiti o jẹ ki o rọrun kii ṣe fun awọn iṣẹ iṣawari nikan ṣugbọn tun rọpo, aropo ati awọn iṣiṣẹ miiran lori okun le ṣee ṣe ni rọọrun ati yarayara ju ere-ije lọ nibiti eniyan nilo lati mọ ati ranti awọn iṣẹ ti o ṣe fun iwulo.

Apere: Ro eto kan lati wa nọmba ninu okun ni Perl ati Python.

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

O wo ilana ifilọlẹ fun Perl jẹ ọna ti o rọrun ati atilẹyin nipasẹ aṣẹ sed eyiti o gba anfani lori ilana iṣọnti Python eyiti o ṣe agbewọle modulu ẹnikẹta ‘re’.

Ẹya kan nibiti Python ti bori Perl jẹ ilọsiwaju rẹ OO siseto. Python ni atilẹyin eto siseto ohun ti o gbooro pẹlu sisọmọ mimọ ati dédé lakoko ti ohun naa OOP ni Perl ti di igba atijọ nibiti a ti lo package bi aropo fun awọn kilasi.

Pẹlupẹlu, kikọ OO koodu ni Perl yoo ṣafikun idiju pupọ diẹ si koodu naa, eyiti yoo jẹ ki koodu ṣoro lati ni oye nikẹhin, paapaa awọn abẹ-kekere ni Perl nira pupọ lati ṣe eto ati nikẹhin nira lati ni oye nigbamii.

Ni apa keji, Perl dara julọ fun awọn ikan-ikan ti o le ṣee lo lori laini aṣẹ fun ṣiṣe awọn iṣẹ-ṣiṣe lọpọlọpọ. Pẹlupẹlu, koodu Perl le ṣe awọn iṣẹ-ṣiṣe pupọ ni awọn ila ti o kere ju ti koodu lọ ju ere-ije lọ.

Apẹẹrẹ ọna abuja ti awọn ede mejeeji eyiti o ṣe afihan agbara Perl lati ṣe diẹ sii ni kekere 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 “$_”; } 

Aleebu ati awọn konsi - Python vs Perl

Ni apakan yii, a yoo jiroro Awọn Aleebu ati Awọn konsi ti Python ati Perl.

  1. O ni sintasi mimọ ati didara eyiti o jẹ ki ede yii jẹ yiyan nla bi ede siseto akọkọ fun awọn alakọbẹrẹ ti o fẹ lati ni ọwọ-ọwọ lori eyikeyi ede siseto.
  2. Ni ilọsiwaju pupọ ati atorunwa OO siseto, tun siseto sisọ ni Python jẹ ọna ti o dara julọ ju Perl lọ.
  3. Ọpọlọpọ awọn agbegbe ohun elo wa nibiti Python ṣe fẹ ati paapaa o ṣe aṣeyọri Perl. Bii: Perl jẹ ayanfẹ fun iwe afọwọkọ CGI ṣugbọn lasiko Python's Django ati web2py bi awọn ede kikọ iwe wẹẹbu ti n di olokiki pupọ ati ni ifamọra nla lati ile-iṣẹ naa.
  4. Ni ọpọlọpọ awọn ohun elo SWIG fun awọn ede siseto oriṣiriṣi bi CPython, IronPython ati Jython ati idagbasoke ti iwọnyi ti ṣaju idagbasoke ti awọn ohun elo SWIG fun Perl.
  5. Koodu Python nigbagbogbo jẹ itọsi daradara ati rọrun lati ka ati oye paapaa ti o ba n ka koodu elomiran tabi koodu rẹ paapaa lẹhin ọdun.
  6. Python dara fun ọpọlọpọ awọn ohun elo bii Data nla, Adaṣiṣẹ Infra, Ẹkọ ẹrọ, NLP, ati bẹbẹ lọ, o ni atilẹyin nla ti awọn agbegbe ti nṣiṣe lọwọ nitori jijẹ Orisun Ṣiṣi.

  1. Awọn agbegbe diẹ lo wa nibiti ipaniyan ni Python maa n lọra ju ti Perl lọ pẹlu regex ati awọn iṣẹ orisun okun.
  2. Nigbakan o nira lati gba iru oniyipada ni Python bi awọn ọran ti koodu ti o tobi pupọ, o ni lati lọ titi de opin lati gba iru oniyipada kan ti o ni irọrun ati eka.

  1. Perl ni awọn ikan-ikan ti o lagbara ati paapaa ni idaniloju pipii UNIX bi sintasi eyiti o le lo lori laini aṣẹ lati ṣe ọpọlọpọ awọn iṣẹ-ṣiṣe, tun o ni ipa nipasẹ Unix ati siseto laini aṣẹ rẹ nitorinaa ṣepọ ọpọlọpọ awọn aṣẹ ti o ni ipa UNIX ninu ifaminsi rẹ .
  2. Perl ni a mọ fun regex rẹ ti o ni agbara ati awọn iṣẹ lafiwe okun bi o ti ni ipa nipasẹ sed ati awk bi awọn irinṣẹ UNIX ti o lagbara. Ni ọran ti regex ati awọn iṣiṣẹ okun bii aropo, ibaramu, rirọpo, Perl ṣe aṣeyọri Python eyiti yoo gba awọn ila diẹ ti koodu lati ṣaṣeyọri kanna. Paapaa ọpọlọpọ awọn iṣẹ I/O faili, imukuro imukuro ni a ṣe ni iyara lori Perl.
  3. Nigbati o ba de si ede kan fun iran ijabọ, Perl nigbagbogbo ti jẹ olokiki lati igba iṣafihan rẹ bi ọkan ninu awọn idi akọkọ fun onkọwe lati dagbasoke ede bi Perl jẹ fun iran iroyin.
  4. Ọpọlọpọ awọn agbegbe ohun elo nibiti Perl rii lilo rẹ ni Nẹtiwọọki Nẹtiwọọki, Isakoso System, Iwe afọwọkọ CGI (nibi Python n bori Perl pẹlu Django ati web2py), bbl
  5. O rọrun lati ṣe idanimọ iru oniyipada pẹlu awọn aami ti Perl nlo niwaju wọn, bii: '@' ṣe idanimọ awọn ipilẹ ati '%' n ṣe idanimọ awọn ishes./li>

  1. Perl ni koodu ti o nira pupọ eyiti o jẹ ki o nira lati ni oye fun alakobere. Awọn iṣẹ abẹ, ati paapaa awọn aami miiran bii: '$\"' , '$&' ati bẹbẹ lọ nira lati ni oye ati eto fun alamọdaju ti ko ni iriri diẹ. Bakannaa, koodu Perl nigbati kika yoo nira ati idiju lati loye ayafi ti o ba ni iriri didara kan.
  2. Siseto OO ni Perl ko lọjọ nitori ko ti mọ tẹlẹ fun siseto OO ati pe ọpọlọpọ awọn iṣiṣẹ bii threading tun jẹ o kere si lori Perl.

Ipari

Gẹgẹbi a ti rii loke nibiti awọn ede mejeeji dara lori ọwọ wọn gẹgẹbi fun awọn ohun elo ti wọn fojusi, Python gba diẹ anfani lori Perl bi yiyan akọkọ fun alakobere nitori mimọ ati irọrun koodu rẹ, lakoko ti o jẹ pe Perl ṣe afihan Python nigbati o ba de si awọn iṣẹ ifọwọyi okun ati diẹ ninu awọn ikan-ikan ti o ni ilọsiwaju fun UNIX bii OS ati ọpọlọpọ awọn iṣiṣẹ miiran o mọ fun.

Nitorinaa, ni ipari, gbogbo rẹ wa lori agbegbe kan pato ti o fojusi. Gbogbo awọn asọye rẹ lori nkan yii ṣe itẹwọgba ati pe yoo beere lọwọ rẹ lati fun awọn iwo rẹ lori koko ti o ba jẹ pe o ṣẹgun Python tabi Perl.