Web-teknologiat ovat valinta avoimemman tulevaisuuden puolesta

 

Valinta web- ja natiivisovelluksen välillä on projektin alkuvaiheen päätös, joka tehdään tänään ja myös tulevaisuudessa enemmän uskomusten kuin faktojen pohjalta. Valintatilanteessa kumpikin leiri painottaa niitä asioita, jotka tukevat omaa teknologiaansa; käytännössä kukaan ei projektin alussa tiedä, mitä sovellukselta lopulta vaaditaan. Yksinkertaistettuna valinta tehdään loppujen lopuksi avoimen ja suljetun maailman välillä. Miksi tällä on merkitystä?

 

Natiivisovellusten kehittäminen muistuttaa hyvin paljon perinteistä Windows-sovelluskehitystä, jossa Microsoft julkaisee vuorovuosittain käyttöjärjestelmästään uuden version, sovelluskirjastot ja niiden mukana joukon muutoksia, jotka johtavat sekä käyttöjärjestelmän että sovellusten päivitykseen. Windows on edelleen maailman suosituin kannettavien- ja työpöytäkoneiden käyttöjärjestelmä, mutta se ei ole saavuttanut vastaavan kaltaista suosiota kännyköissä ja pilvipalveluissa, joiden merkitys markkinoilla on kasvanut. Lisäksi selainpohjaiset sovellukset ovat nakertaneet työpöytäsovellusten markkinoita, koska ne eivät samaan tapaan ole käyttöjärjestelmästä tai tietokoneesta riippuvaisia.

Onko syytä olettaa, että Applen ylivoimalle ja iOS-käyttöjärjestelmälle käy jonain päivänä kuin Windowsille - se menettää merkityksensä kun käyttötapa muuttuu?

Ilmiö on tuttu avoimen ja suljetun innovaation teorioista. Suljetun innovaation mallissa yritys tutkii omien ja asiakkaidensa tarpeiden pohjalta eri vaihtoehtoja, joiden pohjalta idea tuotteistetaan, suojataan ja tuodaan markkinoille. Malli on tehokas ja ratkaisut vastaavat hyvin tunnistettuun tarpeeseen. Yritys keksii kaiken, kantaa kaiken riskin  ja myös korjaa kaiken hyödyn itse. Vastaavasti avoin innovaatio poimii ideoita ulkopuolelta ja jalostaa niitä yhdessä muiden kanssa eteenpäin. Kilpailuetu ei perustu ideaan vaan yrityksen muun liiketoiminnan ainutlaatuisuuteen. Vastaavasti syntyneitä innovaatioita voidaan hyödyntää alkuperäisen käyttökohteen ulkopuolella.

 

Web-teknologiat edustavat avointa innovaatiota. Tunnetuin esimerkki tästä on vanha kunnon WWW ja HTML, josta hypertekstijulkaisujen sijaan tuli 2000-luvun verkkopalveluiden yhteinen kieli. Alkuperäinen HTML 1.0 -standardi ei sopisi verkkopalveluihin tai kännykkäsovelluksiin kovinkaan hyvin, mutta sen HTML5-version ja PWA-sovellusten kautta se kehittyy yhä paremmin uuteen tarkoitukseen sopivaksi. Samoin webbisivujen skriptikielestä, ECMAScriptistä, on tullut myös palvelinympäristöjen kieli Node.js -alustan ja sen maailman laajimman kirjastokokoelman myötä.

 

Sekä selainstandardeja että ECMAScriptiä kehitetään avoimesti yhteisön voimin ja ne poimivat jatkuvasti ideoita ympäriltään (esim. ECMAScriptin asynkroniset Promise-kutsut). Vaikka Apple, Microsoft ja Google ovat kukin avanneet omia alustojaan (erityisesti ohjelmointikielien osalta), ne pitävät alustan sovellusrajapinnat visusti omissa käsissään.

On hyvin todennäköistä, että web-teknologiat saavat uusia käyttökohteita, joista emme tiedä vielä mitään. Onko syytä olettaa, että sama tapahtuisi esim. suljetuille iOS- tai Windows-alustoille - ainakaan Applen tai Microsoftin ulkopuolella?

Natiivisovellukset tarjoavat kullekin alustalle omat sovelluskirjastonsa, kehitysympäristönsä ja sovelluskauppansa. Se on tehokasta ja toimii silloin kun tarpeesi on huomioitu jo ennalta. Esimerkkinä tästä toimii Applen haluttomuus tukea sovelluskauppansa ulkopuolisia maksutapoja. Vastaavasti selainsovellusten kehittäminen on paikoin kaoottista ja turhauttavaa muuttuvien teknologioiden jatkuvassa tulvassa. Maksutapojenkin kohdalla selaimiin juuri julkaistiin oma standardiehdokkaansa ja verkkopalvelut hyödyntävät tusinaa eri maksumekanismia Stripestä Paypaliin. Toisaalta web-sovellusten teko on tänään paljon helpompaa ja ne toimivat paljon paremmin kuin vielä pari vuotta sitten ja tarjoavat uutta opittavaa joka päivä.

 

Avoimissa teknologioissa yhteisö kukoistaa myös paikallisesti - ei vain verkossa. Esimerkiksi HelsinkiJS lienee Suomen aktiivisin kehittäjäyhteisö, jossa näkyy ja tapahtuu jatkuvasti uutta. Avoimissa yhteisöissä maailmaa voi muuttaa kotoa käsin eikä tarvitse odottaa, että muutos tapahtuu Cupertinosta tai Redmondista käsin.

 

Kun kehitän avoimilla teknologioilla, koen että osallistun johonkin laajempaan kuin vain seuraavan sovelluksen julkaisuun. Se on minun tapani osallistua jatkumoon, joka oli ennen mobiilisovelluksia, ja jatkuu jonain muuna vielä mobiilisovellusten jälkeenkin.

 

Lauri Svan,

Code in the Woods mentori