Perioada de început a Internetului a apus de mult. Simpla prezenţă pe Internet nu mai este suficientă pentru a obţine rezultatele dorite. Acum este nevoie de mult mai mult. Conţinutul dinamic care se schimbă zilnic sau interacţiunea cu vizitatorii sunt importante pentru a câştiga şi păstra un număr de vizitatori suficient pentru ca scopurile websiteului să poată fi atinse. Dacă ceea ce doriţi este un site cu un număr constant de pagini cu text ce va suferi schimbări doar rar, tot ceea ce vă trebuie sunt ceva cunoştinţe de HTML, câteva cunoştinţe de prelucrări de imagini şi … puţin talent artistic. Dacă însă doriţi ca siteul să cuprindă formulare, conţinut uşor şi des modificabil vă trebuie mai mult decât atât. O bază de date ar fi indicată, dar nu obligatorie. În mod sigur însă veţi avea nevoie de “programare”.
Ce se înţelege prin programare pentru web?
Mai mult ca sigur aproape toţi dintre dumneavoastră au avut de-a face, măcar tangenţial cu un limbaj de programare. De la C la suita VisualStudio, oricare dintre acestea vă pot fi de ajutor. Învăţarea unui astfel de limbaj poate fi însă extrem de dificilă. Mai mult, un număr mare de concepte vă pot fi într-o oarecare măsură inutile sau prea puţin folositoare în ceea ce priveşte web-ul. De aceea, de ceva timp a luat avânt dezvoltarea unor diverse variante de limbaje simplificate, cu aplicaţie exclusivă pe Internet. Cele mai folosite în momentul de faţă fiind ASP, PHP, Perl şi JSP, lista continuând însă cu mult mai multe nume.
Modul de funcţionare este, în linii mari, unul simplu. Pentru JSP şi Perl este nevoie ca sursa să fie compilată înainte de a folosită, rezultatul compilării (îi pot zice un fişier de tip .exe deşi comparaţia este greşită din mai multe puncte de vedere) fiind cel utlizat. În momentul în care utilizatorul intră pe o anume pagină ce necesită programare, pe acea pagină se face referire la un astfel de fişier. Fişierul în cauză, va primi datele trimise către pagina de web (eventual introduse într-un formular sau ceva similar), le va prelucra şi va trimite rezultatul (output-ul) înapoi către pagina de web ce le va afişa.
Simplificarea conceptelor sintaxei a mers mai departe decât renunţarea la unele facilităţi, modificându-se chiar modul de funcţionare. Astfel PHP-ul sau ASP-ul nu necesită compilare şi permit scrierea codului sursă direct în fişierul HTML al paginii de web. În rest principiul de funcţionare este similar. Acestea poartă numele de Scripting Languages (opus cu Programming Languages – limbaje de programare).
ASP vs. PHP vs. Perl vs. JSP
Este greu de ales ce limbaj voi folosi pentru a-mi scrie codul sursă. Am avut ocazia să lucrez, mai mult sau mai puţin, cu fiecare în parte şi evident am preferinţele mele. Voi încerca însă ca în această comparaţie să rămân echidistant.
ASP (Active Server Pages – dezvoltat de Microsoft)
O soluţie propusă de Microsoft, ASP se bucură de diverse funcţionalităţi unice, însă costul ridicat şi suportul scăzut nu o fac să fie o soluţie ideală.
Avantaje:
• permite scrierea codului în mai multe limbaje VBScript, Jscript sau chiar PerlScript, fiecare fiind derivaţii ale VisualBasic, J++ sau Perl transformate în scripting languages. Dacă deja stăpâniţi unul dintre aceste limbaje vă va fi uşor să scrieţi cod ASP;
• foloseşte componentele COM oferind astfel un mod de legătură între software-ul convenţional şi programarea pentru web;
• permite conectarea la orice bază de date prin ODBC.
Dezavantaje:
• poate rula doar pe un server cu Windows ca sistem de operare şi Microsft Internet Information Server ca server de web. Această combinaţie are două mari dezavantaje: costă – cost ce se va reflecta în taxa pe care va trebui să o plătiţi pentru serviciul de găzduire a siteului, iar timpul de execuţie este destul de ridicat (o aplicaţie ASP va rula pe un server dual- processor PIII 600Mhz mai încet vizibil decât aceeaşi aplicaţie PHP pe un server cu un singur procesor la 133Mhz);
• fiind dezvoltat de Microsoft suportul său poate lăsa de dorit. Mai mult, nu beneficiază de o comunitate de dezvoltatori open-source care să poată oferi soluţii rapide la bug-urile găsite.
JSP (Java Server Pages)
O soluţie ideală pentru fanii Java, JSP nu este însă privită cu ochi buni de restul comunităţii de programatori. În ciuda avantajelor evidente, ambele comunităţi sunt de acord că poate fi o soluţie prea pretenţioasă chiar pentru un site de complexitate medie.
Avantaje:
• portabil (codul sursă poate fi folosit pe mai multe platforme fără a fi recompilat);
• potrivit pentru programare avansată ce implică distributed computing sau multithreading;
• este rapid.
Dezavantaje:
• poate fi prea complicat de folosit pentru un site a cărui complexitate nu iese din comun;
• poate prezenta o problemă pentru majoritatea serviciilor de găzduire româneşti.
Perl
Este cel mai vechi limbaj de programare pentru web, programatori recunoscuţi apreciindu-i facilităţile. Poate fi însă mai dificil de învăţat decât PHP sau ASP.
Avantaje:
• este gratis şi disponibil pentru diferite platforme;
• poate fi compilat ca executabil C şi prin urmare este cel mai rapid dintre cele 4 limbaje prezentate;
• este cel mai vechi şi există un număr ridicat de module pentru Perl cu diferite funcţionalităţi.
Dezavantaje:
• codul poate fi greu de modificat sau menţinut.
PHP (dezvoltat de Zend)
Trebuie să recunosc că PHP-ul este preferatul meu. La fel ca Perl este susţinut de o comunitate extrem de largă şi există numeroase module sau aplicaţii scrise pentru el. Este gratis şi combinaţia PHP – MySQL (ca bază de date) – Apache (ca webserver) nu este numai una gratis şi cea mai întâlnită ci şi una extrem de bine documentată şi cu un suport excelent. Preţul unui abonament de găzduire pentru aceste cerinţe nu ar trebui să depăşească $20 pe lună. Este simplu de învăţat şi folosit dar oferă, ca şi Perl o libertate uneori prea mare programatorului ce poate genera erori.
Avantaje:
• conectare simplă la orice format de baze de date (Oracle, MySQL, PostgreSQL, ODBC, etc.);
• open-source, disponibil pentru orice platformă;
• apropiat de Linux ca funcţionalităţi înglobate şi sintaxă; ideal pentru cineva care stăpâneşte C sau C++;
• uşor de învăţat şi folosit;
• mult mai rapid decât alte scripting languages.
Dezavantaje:
• mai încet decât un limbaj de programare (JSP sau Perl).
Privite la modul general, cele patru tehnologii pot prezenta avantaje şi dezavantaje comune. Acestea ţin însă mai mult de formarea şi de preferinţele programatorului. Sintaxa Perl şi PHP permite mai multă libertate, un cod similar putând fi astfel scris în mai multe moduri şi de aici greu de înţeles de cineva cu un set incomplet de cunoştinţe. De asemenea, tipurile de variabile nu sunt fixate automat nici în Perl nici în PHP, rezultând de aici o lipsă de optimizare a resurselor. Cantitea redusă de resurse folosite face însă acest lucru aproape insignifiant. Sunt acestea probleme serioase în calea creării unei aplicaţii fiabile pentru web? Părerea unanimă este că nu, dar atunci când se pune problema unor aplicaţii de dimensiuni şi complexitate ridicate părerile se împart în mod aproape egal.
Alte diferenţe apar între programming language (JSP şi Perl) şi scripting language (PHP şi ASP). Una ar fi viteza; şi aici, părerile sunt împărţite. Atât timp cât există websiteuri cu un număr ridicat de vizitatori şi informaţie care funcţionează fără probleme pe ASP sau PHP se poate spune că diferenţa de câteva milisecunde în timpul de execuţie poate fi trecută cu vederea. O problemă şi mai nuanţată este lipsa compilării. Pe de o parte aceasta durează ceva timp, dar oferă posibilitatea detectării erorilor într-o fază incipientă. În PHP sau ASP erorile se observă pe baza încercărilor repetate, şi de aici, în lipsa unui sistem bine pus la punct de testare pot apărea scăpări.
Concluzie personală
Lăsând la o parte echidistanţa nu vă pot recomanda ASP din cauza vitezei şi al costului. Dacă acum faceţi primii paşi în programarea web, voi exclude pentru dumneavoastră şi JSP. În ciuda avantajelor sale se va dovedi un punct de start nepotrivit. Rămân Perl şi PHP. Soluţii simple şi necostisitoare.
Am încercat mai sus să vă prezint ce înseamnă programarea pentru web şi, pe scurt, de ce aveţi nevoie de ea. Mi-am propus însă să încerc să vă prezint, în mai multe numere, câteva concepte de bază şi noţiuni de sintaxă, care să vă permită dezvoltarea unor aplicaţii simple pentru propria pagină de web. Şi cum trebuie să aleg într-un final între PHP şi Perl voi alege PHP. Pentru uşurinţa în învăţare şi instalare.
Şi dacă propunerea mea vi se pare tentantă vă propun să vizitaţi www.apache.org pentru a descărca şi instala de acolo una dintre variantele webserverului Apache şi http://www.php.net/downloads.php pentru o versiune de PHP.
De notat că dacă nu aveţi la dispoziţie un server de Linux, puteţi descărca şi instala variantele pentru Microsft Windows pe computerul propriu:
(http://www.ibiblio.org/pub/packages/infosystems/WWW/servers/apache/httpd/binaries/win32/ – apache_1.3. 26-win32-x86-* respectiv http://www.php.net/downloads.php – PHP 4.2.3 installer [921Kb]).
Ca de obicei, pentru orice întrebări sau sugestii, precum şi pentru probleme la instalarea pachetelor de mai sus:
bogdan.nita@eAlliance.ro