Pàgines

divendres, 11 de gener del 2008

tecnologies

Costa això del DNS. A veure si no triga gaire més.

Aquests dies estic molt tecnològic. M'han caigut a les mans algunes eines que m'han interessat molt: per una banda el FlashDevelop.

FlashDevelop és una eina open source per a desenvolupar aplicacions per al framework Adobe Flex3 fent servir ActionScript 2 i MXML. El resultat son aplicacions SWF que es poden encastar a les pàgines HTML o que poden operar com a rich-clients fora del navegador, per exemple executant-se en el Flash player. Tots hem vist animacions en Flash. Amb FlashDevelop es poden crear aplicacions Flash que continguin els elements de la riquesa gràfica i visual de Flash.

Una reflexió després de fer proves amb el FlashDevelop ha estat, inevitablement, la comparació de Flex amb AJAX. Ambdues són tecnologies que multipliquen la potencia del clients. Ambdues són les evolucions o els refinaments de tecnologies que ja porten temps funcionant i es tracta, doncs, de tecnologies madures i amb comunitats importants de desenvolupadors. Ambdues estan suportades per la majoria dels navegadors d'Internet.

Llavors quan triar una o altre? Flash és un estàndard "de facto" que de forma aclaparadorament majoritària es troba en les mini animacions publicitàries, banners, efectes especials i gadgets multimèdia de gairebé qualsevol pàgina d'Internet. No he trobat, en canvi, tants formularis o aplicacions web que el facin servir per a la seva implementació. En canvi, sembla que hi ha un consens entre els desenvolupadors a l'hora d'utilitzar AJAX per a la implantació de noves aplicacions web.

El fet que crida l'atenció, però, és que Flash, si més no en aquesta última encarnació de Flex3 - ActionScript2 - MXML, no s'utilitzi en moltes més aplicacions d'Internet. Potser el motiu és que encara no ha tingut temps: Flex3 actualment està en fase beta i que només en el darrer any Adobe va prendre la decisió estratègica de convertir Flex2 en un framework open-source.

Flex3 és molt poderós. Molt. ActionScript té una aire familiar als programadors Java i, encara que hi han alguns conceptes diferents, resulta molt senzill desenvolupar ben aviat aplicacions amb un grafisme que no es pot somniar si només es fa servir DHTML i AJAX.

Obro incís. A conseqüència de la investigació i proves que he estat fent amb el FlashDevelop he descobert un entorn germà per a .NET: el SharpDevelop. Una completa IDE que permet desenvolupar C# i VB.NET. IDE completa, amb depurador i paleta de components, accés a fonts de dades... també opensource i lleugera. Una alternativa lliure al VisualStudio.NET. Una IDE amb un aire diferent a les IDEs pesades i basades en Eclipse que ens són tan familiars als programadors de Java. Tanco incís.

Tanmateix, AJAX està allà. No hi ha res més lleuger que AJAX. Certament que AJAX pateix els inconvenients de no dependre d'una única marca: Flax és un producte d'Adobe i Adobe el cuida, el mima i en fixa l'estàndard. AJAX no. Hi ha dotzenes de frameworks AJAX, tot i que n'hi han alguns que, segurament, són els preferits. Per mi, opció estrictament personal, la referència és el Google Web Toolkit. Tanmateix, les diferències entre navegadors són l'infern dels programadors d'Internet. Avui, amb tants anys com portem "d'estandarització" de tecnologies, resulta difícil que una aplicació web desenvolupada sobre un navegador tingui el mateix comportament a un navegador diferent o entre versions del mateix navegador.

Doncs bé, això Flash ho obvia completament. Si hi ha plugin de Flash, el comprtament és el mateix independentment de la plataforma. Això, de fet recorda a la màquina virtual de Java i els applets. Els applets de java eren una bona idea amb una tecnologia que encara no estava prou madura. Avui, els applets java (java, de fet) s'han quedat enrera en la part gràfica i no poden competir amb la riquesa gràfica de Flash.

Però llavors apareixen nous actors. I si es poguessin fer animacions amb XML? i llavors apareix SVG: gràfics vectorials fàcils de generar i que es poden animar (encara que això ultim només està ben soportat per, quines coses, el SVG viewer d'Adobe per a Internet Explorer. Firefox, dona un suport parcial que no admet, almenys en el Firefox 2.0.0.x, l'animació.

Tanmateix, SVG es pot generar facilment amb eines opensource com Inkscape, o OpenOffice... Aleshores podem pensar en la promesa de DHTML + SVG + AJAX. Si afegim SMIL com a llenguatge XML per a presentacions o animacions multimèdia (SMIL compta amb eines open source com LimSee2, que recorden vagament als Flash primitius) ens queda un cocktail amb XML relligant diverses tecnologies lliures, obertes i en expansió i amb JavaScript com a llenguatge universal del client.

Enfront això, l'estratègia d'Adobe amb el seu atractiu i poderós Flex...

Llavors arriba un projecte per a una nova aplicació d'Internet i cal decidir. Quina tecnologia triar?

Per descomptat que cada projecte és un cas, i que la tria d'una tecnologia o altre per a un projecte concret respon als seus requeriments i especificacions. La tecnologia pot ser ella mateixa un requeriment.

Per si de cas, seguiré amb els meus experiments amb Flex... i AJAX, SVG i SMIL.