Specijalisti i renesansni ljudi
Pišući novi tekst za stranicu O autoru (coming soon), pri čemu sam rekapitulirao svoje developerske korijene, shvatio sam kako je svojevremeno — tamo negdje sve do pucanja (prvog, rekli bi neki) dotcom mjehura — bilo sasvim normalno da jedni developeri rade na serverskoj strani Web aplikacija — JSP, PHP, ASP, ColdFusion… — dok drugi rade na klijentskoj strani — HTML, CSS, Javascript, Flash. Kad je prošlo vrijeme bezočnih ulaganja u Web i IT općenito, postalo je preskupo držati velik broj developera, pa su oni koji su bili dovoljno sretni da zadrže posao bili primorani raditi sve, potaknuti stavom poslodavaca “pa sve je to programiranje, možeš ti i jedno i drugo”.
Tako je nastala podjela posla po kojoj programeri pišu serverski kôd, a dizajneri pišu markup (i ne žele ni vidjeti programski kôd — otud toliki uspjeh template modula “for dummies”, kao što je Smarty), a negdje na ničijoj zemlji između njih ostale su client-side programske tehnologije poput Javascripta i ActionScripta. Kad god bi se pokazala potreba za razvojem nečega u njima, to je palo na leđa server-side programera, i tako su oni postali donekle “renesansni ljudi” Web developmenta, poznajući svaku od nužnih tehnologija do neke mjere.
Većina ljudi — a tu nažalost spada i većina klijenata — nije svjesna koju količinu tehnologija sadržava jedan prosječan (dinamički) Web site, a koju mora objediniti razvojni tim koji se nerijetko sastoji od samo jednog čovjeka. Podaci su najčešće smješteni u nekoj relacijskoj bazi — obično MySQL ili PostgreSQL — što podrazumijeva poznavanje SQL-a; poslovna logika koja se vrti sa serverske strane implementirana je u nekoj od adekvatnih tehnologija kao što su PHP, Perl, Java (JSP, J2EE), ASP, ASP.NET, Python, Ruby (on Rails), ColdFusion i druge; komunikacija s drugim Web aplikacijama zahtijeva poznavanje Web servisa, XML-a, RSS feedova i prema potrebi XSLT-a. Prikaz svega toga na serveru podrazumijeva znanje u najmanju ruku HTML-a (a i mnogi iskusni poznavatelji HTML-a nisu nikad čuli za vrlo korisne elemente kao što su q, fieldset, legend, label, pa čak i button), te CSS-a za oblikovanje, a često je potrebno i određeno znanje grafičke pripreme (npr. u čemu je razlika između GIF-a i JPEG-a i kad je kojega bolje koristiti). A ako dodamo malo aplikacijske logike na klijentskoj strani, komunikacije sa serverom bez osvježavanja stranice, dinamičke promjene sučelja itd, onda u igru ulazi i Javascript, dugo zanemareni i podcijenjeni jezik koji vlastitu renesansu doživljava pojavom “ajaxa”. Čak i najmanji dinamički site podrazumijeva redovno korištenje barem četiri od gore navedenih tehnologija: SQL, PHP (ili neku drugu serversku tehnologiju), HTML, CSS.
Kod klasičnog sistemskog i desktop developmenta broj tehnologija koje koristi jedan programer je daleko manji. Baza je često i ovdje prisutna, no brojni alati i libraryji omogućuju komunikaciju bez ijedne linije SQL koda; korisničko sučelje se također apstrahira iza raznih GUI libraryja. Jasno, postoje razlike od developera do developera, ali daleko lakše ćete naći desktop developera koji ne mora razmišljati o ničem drugom nego o temeljnoj logici u Javi ili C++-u, nego što će isti slučaj biti za Web developera.
Da zaključim: namjera mi nije izazvati sažaljenje prema “jadnim” Web developerima, već samo podsjetiti na nužnu širinu znanja koje oni posjeduju, te da Web development nije “pljuga” kako često čujem od vrlih kolega čije aplikacije rijetko imaju output raskošniji od jedne linije shella. Ne treba zaboraviti da svaka Web aplikacija, koliko god bila jednostavna, u suštini predstavlja dvije aplikacije: jednu, koja se vrti na serveru, i koju se obično smatra “pravom” aplikacijom, te drugu, koja se izvodi na klijentu — obično u browseru — a koja s prvom nema nikakve veze osim niza instrukcija koje joj ova šalje. Čak i najjednostavniji HTML — čest stav je bah, pa to je samo tekst
— nije output Web aplikacije, već samo niz instrukcija klijentskoj platformi kako treba obaviti svoj dio posla.
Comments(2)




