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.




Je, ova jadikovka je u cijelosti istinita! Ima još jedno “manje” bitno , poznavanje relacijski baza i bazinih proceduralanih jezika.
Iako ti nije bila namjera izazvati sažaljenje, stvarno treba žaliti prave Web developere. Za razliku od većine Web developere (koji POZNAJU neke ili većinu od navedenih tehnologija ), onu manjinu koja ih stvarno ZNAJA treba žaliti. Većina koja radi po sistemu “promijeni boje i prodaji ko’ svoje” u potpunosti je degradirala struku.
Iako nisam “pravi” Web developer,tj. nisam pravo web site, sve gore navadeno mogu potvrditi.
Prije 8 godina sam počeo i žavršio desktop aplikaciju (praćenje poslovanja, a što drugo). Platforma je bila Linux, Postgres. Morao sam znati c , Pg bazu, Tex/LaTex, XForms Gui lib. Sve je bilo OK, uz jedan ‘mali’ problem, client računala su također bila na Linux-u. Svaka promjena na clientu je zahtijevala moj dolazak, instalaciju, administriranje itd. Smatrajući to neodrživim, prošle godine odlučim sve to prebaciti na Web aplikaciju. Kao platformu izaberem Mozillu. Takva odluka me je natjerala da još naučim : php, Javascript, CSS, Ajax, Mozilla XUL i tako postadoh nazovi Web developer. I što sam dobio? Puno novog znanja, neovisnost od client OS-a ( client radi na svim platformama koje podržava Mozilla ) i puno više cijenim prave Web developere nego prije.
Mislim da ne treba sazaljevati web developere, vec istima treba skinuti kapu i vise ih cijeniti! Nadamo se da ce se promijeniti misljenje kako je razvoj web aplikacija laksi od razvoja sistemskih aplikacija. Ovakav stav je samo odraz ne znanja onih koji tvrde suprotno!