illustration
Blogitekstejä

Script’18 — Rakkaudesta JavaScriptiin

Juho Perälä vieraili Script’18-konferenssissa Itävallassa.

Tammikuussa Itävallan Linzissä järjestettiin JavaScript-kielen ympärille rakennettu yksipäiväinen Script’18-konferenssi. Kyseessä on vuosittainen tapahtuma, jonka pistivät alulle paikallisen kehittäjäyhteisön aktiiviset puuhamiehet Stefan Baumgartner ja Sebastian Gierlinger.

Vaikka kyseessä on pääosin vapaaehtoisvoimin järjestetty tapahtuma, konferenssi ei ole lainkaan pienimuotoinen, vaan puhujakaarti koostui kansainvälisistä puhujista kolmelta eri mantereelta. Yleisöäkin oli kertynyt paikalle 250 henkilöä eri puolilta Eurooppaa. Ainutlaatuista Script’18-konferenssille on normaalista poikkeava aikataulu, jossa itse tapahtuma alkaa vasta puolilta päivin ja esitykset jatkuvat myöhäiseen iltaan – jatkokeskusteluja ja after partyja tietenkään unohtamatta.

Open sourcesta kokopäivätyö?

Konferenssin avasi Vue.js-projektin ylläpitäjänä tunnettu Evan You, joka kertoi, kuinka hän päätyi päivätyönsä ohella open sourcea tehneestä harrastajasta täyspäiväisesti kehittämään open source -projektia.

Tarinassa käytiin läpi Vue.js-projektin kasvaminen pienestä ideasta läpi hypesyklin nousujen ja laskujen nykyiseksi miljoonien käyttäjien kokoiseksi projektiksi. Evan nosti vahvasti esiin, kuinka aikaavievää ja sosiaalisesti stressaavaa ison open source -projektin kehittäminen päivätyön ohella voi olla. Lopulta Evanin ainoaksi vaihtoehdoksi jäikin joko Vue.js-projektin kehityksen alasajaminen tai siirtyminen päätoimisesti sen kehittämiseen. Evan valitsi jälkimmäisen, koska tiesi, ettei olisi onnellinen, jos Vue.js:n tarina olisi päättynyt ennen aikojaan.

Mielenkiintoista antia esityksessä olivat etenkin eri ansaintamenetelmät, joiden avulla open source -kehityksellä on mahdollista elättää itsensä. Evan itse kerää käyttäjiltä muun muassa Patreon-palvelun kautta jatkuvia lahjoituksia. Lisäksi hän esitteli vaihtoehtoisia rahoitusmalleja, joita muut tunnetut open source -kehittäjät käyttävät. Esiin nousi myös lahjoituksiin perustuvan rahoituksen saamisen haasteellisuus open source -projekteja käyttäviltä yrityksiltä. Kuten Evan totesi, usein on helpompi myydä kalliilla kuin antaa ilmaiseksi ja pyytää pientä lahjoitusta.

Esteettömät ja saavutettavat sovellukset

Esteetön Internet-palveluiden käyttäjä ei usein mieti, kuinka ongelmallista palveluiden käyttäminen voikaan olla aisti- tai liikuntarajoitteiselle käyttäjälle. Jopa monet nykypäivänä lähes pakolliset palvelut, kuten pankki- ja postipalvelut, on rakennettu usein ilman kunnollista tukea vaikkapa näkörajoitteisille käyttäjille.  

Esteettömien ja saavutettavien palveluiden asiantuntija Marcy Sutton kävi läpi yleisimpiä haasteita, joita erilaiset käyttäjät kokevat Internet-palveluiden käytössä. Esityksessään Marcy nosti esiin neljä pääkohtaa, jotka kannattaa huomioida saavutettavan palvelun luomisessa:

  • Fokuksen hallinta. Hallittu fokuksen siirtyminen aktiivisiin elementteihin. Näytöltä piilotettujen elementtien piilottaminen näytönlukulaitteilta (aria-hidden).
  • Värikontrasti. Riittämätön kontrasti eri värisävyjen välillä rajoitetulle näkökyvylle.
  • Semanttiset HTML-tagit ja niiden käyttö. Semanttisesti merkityksellisten HTML-tagien oikeaoppinen käyttö div-tagin sijasta helpottamaan sivurakenteen luettavuutta näytönlukulaitteilla.
  • Palvelun saavutettavuuden testaaminen ja sen huomiointi testiautomaatiossa.

Marcy kävi läpi myös React-esimerkkiprojektia, jonka saavutettavuuden ongelmat korjattiin esitelmän aikana. Ongelmien havaitsemiseen ja testaamiseen käytettiin Deque Labsin kehittämää aXe-Coconut Chrome-laajennusta, jolla voidaan tarkistaa sivun asianmukainen ARIA (Accessible Rich Internet Applications) -määreiden käyttö ja sivun saavutettavuus WCAG 2.0-standardin mukaisesti. Lopuksi vielä rakennettiin samat testit saavutettavuudelle testiautomaatiota varten aXe-webdriverJS-kirjastoa apuna käyttäen. Nämä työkalut kannattaakin ottaa ehdottomasti kokeiluun palveluiden saavutettavuutta testattaessa.

Kehityksen tehostaminen serverless-infrastruktuureilla

Perinteisten dedikoituihin palvelimiin pohjautuvien ympäristöjen konfigurointi on usein aikaa vievää ja tarpeen kasvaessa ympäristöjen skaalautuvuus on rajallista. Esityksessään Simona Cotin nosti esiin pilvipalveluihin pohjautuvien serverless-infrastruktuurien hyötyjä niin kehityksen ja testauksen nopeuttamiseksi kuin myös käyttökulujen minimoimiseksi (pay as you go). Oleellisena Simona näkee serverless-infrastruktuureissa juuri kehityksen nopeutumisen, kun valmiin infrastruktuurin, skaalautumisen ja kehityksessä hyödynnettävien valmiiden palveluiden vuoksi oma kehitystyö voidaan minimoida.

Esimerkkeinä Simona kävi läpi Microsoftin Azure-pilveen pohjautuvia Azure Functions -ratkaisuja muun muassa dataprosessointi-, API- ja Chatbot-esimerkein. Samat hyödyt ovat saavutettavissa käyttämällä myös muiden toimittajien FaaS-ratkaisuja (Functions as a Service), kuten AWS Lambdoja tai Google Cloud Functionseja. Tähän liittyen Simona nosti esiin beta-vaiheessa olevan Serverless Cost Calculator -palvelun, jossa eri pilvitoimittajien serverless-palveluiden hinnoittelu on helposti vertailtavissa.

Reaktiiviset funktionaaliset sovellukset Cycle.js:llä

Nykyisin Helsingissä asuva André Staltz oli aiemmin yksi reaktiivisen ReactiveX-ohjelmistokehyksen JavaScript-kirjaston (RxJS) keskeisistä kehittäjistä. Sittemmin André on kehittänyt oman Cycle.js sovelluskehyksensä reaktiivisten funktionaalisten sovellusten kehittämisen avuksi.

Esityksessään André kertoi Cycle.js:n ideologiasta ja sen tuomista eduista ennustettavan toiminnallisuuden toteuttamisessa: Cycle.js sovellukset koostuvat puhtaista funktiosta (pure function), jotka tuottavat aina saman paluuarvon samoille syötteille. Esityksessä käytiin läpi myös Cycle.js:n rinnalle rakennettua reaktiivista stream-kirjastoa nimeltä xstream. Erityistä xstreamissä on sen pieni koko ja yksinkertaisuus verrattuna esimerkiksi RxJS kirjastoon.

Cycle.js ja xstream ovat yhdessä vähintäänkin tutustumisen arvoinen kokonaisuus, jos etsinnässä on pieni ja kevyt sovelluskehys reaktiivisten ja funktionaalisten sovellusten kehittämiseksi.

Julkaisuinfrastruktuurit & JAMStack

Netlifyn Phil Hawksworth kertoi esityksessään nykyaikaisten pilvi-infrastruktuurien ja JAMStack -arkkitehtuurin mahdollisuuksista luotettavien, toistettavien ja rinnakkaisten julkaisujen toteuttamiseksi.

Kokonaisuudessaan Phil kertoi kolme tarinaa uraltaan, jotka kuvasivat hänen käyttämiensä infrastruktuurien ja julkaisuputken evoluutiota. Ensimmäinen tarina oli uran alusta, jolloin tuotantoon menevät julkaisut tehtiin vielä puhtaasti käsityönä konfiguroimalla palvelimet ja poimimalla halutut tiedostot julkaisuun. Pahimmillaan kukaan ei kunnolla tiennyt, mitä lopulta julkaistiin. Toisessa tarinassa käytössä oli versionhallinta ja Continuous Integration -ratkaisu, jossa julkaisut saatiin ulos halutusta versionhallinnan tägistä automatisoidusti testiympäristöön ja tarvittaessa se voitiin siirtää tuotantoympäristöön. Viimeisimpänä evoluutiona oli Continuous Delivery -ratkaisu, jossa jokaisesta tägistä luodaan automaattisesti julkaisu. Eri versiot ovat rinnakkain jatkuvasti saatavissa ja mikä tahansa tehdyistä julkaisuista voidaan uudelleenohjauksella siirtää suoraan tuotantokäyttöön.

Luotettavan ja toistettavan julkaisuputken merkityksen lisäksi Phil nosti esiin JAMStackin (JavaScript + APIs + Markup) ja mikropalvelut. Siirtyminen staattisiin sivustoihin, joissa dynaamisuus luodaan selaimessa ajettavalla koodilla sekä uudelleen käytettävien versioitujen API-rajapintojen kautta haettavalla dynaamisella datalla on vähentänyt heillä kehitetyn koodin kompleksisuutta ja helpottanut aiemmin kuvattujen rinnakkaisen julkaisujen tarjoamista. Kuten Phil asian hyvin kuvasi: “JAMStack: Static, with benefits”.

Vapaa-ajallaan Phil harrastaa stand-up komiikkaa, joten mahdollisuuksien mukaan Philin esityksiä kannattaa ehdottomasti mennä kuuntelemaan jo pelkästään niiden viihdearvon vuoksi.

VR/AR/MR & JavaScript

Michaela Lehr kertoi augmentoidun todellisuuden mahdollisuuksista web-teknologioiden yhteydessä. Aiheeseen perehtymättömille Michaelan esitys oli erinomainen johdatus alueeseen. Michaela selitti täydennetyn todellisuuden (AR, Augmented Reality), virtuaalisen todellisuuden (VR, Virtual Reality) ja yhdistetyn todellisuuden (MR, Mixed Reality) teknologioiden eroja. Hän myös kävi läpi aihealueen historian lähtien aina 1960-luvulla rakennetusta ensimmäisestä virtuaalitodellisuusjärjestelmästä, Damokleen miekasta.

Kotiin vietäväksi esityksestä jäi tieto, että selainpohjaiset AR-ratkaisut ovat jo nyt kokeiltavissa, ja kehitystä varten on useita käyttökelpoisia JavaScript-kirjastoja kuten AR.js ja three.ar.js, sekä kehitteillä oleva WebXR määrittely.

Ajatuksen voimalla toimivat käyttöliittymät

Konferenssin päätti päivän erikoisin show, jossa Charlie Gerard esitteli ajatuksen voimalla toimivia käyttöliittymiä. Lähes psykokinesialta kuulostavan aiheen taustalla olivat Charlien kokeilut Emotiv Insight - ja EPOC+ EEG -sensoreilla ja niistä saatavan datan hyödyntäminen ajatuksiin ja kasvonliikkeisiin pohjautuvissa käyttöliittymissä.

Vaikka kyseessä on vielä proof-of-concept-tyyppiset kokeilut, ja EEG-sensorit ovat kalliita ja käytettävyydeltään kömpelöitä, on jo helppo kuvitella, kuinka sensoriteknologian kehittyessä vastaavantyyppiset käyttöliittymät tulevat muuttamaan tapaa, jolla käytämme tietokoneita ja laitteita tulevaisuudessa.

Mikäli kaapista sattuu löytymään vastaava Emotiv Epoc+ -sensori, niin Charlien kehittämä Epoc.js-rajapinta on ehdottomasti tutustumisen arvoinen.

Yhteenveto

Script’18 oli asiasisältönsä puolesta erittäin tasapainoinen kokonaisuus, joka tarjosi kiinnostavia esityksiä ja keskusteluja niin frontend- ja backend-aiheista kuin myös infrastruktuureista ja devopsista. Puitteet ja järjestelyt olivat ensiluokkaisia, joten tapahtumaa voi hyvillä mielin suositella kaikille JavaScript-kehityksestä kiinnostuneille.

Script’18 nimikko-oluet: LagerScript & HTM ALE

Ps. Kokonaisuuden kruunasi konferenssin oma DJ Baldower, joka viihdytti yleisöä ja sämpläsi esiintyjien puheista taukomusiikkia suorastaan nerokkaasti.

Auf Wiedersehen.

Haluatko kuulla lisää tästä aiheesta? Jätä yhteystietosi niin olemme yhteydessä.

Lähettämällä lomakkeen hyväksyn tietojeni tallentamisen ja käsittelyn tietosuojaselosteen mukaisesti.