Naravno da ne umiru, ali neki agilni ajaxaši provociraju Desktop Applications Dying, Dying.... Činjenica je da sve više koristimo web aplikacije i da su one sve naprednije. Uz pomoć nekih Javascript biblioteka vaša će aplikacija izgledati puno ljepše nego većina desktop aplikacija, a još će i na svim platformama izgledati isto.
Ovaj post nije nikakvo predviđanje glavnih tokova (iako će neke stvari krenuti tim putem), niti je to epitaf desktop aplikacijama (one su žive i zdrave i neke probleme nema smisla rješavati bez njih), već je to samo glasno razmišljanje o tome što ću ja i s kojim alatima raditi (ili radim) u slijedećih par mjeseci, ali samo na strani preglednika.
Ext JS je odlična biblioteka. Osim što odlično izgleda, dopada mi se i kako je napisana. Jack i ekipa svoj posao zaista rade odlično. Kad jednom uđete u njihov način razmišljanja onda je sve logično i intuitivno. Druge JS biblioteke možda izgledaju kompaktnije, efektnije ('vidi što sve ova jednostavna linija koda radi'), ali meni je draži Ext način mada ima više koda za pisanje (produktivna lijenčina već predlaže da se dobar dio tog koda generira u letu ili prilikom promjene). U početku sam i ja naginjao nekim agilnijim bibliotekama, ali valjda starost čini svoje. ;-)
Extu se najčešće zamjera njegova veličina (400Kb) i sporost. Sporost se najčešće rješava isključivanjem Firebuga. Prije nego što sam krenuo raditi jedan projekt u Extu provjerio sam kako se aplikacija ponaša na slabom računalu (Windows 98, 128MB RAM-a, spori disk i slab procesor). Normalno. Nema nikakvih zastajkivanja. Naravno, aplikacija je radila na lokalnoj mreži. Veličina biblioteke? Ako se Ext podvrgne gzip torturi njezina veličina je prihvatljiva na današnji broadband svijet. Ne preporučuje se korištenje raznih alata i rješenja koji enkriptiraju i sažimaju Javascript kod jer preglednik kasnije potroši više vremena na dekriptiranje nego što mu je potrebno za skidanje cjelovite biblioteke. Preglednici i keširaju Ext pa se on neće učitavati svaki put nego samo jednom.
Možda će se to nekome činiti nevjerojatno, ali dobro koncipirana Ext aplikacija će potrošiti manje bandwitha nego klasična web aplikacija. Nakon početnog učitavanja Ext sa serverom razmjenjuje relativno malu količinu podataka (ja koristim JSON), dok klasična web aplikacija ima konstantnu potrošnju. Napravio sam mjerenje u kojem sam uspoređivao klasičnu aplikaciju sa Ext aplikacijom slične funkcionalnosti i sličnog protoka podataka (konkretni podaci koji se nalaze u gridovima i formama). Početnu prednost Ext aplikacije klasičarka je brzo nadoknadila i sa svakim trenutkom trošila sve više i više.
Neki korisnici su Ext prepoznali u onome o čemu Joel govori u postu Strategy Letter VI. Ono što nedostaje je kompajlirani Javascript. To nije ono što rade neke postojeće biblioteke s kojima pišete kod u nekom drugom jeziku koji kasnije generira Javascript kod. Bilo bi idealno kad bi Javascript dobio svoj bytecode.
Ali za sada se moramo snaći s onime što imamo. Zirkam malo na Google Gears s kojim bi bio moguć offline rad. Ali tu je i Adobe Air za Html i Ajax. Uz dobro osmišljen db layer mogla bi se web Ext aplikacija uz male promjene pretvoriti u klasičnu desktop (Air) aplikaciju. Kad smo već kod Aira i Ajaxa onda moram spomenuti i zanimljiv članak Jesse James Garrett Sees Adobe AIR as Another Boost For Web Apps. Da li je Ajax krstitelj označio još jednu ključnu točku? WebRunner mogao bi biti jako zanimljiv ako poslušaju prvog komentatora u diskusiji o planovima koji kaže da ljudi hoće osobine koje ima Air.
Toliko zanimljivih stvari, a tako malo vremena...
Vidis, nisam ni razmisljao o tome kako desktop aplikacije lagano gube smisao napredkom web aplikacija... Tko zna, jednog dana mozda sve bude na netu.