16.11.2007

Web-sovellusten tulevaisuus?

Kävin kuuntelemassa Dosentti Antero Taivalsaaren ja Professori Tommi Mikkosen esitelmän Sun Labs Lively Kernelistä (eli lyhyemmin Lively), jota he ovat olleet Sun Labsilla kehittämässä. Livelyssä on ollut tavoitteena helpottaa monimutkaisten Internet-selaimessa toimivien sovellusten kehitystä. Tällaisia selaimissa toimivia ohjelmia ovat useat Googlen uusimmat palvelut, kuten Google Docs, joka on oikeastaan selaimessa toimiva Office-paketti.

Ohjelmistoihmisten näkökulmasta nykyinen tapa kehittää selaimessa toimivia sovelluksia on aikamoinen teknologioiden sekasotku. HTML, CSS, DOM, JavaScript, Ajax, PhP, MySQL ovat teknlogioita, joita useasti on käytössä. Pahimmillaan sisältö, ulkoasu ja toiminnallisuus on yhdessä sekasotkussa HTML-tiedostoissa, jotka saatetaan generoida dynaamisesti palvelimella. Parhaimmillaankin tilanne on ollut sekava. Näissä sovelluksissa on sisältö HTML:ää, ulkoasu CSS:ää ja HTML:n toimintaa täydennetään JavaScriptillä. Palvelun suunnittelijan täytyy osata ainakin kahta eri kuvauskieltä ja yhtä skriptikieltä. Lisäksi täytyy tuntea DOM-malli, joka kuvaa dokumentin rakenteen ja jota kautta sisältöä voidaan muuttaa.

Livelyssä tilannetta on muutettu niin, että koko sovelluksen voi rakentaa JavaScriptillä. HTML:ää, CSS:ää ja DOMia ei siis enää tarvitse osata. Lively on rakennettu standardien Web-teknologioiden varaan ja se toimii selaimessa ilman, että selaimeen täytyy asentaa erillisiä laajennuksia. Livelyn grafiikka-puoli on toteutettu SVG:n varaan, joten Lively ei valitettavasti toimi kuin aivan uusimmissa selaimissa, kuten Safari 3 ja Firefox 3 beta.

Sun Labsin sivuilta löytyy Livelyn julkinen beta-versio. Beta-versio on oikein vaikuttava. Betaa varten rakennettu ympäristö muistuttaa varsin paljon Squeakia, joka on SmallTalk ympäristö. Kaikki ympäristössä on dynaamista ja Squeakin tapaan Livelykin sisältää luokkaeditorin, jolla ajossa olevaa koodia voi muokata lennossa.

Yksi ongelma Web 2.0 aikakaudella on se, että enää ei selaimessa ole samalla tavalla sivu vaan sovellus. Internet ei enää aina linkity yhtä hyvin kuin sivu-keskeisenä aikakautena. Tämä merkitsee sitä, että selaimessa olevalla tilalla ei enää välttämättä ole URL:ia, eli et voi bookmarkata tilaa tai antaa linkkiä kaverille, lisäksi selaimen back- ja forward näppäimet eivät ehkä osaa tehdä mitään järkevää. Ymmärtääkseni Livelyssä ei ole vielä tätä yritetty ratkaista.

Itse esitys oli varsin vaikuttava ja ympäristö on lupaava. On hyvä, että koko sovelluksen voi rakentaa yhdellä kielellä ja JavaScript on mainettaan parempi kieli.

Epäilen silti, että perinteisen WWW-palvelun tekemiseen HTML+CSS+JavaScript yhdistelmä on järkevämpi, sillä sisällön (HTML), ulkoasun (CSS) ja toiminnallisuuden (JavaScript) erottelun uskoisin kuitenkin toistaiseksi käyvän perinteisillä teknologioilla luonnollisemmin. Täytyy tosin tunnustaa, että en tunne Livelyä niin hyvin, että voisin tästä olla varma. Teoriassa ei ole mitään estettä, että Livelyssä ei voitaisi tehdä erottelua jopa paremmin kuin perinteisessä ympäristössä. Tavoitteena siis olisi, että graafikko, sisällöntuottaja ja koodari voisivat toimia mahdollisimman riippumattomasti toisistaan.

Edellä puhuin siis perinteisistä Web-sivustoista. Perinteisiä dynaamisempien palvelujen, kuten vaikkapa Facebook tai Google Docs, tekoon uskoisin Livelyn JavaScript-keskeisen lähestymistavan sopivan todella hyvin. Näissä on paljon interaktioita ja dynaamisuutta, joiden käsittelyyn vaaditaan paljon JavaScript-koodia, joten ohjelmointipohjainen lähestymistapa sopii hyvin.

Lively-ympäristö selaimessa on hyvä alku, mutta vasta puolet ratkaisua, sillä nykyaikaiset palvelut tarvitsevat aina myös palvelinpään.

Ei kommentteja: