Blogi

Pariisi, reactiuden kaupunki

pekkis Bisnes Teknologia Yrityskulttuuri

Kuten kaikki tietävät, JavaScript-kirjasto React on ainoa ja paras ystäväni. Kävin kesäkuun alussa moikkaamassa sitä Pariisissa, ReactEurope-konferenssissa.

ReactEurope on Euroopan suurin React-konferenssi, jolla on pitkät perinteet. Tapahtuma järjestettiin ensimmäistä kertaa jo vuonna 2015, ja näillä näkymin – tietysti sillä edellytyksellä, että React teknologiana on vielä voimissaan – se järjestetään myös vuonna 2017.

Yleensä annan ennemmin muille mahdollisuuden käydä tapahtumissa kuin menen itse, varsinkin jos konferenssi on ulkomailla. Esitän olevani joviaali kansanmies ja uhrautuvani muiden eteen, vaikka todellisuudessa pelkään lentämistä.

Kesäisen Ranskanmaan ja React-konferenssin houkutus osoittautui tällä kertaa niin suureksi, että rohkaisin itseni astumaan pahuuden rautalintuun. Asiaa auttoi se, että Finnairilla työskentelevä lapsuudenystäväni hommasi itsensä pilotiksi lennollemme ja järjesti minulle paikan ohjaamossa.

Losot ovat laskeutuneet

Valehtelisin, jos sanoisin etten odottanut ohjaamossa matkustamista ihan yhtä paljon kuin itse konferenssia tai Pariisia yli kolmenkymmenen vuoden tauon jälkeen. Lentämisen kokemus on aivan erilainen, kun näkee aitiopaikalta mitä tapahtuu ja saa kuunnella pilottien ja lennonjohdon kommunikaatiota. En tajunnut pelätä yhtään, en oikeastaan edes jännittänyt. Suosittelen elämystä lämpimästi kaikille, jotka mahdollisuuden saavat.

Larva ja Johan joutuivat matkustamaan rahvaan seassa, mutta kaiketi – päätellen siitä että yhytin kollegani lentokentällä – karjavaunussakin pääsee turvallisesti perille.

Seine, Pariisin läpi liplattava puro, oli päättänyt kunnioittaa läsnäoloamme vuosisadan pahimmalla tulvalla. Onneksi harhauduimme Louvreen, paikalliseen pikku taidemuseoon, heti ensimmäisenä iltana. Yön aikana paikka oli mennyt kiinni ja kellarin taulut evakuoitu veden tieltä yläkerroksiin.

Seine oli pulleana. Seine oli pulleana.

Oliko museo hienompi kuin Ateneum? Olihan se, marginaalisesti.

Ada Lovelacen muotokuva, yksi Louvren tunnetuimmista taideteoksista. Ada Lovelacen muotokuva, yksi Louvren tunnetuimmista taideteoksista.

Vahingossa löytämästämme luonnontieteellisestä museosta yhytimme yllättäen merilehmän, toteemieläimemme lamantiinin sympaattisen serkun. Suoritimme tietysti otuksen äärellä asiaan kuuluvia palvontamenoja.

Luonnontieteellisen museon dugongi Luonnontieteellisen museon dugongi

Pyhä toimitus

Konferenssin avauspuheenvuoron piti Dan Abramov, Reduxin keksijä joka nykyään työskentelee Facebookilla Reactin ydinkehitysporukassa. Kertoisin mielelläni, mitä Danilla oli Reduxin matkasta sanottavanaan, mutta minulla ei ole siitä mitään muistikuvaa. Jo pelkkä pyhän miehen läsnäolo sai polveni tutisemaan, ja kun yritin kesken esityksen rynnistää lavalle koskettamaan sankariani sain pari kipakkaa iskua teleskooppipampusta ja kaipaamaani lisälatausta etätainnuttimesta.

2016-06-02 09.30.56 Ei enää JavaScript-väsymystä!

2016-06-02 09.59.07 Pyhä mies valkoisessa paidassaan on aikeissa puhua.

Suorituskyky on yksi Reactin mustista aukoista. Itsekin olen puuhastellut useamman vuoden Reactin parissa, mutten ole silti sukeltanut supersyvälle performanssitaiteen saloihin. Keskimäärin Reactin suorituskyky on ollut tasoa “riittävä”, vaikken ole sitä kummemmin optimoinut.

Vaikka toki ymmärränkin Reactin ja suorituskyvyn perusperiaatteet, en silti mene väittämään etteikö minun olisi suotavaa tietää aiheesta enemmän. Harvinainen naiskoodari Lin Clark lähestyi esityksessään vähän esoteerista aihetta hauskalla ja havainnollisella tavalla sarjakuvan keinoin.

Naiskoodareista puheenollen, ReactEuropen osallistujajoukko oli yllättäen jopa miespainoitteisempi kuin mihin olen kotimaisissa teknologiakonferensseissa tottunut. Vielä siis riittää tekemistä, ennen kuin rakas softa-alamme on sukupuolen suhteen tasapäistynyt.

React Native on kova juttu

React Nativesta ja kaikesta siihen liittyvästä oli mahtunut mukaan monta presistä sekä konferenssin ensimmäiselle että varsinkin toiselle päivälle.

React Native tuntuu olevan “se” juttu juuri nyt, ja kovimpien hurjapäiden visiot sille ovat aika velmuja. Miksi käyttää React Nativea pelkän mobiilisoftan tekemiseen, jos sillä voi tehdä webbisoftankin? Yksi koodi, vipuja väännä, kaikkialle käännä, lopullinen ratkaisu on nähnyt päivänvalon?

Ensimmäisen päivän aamuna Eric Vicenti puhui navigaation vaikeudesta React Nativen kontekstissa. Vähän myöhemmin Krzysztof Magiera aukoi suutansa React Nativen animaatioiden parantamisesta. Kumpikin presis meni yli hilseen, mutta hyvät setit joka tapauksessa.

Toinen päivä aloitettiin Bonnie Eisenmanin React Native-retrospektiivillä. Esitys avasi mainiosti sekä myllerrystä, jonka React Native-scene on vuodessa kokenut, että mullistavaa potentiaalia, jota React Native oli ja on pullollaan.

Muissa kakkospäivän React Native-esityksissä käsiteltiin niin suorituskykyä kuin case-esimerkkiäkin. Mitä opin näistä? Ainakin sen, että tiedän React Nativesta liian vähän, ja että minun tulee korjata asia. Samaa johtopäätelmää suosittelen lämpimästi kaikille, jotka aikovat olla relevantteja webbiscenessä vuonna 2017.

Pekkis nirsoilee

Kahvipausseista ei ollut ReactEuropessa pulaa. Taukoja oli melkein yhtä paljon kuin esityksiä, ja ne olivat puolituntisina yhtä pitkiä. Väliaikojen aikana ehti hyvin tutustua muihin konferenssivieraisiin ja maleksia elävänä kuolleena sponsoreiden pisteillä. Rasteilla päähän tarttui propagandaa (Rangle.Io vaikutti kivalta ja fraktiomaiselta paikalta) ja käsiin turhaa krääsää.

Pulleat kahvitauot johtivat vääjäämättä maitogateen. Säälittävän pienet kertakäyttötörppöset loppuivat kumpanakin päivänä lounaaseen mennessä, ja sen jälkeen kauheaa tervaa, jota ranskalaiset kehtaavat kutsua kahviksi, sai loppupäivän ryystää raakana.

Ranskalaisten käsitys vegaanilounaasta oli noin kahdenkymmenen prosentin osajoukko siitä, mitä lihansyöjille tarjottiin. Epäeettisemmistä pöydistä täydentämällä sain onneksi kasaan oikein maittavat mätöt kumpanakin päivänä. Etenkin crepe-lettuset ja quiche-juustopiiraat ovat sellaisia herkkuja, jotka saavat aikuisen miehen kyyneliin ja ähkyyn.

Tauoilla konferenssiväki vaelsi välillä myös ulkoilmaan. Tauoilla konferenssiväki vaelsi aika ajoin myös ulkoilmaan.

Kuinka onnistua avoimen lähdekoodin kanssa?

Ei ole salaisuus, että tykkään avoimesta lähdekoodista. Olen julkaissut ties kuinka monta avoimen lähdekoodin kirjastoa ja aloittanut ties kuinka monta projektia. Näistä yksikään ei varsinaisesti ole lyönyt läpi, enkä ihmettele miksi. Koodaaminen on lasten leikkiä avoimen lähdekoodin projektin vetämiseen verrattuna.

Christopher Chedeau, joka kunnostautui uljaan konferenssimme juontajana, kertoi esityksessään omista kokemuksistaan Facebookin avoimen lähdekoodin projektien parissa. Jos olet kiinnostunut open sourcesta ja/tai yhteisöjen rakentamisesta, Christopherin mielenkiintoinen esitys kannattaa ehdottomasti katsoa läpi “sillä silmällä”.

Cheng Loun korkealentoisuudessaan hämmentävä esitys abstraktioiden tasosta herätteli ajattelemaan ohjelmistokehitystä ja suosittuja päivittäin työssämme käyttämiä avoimen lähdekoodin kirjastoja kokonaan uudenlaisesta näkökulmasta. Minusta tuntuu, etten ole läheskään riittävän älykäs sisäistääkseni puoliakaan presentaation kokonaisannista, mutta esitys oli mielestäni silti konferenssin paras.

REST on kuollut, kauan eläköön REST

REST on kuollut ja tulevaisuus kuuluu GraphQL:lle ynnä Falcorille, ainakin päätellen siitä että konferenssissa oli aiheesta useampi kuin yksi esitys. Dan Schafer puhui GraphQL:stä Facebookilla, Jafar Husain kertoi Falcorista yleisellä tasolla, ja louskutettiinpa leukoja konffan päätteeksi vielä GraphQL:n tulevaisuudesta ja GraphQL:stä mobiilisovelluksissa.

Asiaan vihkiytymättömälle nämä kaksi teknologiaa tuntuvat ensi hätään täysin samalta, mutta koska ne on alunperin kehitetty erilaisten todellisten tarpeiden pohjalta (Netflix vs. Facebook), soveltuvat ne tietysti hieman eri käyttötarkoituksiin.

Yhtä kaikki, kumpikin vaikuttaa allekirjoittaneen korvaan suunnilleen yhtä mielenkiintoiselta ja ennen kaikkea ehdottomasti tutustumisen arvoiselta teknologialta.

Tyhjä taulu

Max Stoiber ja Nik Graf demonstroivat esityksessään Carte Blanchea, työkalua joka on tarkoitettu React-komponenttien visuaaliseen kehittämiseen erillisenä itse sovelluksista joissa komponentteja tullaan käyttämään.

Carte Blanche, Storybook, Cosmos, Structor ja muut vastaavat työkalut ovat kaunis ajatus. Näen, että niistä voi olla paljon hyötyä kehityksessä. Ne voivat, pienen vajavaisen kokemukseni mukaan, myös olla helvettiä ottaa käyttöön ja johtavat loputtomaan säätöön. Lisäksi niitä tuntuu juuri nyt syntyvän ja kuolevan turhan vauhdikkaasti.

Annan ajan suosiolla kulua ja jätän lopullisen tuomioni myöhempään ajankohtaan. Kirjoitan vaikka erillisen postauksen aiheesta, kunhan olen perehtynyt aiheeseen syvemmälti. Hemmetti, CSS:n potentiaalinen siirtyminen JavaScriptiin on yksi dilemma, joka pitäisi varmaan ratkaista samalla tai ennen tätä.

Funktionaaliset pikku apulaiset

Recompose on kätevä linkkuveitsikirjasto funktionaalisille React-komponenteille. Olen käyttänyt sitä jo pitkään, mutta hyvin puutteellisesti. Kuunneltuani Andrew Clarkin erinomaisen esityksen Recomposesta tiedän oman vajavaisuuteni määrän (suuri).

Tekijä itsekään ei työhön ryhtyessään ollut, eikä kuulemma edelleenkään ole aivan varma siitä, onko Recompose hyvä vai huono idea. Itse kallistun enemmän “hyvä”-akselille, mutta ota ihmeessä käyttöön ja tee omat johtopäätöksesi.

Iltapuhteet

Konferenssiin osallistumisen lisäksi ehdimme tutustua IT-alan nähtävyyksiin, joista Pariisi on kuuluisa.

Suoritimme pyhiinvaelluksen Napoleon Bonaparten, jQueryn keksijän, haudalle. Verrattuna vaikkapa oman legendamme Urho Kekkosen monumenttiin Napoleonin muistomerkki osoittautui aika vaatimattomaksi, mutta tulipahan nähtyä.

Tässä vaatimattomassa arkussa lepäävät jQueryn keksijän maalliset jäänteet. Tässä vaatimattomassa arkussa lepäävät jQueryn keksijän maalliset jäänteet.

Riemukaari, jonka Napoleon rakennutti jQueryn version 1.5 julkaisun kunniaksi 1800-luvun alussa, on yksi Pariisin tunnetuimmista maamerkeistä. Sen juurella palaa ikuinen tuli ensimmäisessä selainsodassa menehtyneiden ranskalaisohjelmoijien muistoksi.

Montmartren kukkulalla kivitettiin perimätiedon mukaan vuonna 1495 kuoliaaksi Pariisin ensimmäinen JavaScript-koodari. Paikalle myöhemmin rakennettu kaunis Sacré-Cœurin basilika on pyhitetty tapahtuman muistolle. Sytytimme sisällä marttyyrille kynttilän, ja muistelimme tovin hiljaa ja haikeudella webbiscenen vaikeita ensiaskelia.

Laskeuduimme Pariisin katakombeihin, joihin on haudattu yli seitsemän miljoonan JavaScript-väsymykseen vuosina 1814-1815 kuolleen ohjelmoijan luut. Kollegoiden kalloja ja sääriluita katsellessa hiljeni kummasti hipstereinkin NodeJS-rokkistaravelhoninja.

Kollegoiden kalloja katakombeissa. Kollegoiden kalloja katakombeissa.

Paluu arkeen

Kritiikkinä ja itsekritiikkinä todettakoon, että konferensseihin on aina syytä lähteä ihmisrakkaana. Teknologiatapahtumissa puolet esityksistä on tasoltaan korkeintaan keskinkertaisia – joko aihe on tuttu tai epäkiinnostava, tai sitten esiintyjä vain on puiseva – joten sosialisointi ja verkostoituminen ovat ainakin yhtä tärkeitä kuin presisten kuuntelu.

Itselläni oli ollut raskas kevät ja olin aivan liian epäsosiaalisella tuulella, joten epäonnistuin katkerasti verkostoinnin suhteen. Lähdin iltasella ennemmin tutkimaan kaupunkia kuin mädännyin sisällä, missä ei tietenkään auttanut se, että Pariisissa on niin turkasen paljon nähtävää enkä ollut käynyt siellä aikuisena.

Teknologian osalta ReactEurope oli hyvä tapahtuma. React Nativen osalta olin ihan pihalla, mutta muuten koin olevani aika hyvin ajan hermolla. Mitään varsinaista uutta konseptia ei ilmestynyt puskista, ja sain kosolti vahvistusta sille että olemme oikealla tiellä.

Reactissa ja sen ympärille syntyneessä ekosysteemissä riittää vielä imua.