Perl vs perl php împotriva php

Principala diferență dintre Perl și PHP
Însăși natura Perl și PHP este diferită. Perl este un limbaj de programare, un instrument universal pentru rezolvarea unei game foarte largi de sarcini. Perl nu a fost proiectat special pentru programarea pe Web.







PHP a fost conceput inițial pentru a dezvolta aplicații Web. El încearcă să combine puterea unui limbaj deplin și avantajele unui instrument extrem de specializat. În căutarea unui compromis, PHP dobândește o serie de calități controversate.
Miezul limbii

Perl, ca orice limbaj complet, are un kernel - un set de funcții și reguli care nu depind de platformă, sistemul de operare și alte circumstanțe. PHP nu are aproape nici un astfel de nucleu. Prin urmare, o serie de caracteristici ale PHP.

portabilitate
Setul de funcții PHP, care este la dispoziția programatorului, depinde aproape complet de furnizor. (Furnizorii "drepți" scriu întotdeauna opțiunile pe care le-a construit PHP-ul lor.)

Această diferență este foarte vizibilă. De exemplu, dacă un site este dezvoltat folosind Smarty, atunci acesta nu va funcționa pe nici o hosting. Și acest lucru se întâmplă numai pentru că Smarty folosește extensia POSIX a motorului expresiei obișnuite.

Dacă PHP-cerere scrisă folosind caracteristici care Hoster nu oferă, sau dacă ați utilizat biblioteca, care depind de aceste funcții, extinde un set de funcții PHP singur de multe ori nu se poate.

Perl în acest sens este mai stabil. Este aceeași peste tot și codul Perl este mult mai portabil.

Număr de funcții
PHP oferă (potențial) o multitudine de funcții. În momentul de față există mai mult de 3000. Pe o adevărată găzduire veți găsi aproximativ 1000 dintre ei. O asemenea gamă largă de mijloace expresive nu beneficiază de limbaj. Diferiții programatori cunosc diferite seturi de operatori. Acest lucru face dificilă citirea codului altcuiva, a codului de schimb și colaborarea pentru dezvoltare.

Perl furnizează de asemenea programatorului un set limitat de instrumente standard. Disciplina programatorul și facilitează schimbul de cod și experiență. În același timp, programatorul nu este deloc constrâns și poate obține întotdeauna capacitățile necesare prin conectarea modulului corespunzător.

sintaxă
Așadar, sa dovedit că programele de pe Perl și PHP sunt, într-o oarecare măsură, similare. Putem spune că, dacă o persoană cunoaște un pic Perl, el abia știe și PHP, dar dacă o persoană știe Perl, PHP atunci el știe doar puțin încă. Converse este, de asemenea, adevărat.

Voi enumera câteva diferențe deosebit de expresive.

Desigur, pentru a oferi un număr de funcții PHP de neconceput ar putea fi doar prețul prelungirii numelor acestora. Acest lucru nu a afectat decât sintaxa limbii. Ceea ce Perl numește pop este în PHP array_pop. Faptul că în Perl - alăturați-vă, în PHP - implode. Rezolvarea aceleiași probleme în PHP este de obicei mai greoaie.

Scrieți o funcție care returnează trei valori (1, 2, 3).
Perl

În PHP, design-ul se dovedește a fi mai greu.

În plus, PHP nu miroase Perl-patter.

Înlocuim toate numerele hexazecimale din text cu reprezentările lor zecimale.
Perl

$ text = preg_replace_callback ('/ [0-9A-F] + / i',
create_function ('$ t', 'retur hexdec ($ t [0]);')
$ text);
# sau
$ Text = preg_replace ( '/ [0-9A-F] + / ie', "hexdec ( '$ 0')", $ text);

Aceeași acțiune, dar chiar și un scurt cod PHP este de două ori mai mare decât omologul Perl.

Maturitatea limbii
Desigur, Perl este un limbaj mult mai matur decât PHP. Este mult mai puțin supus schimbărilor în trecerea de la versiune la versiune și este echipat cu instrumente de dezvoltare mai avansate.







Este suficient să spunem că în PHP mecanismul indicatorului este în fază incipientă. Perl a trecut în această etapă de dezvoltare cu aproximativ zece ani în urmă. PHP nu oferă o structură de date, cum ar fi un matrice. (Ceea ce se numește "matrice" în PHP se numește "hash" în Perl.) În acest sens, PHP este la nivelul awk.

Într-un cuvânt, PHP se va schimba mult timp, creând o mulțime de probleme pentru dezvoltatori.

Adaptabilitatea pentru dezvoltarea web
În desfășurarea dezvoltării pe Web, PHP dezvăluie o serie de avantaje semnificative.

În primul rând, interpretul PHP este integrat în serverul Web, care uneori crește performanța. Perl este capabil să recupereze cu PHP performanța numai dacă utilizați o abordare non-CGI și mod_perl. Majoritatea furnizorilor nu vă vor oferi această oportunitate.

În al doilea rând, aplicațiile bazate pe Web din PHP sunt mai ușor de depanat. Mesajele de eroare sunt adesea emise clientului și nu sunt scrise la error_log.

În al treilea rând, PHP are o gamă largă de funcții încorporate pentru a lucra cu protocolul HTTP. Programatorii Perl pot de asemenea să obțină toate aceste funcții prin conectarea modulului corespunzător, dar în PHP aceste funcții sunt integrate.

Cu toate acestea, aproape toate aceste avantaje se dovedesc a fi probleme grave în ceea ce privește securitatea resurselor.

Faptul că PHP este încorporat în server face dificilă diagnosticarea sursei de atac. În plus, codul PHP, potențial, poate avea amenințări mult mai mari decât codul Perl.

PHP oferă mai multă libertate dezvoltatorului - script-ul PHP poate fi plasat în orice director al serverului. Dar acest lucru creează și riscuri suplimentare. În multe cazuri, dezvoltatorii din neatenție, serverul devine vizitator posibilitatea de a „umple“ serverul nu numai imagini și alte fișiere sunt inofensive, dar PHP-script-uri, iar acest lucru este un pericol foarte grav.

Faptul că PHP produce mesaje de eroare ca răspuns la o cerere HTTP este convenabil pentru dezvoltator. Dar, din punctul de vedere al securității, această decizie părea mereu controversată, deoarece orice vizitator al site-ului dvs. poate afla despre erorile din programele dvs. Și un atacator poate găsi suficient pentru a cunoaște versiunea PHP pentru a "rupe" resursa ta.

Într-un cuvânt, PHP este "ascuțită" pentru dezvoltarea Web mai bună decât Perl, dar este foarte ușor să tăiați această lamă singur.

documentație
Perl are propriul sistem de documentare și este furnizat cu o documentație excelentă în limba engleză.

PHP este, de asemenea, bine documentat. Avantajul documentației PHP este că este tradus în limba rusă. Pentru neajunsurile, i-aș lua imensitatea.

Calitatea codului
Desigur, calitatea codului este în mare măsură dependentă de programator, dar limba poate fie să dicteze dezvoltatorului un anumit stil, fie să descurajeze.

Nu voi intra în filosofie aici, dar omenirea a realizat acum zeci de ani că codul și datele ar trebui să fie împărtășite. Pentru aceasta, se găsesc numeroase soluții elegante, de la fișierele de antet și de configurare până la șabloane și magazine de date independente. În acest sens, PHP pare a fi un pas înapoi; un fel de ancestral.

Dar, dacă am amâna filosofia și o privim dintr-un punct de vedere aplicat, atunci nu vom vedea nici un lucru bun. Combinarea codului HTML și PHP nu îmbunătățește lizibilitatea fiecăruia sau a celuilalt. În consecință, menținerea, modernizarea și modificarea programelor sunt, de asemenea, dificile.

Desigur, acest lucru minus (în opinia mea), PHP începe să joace un rol semnificativ numai în cazul în care aplicației web dezvoltat suficient, o mulțime de cod, iar dezvoltatorii nu au învățat HTML-cod în șabloane sau izolați în alt mod.

Dar există dezavantaje, "încorporate" în limba în sine.

Același lucru este valabil și pentru funcțiile care returnează indicii.

În opinia mea, acesta este cel mai mare dezavantaj al PHP, care nu poate fi ocolit.

în total,
O soluție universală corectă, care este mai bună decât Perl sau PHP, nu există. În fiecare caz, decideți. Răspunsul depinde de amploarea resurselor, de ambițiile, planurile și perspectivele și de o anumită slujbă.

Aș sfătui să faceți acest lucru:

• Dacă resursele nu implică o sarcină grea (pagina personală, pagina companiei mici), atunci se bazează mai mult pe Perl și pe protocolul CGI;
• Dacă resursa presupune o prezență ridicată, dar bugetul este foarte limitat, puteți utiliza o găzduire virtuală ieftină și un motor PHP;
• în cazul în care resursa este mare și doriți să mențină și să dezvolte o pentru o lungă perioadă de timp, cel mai bine este de a utiliza un hosting scump (nord proprii) și Perl sub mod_perl. În acest caz, codul dvs. va funcționa de mai mulți ani. Resursa va crește, va pune un server mai puternic, un software mai recent, și Perl-cod nu are nevoie de mari schimbări și va continua să vă servească.

Aceasta este, desigur, recomandări destul de nepoliticos. Dacă aveți îndoieli, consultați un expert.

În plus, nu uitați că, în plus față de Perl și PHP, există și alte instrumente de dezvoltare.







Articole similare

Trimiteți-le prietenilor: