Ljubavno pismo učenju

Drugi deo: Hrabri vizionari koji su izgradili digitalni svet
Ljubavno pismo učenju
IX. Programski jezici, web i otvoreni digitalni svet
42. Rasmus Lerdorf – demokratizacija weba: PHP

Početkom devedesetih godina World Wide Web umeo je da povezuje i prikazuje dokumente, ali su njegove stranice uglavnom ostajale statične. Svaki posetilac dobijao je gotovo isti unapred pripremljen sadržaj, dok su obrada obrazaca, pamćenje podataka i prilagođavanje odgovora zahtevali posebne programe. Takvi programi najčešće su se pokretali kroz CGI, mehanizam koji je web serveru omogućavao da rezultat spoljašnjeg programa pošalje pregledaču. Za iskusne stručnjake taj postupak bio je savladiv, ali je vlasnika male stranice ili početnika suočavao sa složenim radom na protokolima, procesima, bazama i stvaranju HTML odgovora.

Rasmus Lerdorf susreo se sa tim teškoćama kroz neposrednu potrebu. Želeo je da zna ko posećuje njegovu stranicu sa profesionalnim podacima, pa je napravio mali CGI omotač za beleženje pristupa. Prvu verziju napisao je u Perlu, a zatim ju je zbog opterećenja servera prepisao u C. Dodavao je funkcije za obradu obrazaca, povezivanje sa podacima i stvaranje HTML-a, svaki put rešavajući problem koji se pojavio u stvarnom radu. Iz niza takvih rešenja postepeno je izrastao alat koji je programiranje približio samoj web stranici.

U junu 1995. Lerdorf je izvorni kod svojih PHP alata objavio javno, omogućivši drugim programerima da ih koriste, popravljaju i proširuju. Ubrzo je razvio Forms Interpreter, pa je objedinjeni sistem postao poznat kao PHP/FI. Kod se mogao umetati među HTML oznake, dok je server izvršavao naredbe i pregledaču slao završenu stranicu. Autor je mogao da zadrži većinu dokumenta u poznatom HTML obliku, a da na potrebnim mestima doda proveru obrasca, rezultat upita ili prikaz podataka. Ta neposrednost otvorila je programiranje ljudima koji nisu želeli da svaki dinamički dokument grade kao zaseban sistemski program.

Javno objavljivanje izvornog koda pretvorilo je lični alat u zajednički projekat. Korisnici su slali ispravke, tražili podršku za nove baze i predlagali funkcije potrebne njihovim sajtovima. PHP se razvijao pod pritiskom svakodnevne upotrebe, pa je njegova sintaksa nosila trag praktičnih potreba, brzih odluka i različitih doprinosa. Takav razvoj doneo je izuzetnu upotrebljivost, ali i nedoslednosti koje će zajednica dugo popravljati: neujednačene nazive funkcija, promenljiva pravila i osobine uvedene pre nego što je iko mogao predvideti buduću veličinu projekta.

PHP je uklonio više prepreka odjednom. Bio je slobodno dostupan, mogao se naučiti kroz kratke primere, a rezultat izmene video se čim bi datoteka bila sačuvana i stranica ponovo učitana. Početnik je mogao prvo prikazati datum, zatim obraditi obrazac, potom sačuvati podatak i konačno izgraditi čitavu aplikaciju. Učenje je teklo uporedo sa stvaranjem, bez dugog čekanja da se savlada celokupna teorija jezika. Ta osobina dala je milionima ljudi prvi osećaj da web stranica može da odgovara, pamti i menja se pod njihovim rukama.

Rast projekta ubrzo je prevazišao mogućnosti prvobitnog tumača. Zeev Suraski i Andi Gutmans, radeći na sopstvenoj aplikaciji, prepisali su njegovo jezgro i udružili se sa Lerdorfom i širom zajednicom. PHP 3, objavljen 1998. godine, dobio je proširivu arhitekturu i naziv PHP: Hypertext Preprocessor. Suraski i Gutmans zatim su razvili Zend Engine, na kojem je zasnovan PHP 4. Kasnija izdanja donela su razvijeniji objektni model, znatno bolje performanse, pouzdaniju obradu grešaka, savremeniji sistem tipova i mogućnosti potrebne velikim aplikacijama.

Lerdorfov doprinos zato prevazilazi autorstvo prvih verzija. On je prepoznao problem, pronašao upotrebljiv oblik rešenja i otvorio dovoljno prostora da ga drugi iznova izgrade. Prihvatanje novog jezgra pokazalo je tehničku skromnost čoveka kojem je korisnost projekta bila važnija od očuvanja svakog reda sopstvenog koda. PHP je mogao da preraste svog začetnika upravo zato što mu je dopušteno da postane zajedničko delo.

PHP se prirodno povezao sa Linuxom, Apacheom i MySQL-om u otvoreno okruženje poznato kao LAMP. Hosting kompanije mogle su da ponude veliki broj pristupačnih naloga sa već pripremljenim serverom, jezikom i bazom podataka. Korisniku nisu bili potrebni sopstvena mašina, skupe licence ni tim sistemskih stručnjaka. Dinamički Veb tako je stigao do škola, udruženja, malih redakcija, prodavnica i pojedinaca, omogućavajući im da stvaraju servise koji su ranije pripadali velikim ustanovama.

Na PHP-u su izgrađeni sistemi za upravljanje sadržajem, forumi, prodavnice, enciklopedije i obrazovne platforme. WordPress je milionima ljudi omogućio objavljivanje bez ručnog pisanja svake stranice, dok je MediaWiki pružio tehničku osnovu za zajedničko uređivanje ogromnih zbirki znanja. Drupal, Joomla i brojni drugi projekti pokazali su koliko daleko može stići jezik osmišljen da ukloni prepreku između zamisli i njenog prvog radnog oblika.

Velika pristupačnost donela je i ozbiljnu odgovornost. Početnicima je bilo lako da napišu program koji radi, ali i da bez dovoljne provere uključe korisničke podatke u upit ili HTML, otvarajući prostor za bezbednosne propuste. Zajednica je tokom vremena uklanjala opasne podrazumevane postavke, uvodila sigurnije načine rada sa bazama i razvijala okvire, standarde, biblioteke i alate za testiranje. Composer, Symfony, Laravel i drugi delovi savremenog ekosistema izgradili su put od prvog skripta do složenih aplikacija koje zahtevaju disciplinu, pouzdanost i dugoročno održavanje.

PHP se danas razvija kroz otvorene predloge, rasprave i glasanja ljudi koji održavaju njegovo jezgro. Savremena izdanja znatno su brža, doslednija i izražajnija od ranih PHP/FI alata, ali u njima i dalje živi Lerdorfova početna namera: programer treba što neposrednije da stigne od konkretnog problema do korisnog rezultata. Ta praktična filozofija ponekad je izazivala podsmeh zagovornika savršenije jezičke elegancije, dok je istovremeno omogućila čitavim generacijama da uđu u svet programiranja.

Demokratizacija Veba dogodila se kada je pravo stvaranja prestalo da pripada samo velikim laboratorijama i dobro finansiranim kompanijama. Zahvaljujući PHP-u pojedinac je mogao da pokrene časopis, forum, prodavnicu ili obrazovni sajt, a mala zajednica da napravi sopstveni prostor bez traženja dozvole od vlasnika zatvorene platforme. Lerdorf je započeo taj proces pokušavajući da sebi olakša jedan mali posao. Njegova priča podseća da revolucionarna promena često nastaje kada neko pažljivo pogleda svakodnevnu prepreku, pronađe jednostavniji put i velikodušno ga ostavi otvorenim za druge.

← Prethodna priča Povratak na sadržaj Sledeća priča →