duminică, mai 14, 2006

Viitorul suna foarte bine pentru interfetele Web

Am sa vorbesc despre JavaScript. Trebuie sa recunosc ca limbajul de scripting pe care il uram cel mai mult tinde sa devina foarte importnat in viitorul aplicatiilor Web. Il uram pentru urmatoarele aspecte: greu de depanat, greu de mentinut, nestandard intre browsere. Probabil problema mea este faptul ca nu am considerat JavaScript un adevarat limbaj de programare. El chiar este asta. Trecand peste faptul ca browserul ofera via JavaScritp o serie de obiecte care permit accesarea structurii logice a paginilor randate, JavaScript este un limbaj in care poti crea propriile tale obiecte. Deci, surprinzator este un limbaj de programare (scripting) obiectual.

Lucrurile au evoluat, de la prima mea intalnire cu JavaScript. Ce s-a intamplat in ultimul timp este aparitia framework-urilor si librariilor JavaScript. Pentru a distinge o librarie de un framework, in cazul unui framework, codul aplicatiei este apelat de framework, in cazul unei librarii, codul aplicatiei apeleaza libraria.

Prima concentrare a fost o incercare de a crea librarii de efecte sau de componente. Urmatorul pas este conturarea unor librarii JavaScript mai complexe care sa inglobeze un stil de programare, suport pentru diverse functionalitati tehnice, etc. Printre ele cele mai semnificative ar fi script.aculo.us si Dojo toolkit. Script.aculo.us este larg raspandit in lumea programatorilor de Ruby on Rails, fiind inclus si in distributiile acestuia. Dojo tinde a fi adoptat de lumea Java fiind inclus in WebWorks si deci in viitorul Struts Action 2. Este integrat si in Tapestry.

Totul a inceput de la prototype, un framework peste care scriptaculous a fost construit. Ideile principale din prototype sunt accesarea in mod unitar a elementelor paginii prin apeluri de genul node = $("elementID") in loc de node = document.getElementById("elementID") si alte functii de acest gen. Un alt aspect este construirea unor obiecte predefinite pentru acces asincron spre server de tip AJAX. A se vedea de asemenea si Behaviour care permite scoaterea apelurilor de JavaScrip inafara codului HTML - consider o mare realizare pentru claritatea aplicatiei. In fapt script.aculo.us aduce electe si componente peste prototype. Am avut ocazia sa testez FLUXIOM si sunt placut impresionat de ce se poate face cu script.aculo.us. Tot prototype sta si la baza RICO (vine de la Rich Internet Aplications) un alt set de componente-efecte demn de admirat.

Dojo imi este oarecum strain chiar daca, ca om de Java ar trebui sa fie preocuparea mea de baza. Se pare ca provine dintr-o incercare de unificare a mai multor librarii DHTML si are un aer mult mai ingineresc decat script.aculo.us care e frumos ca design. Poate acesta e si motivul apropierii de Java care vine dintr-un mediu ingineresc cum e cel de la SUN. O prezentare o puteti gasi aici. Observati motto-ul: “JavaScript is not a bug that needs fixing”.

Alte lucruri interesante despre JavaScript. Cei de la yahoo ofera gratuit o librarie de componente si efecte bine documentata pe care o puteti gasi aici. Dar ce e mai interesant este o colectie de patternuri grafice pe care o puteti gasi aici. Aceasta incearca sa surprinda problemele comune care pot sa apara in interfetele grafice, o sintetizare a lor si solutii comune. E prima oara cand vad asa ceva pentru interfete.

O alta aplicatie care m-a impresionat grafic este Mint, un produs pentru auditul intern al sit-ului. Nu stiu cum a fost realizat si daca are la baza o librarie cristalizata pentru interfata. Stiu ca in partea de server e facut cu PHP. Probabil cel care l-a realizat shaun inman e un bun designer pentru ca blog-ul lui e la fel de placut. O alta aplicatie care m-a impresionat ca design este Base Camp , un soft de management de proect care contine multe elemente noi de design. Este facut in Ruby si probabil cu scriptaculous. La fel si celelalte produse ale 37signals.

In rest, cam toate interfetele pe care le-am vazut si la care am lucrat sunt bazate la fel pe vechiul refresh pe intreaga pagina Web. Intadevar cu mai multe briz-briz-uri. Cele enuntate mai sus folosesc AJAX cu refresh pe componenta si apeluri asincrone spre server. De asemenea au efecte cinematice, colectii de componente si ofera apropiere mult mai mare de modul in care sunt facute aplicatiile de descktop.

Intr-o zi am descoperit un produs minunat care se cheama Javeline Desk Run care iti permite sa rulezi o aplicatie web ca una de descktop. Cand o sa fie prima aplicatie web care nu se va distinge de una de descktop?
category: , , ,