JavaOne – Maanantai

No niin, ensimmäinen luentoja täysi päivä alkaa olla valmis ja kirjailen vähän ajatuksia tähän. Yksi ajatus on että on kyllä hyvä olla täällä paikan päällä. Ensinnäkin aikaerosta johtuen on helpompaa seurata rytmissä mukana tapahtumia ja julistuksia. Aikamoista keskittymistä tarvitaankin jos haluaa pysyä jyvällä mitä kaikkea täällä tapahtuu – etenkin kun itseä kiinnostaa vähän kaikki. Toinen huomio on, että tällaiselle visuaaliselle ihmiselle kuin minä on helpompaa muistaa asiat kun ne on nähnyt kerran livenä, versus että niistä lukee vain kalvoilla. Ehkä reissu on karmean matkustuksen arvoinen…

Hiukan yli 400 sessiota – vähän kuin puolet Tieturin kurssitarjonnasta olisi niputettu yhdelle viikolle. Paljon ravaamista, onneksi valtaosa on tässä hotellissa jossa olen majoittuneena. Tänä vuonna on kulkukortissa vähän vähemmän raitoja kuin viimeksi 😉

2013-09-23 13.03.56

Brian Goetz puhui Lambdoista ja tässä aukesi itsellekin hieman uusia ajatuksia vaikka olen niiden parissa jo aikani puuhaillut. Tässä taas itselle mieleen jääneitä pointteja:

– Koodin tulisi olla luettavaa. Tämä tarkoittaa että aie selviää lukemalla koodia. Tämä vähentää virheitä.

– Tottakai on helppo retostella nyt surkealla aiemmalla Java-koodilla, kun parempi vaihtoehto löytyy. Aiempi koodi on läpäissyt tarkistuksen aikanaan, nyt Java on ollut viimeisiä saarekkeita joissa ei vielä Lambdoja ole. Java 8:sta alkaen tulee olemaan. Lambdoilla monet kivuliaat, etenkin kokoelmien ja tapahtumankäsittelijöiden käyttöön liittyvät asiat näyttävät hurjasti paljon yksinkertaisemmilta ja luettavilta.

– Yllättäen suorituskyvyssä ei ole tullut takkiin: stream() operaatioita ei ajeta peräkkäin vaan yhdistettynä, ja parStream() operaatiot vieläpä fork&join tapaan rinnakkain. Nykypäivän raudalla jo tästä on suunnattomia hyötyjä – tulevaisuuden 64-ytimisellä raudalla astronomisia hyötyjä.Java 7 Fork&Joinia tarvitsee koodata itse käsin yhä harvemmin.

– Haluttiin edelleen pitää yhteensopivuudesta kiinni: siksi ei uusia funktiotyyppejä tai syntaksimuutoksia (sanottavammin) – vanhat rajapinnat ovat maagisesti yhteensopivia Lambdojen kanssa: funktiorajapinta on rajapinta jossa on yksi funktio, siinä kaikki

Tuossapa esimerkkiä lisää, Java 7 versio (tai Java 1.2 versio yhtä hyvin 😉  – huomaa miten koodi tuplautuu, rikkoen DRY periaatetta:

Collections.sort(people, new Comparator<Person>() {
    public int compare(Person x, Person y) {
        return x.getLastName().compareTo(y.getLastName());
    }
});

// Ja tässä Java 8 versio Lambdoilla:

people.sort(comparing(Person::getLastName));

Adam Bien piti mielenkiintoisen esityksen aiheella Java EE Demystified. Huone oli tupasen täyteen pakattu ja seisomapaikatkin käytössä. Eturivistä pari Spring-fanaatikkoa yritti kovasti keskeyttää alkupäästä esitystä mutta lopulta se pääsi rullaamaan. Täytyy sanoa että Adamin ajatukset tehokkuudesta ja Enterprise sovelluksista ovat niin pitkälti samoja kuin omasta suustani tulevat että tästedes voin todeta jos joku haluaa kuulla meikäläisen mielipiteitä: Ostakaa Adam Bienin kirja. Siinä on jo ajatukset valmiiksi purettuna helppoon muotoon. 😉 Pari huomiota jota jäi mieleen itselle:

– Transaktioita tarvitaan. Ilman niitä käy huonosti.

– Transaktioiden tekeminen on erittäin helppoa Java EE alustalla, ja niiden ’overhead’ eli ylimääräinen kuormitus mitätön. Samoin EJB:n.

– Jos ei käytä EJB:tä päätyy rakentamaan vain EJB:n uudestaan – yleensä huonommin lopputuloksin – koska EJB:n mukanaan tuomia hyötyjä useimmiten tarvitsee. Jos kehittäjä sovelluslogiikan sijaan päätyy kodaamaan uudestaan sovelluspalvelinta, se on yleensä hukkaanheitettyä energiaa.

– Jos tekee normaalia yrityssovellusta sadoille käyttäjille, JSF on paras framework nopeaan sulavaan kehitykseen. Jos haluaa täyden kontrollin käyttöliittymästä, kannattaa miettiä HTML5 Single Page App tyyliä – ja käyttää Java EE:tä serverillä. Jos haluaa tehdä uuden Twitterin/Facebookin/Youtuben, kannattaa heittää kaikki arkkitehtuurit ja olettamukset roskiin.

– Jos tekee kohtuulliselle määrälle käyttäjiä tilallisuudesta voi olla jopa hyötyä. Jos tehdään sadoille miljoonille, taas kerran valmisratkaisut saa heittää roskakoriin. TIlattomuus ei ole koskaan väärin, mutta se johtaa käytännössä raskaaseen tietokannan käyttöön.

– Olisi naurettavaa olla käyttämättä Java EE alustaa, ja käyttää jotain muuta/koodata omaa. Noin niinkuin useimmissa tapauksissa 😉 Tämä tarkoittaa ja sisältää ilman muuta pyhän kolminaisuuden EJB, JPA, ja CDI, ja kaiken tietysti sen ympärillä.

Tuosta löytyy pari Adam Bienin kirjaa joita voin suositella kirjahyllyä koristamaan – pirteän värisiäkin vielä ovat! 😉

http://press.adam-bien.com/

Lopuksi, jäin vielä miettimään eilistä Keynote päivää. Yhtä tärkeää kuin mitä sanottiin oli mitä ei sanottu. Mielenkiintoista oli, että tilaisuudessa ei pahemmin messuttu Oraclen kaupallisesta tarjonnasta, ei tuputettu tuotteita. Siellä ei edes paljoakaan puhuttu servereistä koska ne ovat tuoreita ja valmiina EE 7:n muodossa. Hyvin mielenkiintoinen fokus IoT aiheeseen, joka vastaa omia ajatuksiani jo pitkältä ajalta. Raspberry PI laitteita on kaikkialla – Hazelcast nimisen lafkan väki oli rakentanut hulluuttaan PI laitteista ja legopalikoista klusterin, jolla esitteli hajautustekniikoitaan pienemmässä skaalassa.

Hazelcast Lego-Pi cluster

Messuilla näin myös IoT teemaan liittyen kotiautomaatiota, robottihain, ja legoista kootun R2D2-robotin. IoT ja sulautettujen maihinnousu siis lienee tämän vuoden teema. Sikäli mielenkiintoista että Suomen päässä tuntuu näkyvän kaikki tämä ohuesti.

2013-09-23 09.40.24

2013-09-23 14.20.59

Kuten joku bloggasikin jo: Who needs chess-playing robots? Vaikuttaisi kuitenkin siltä että Java-pohjaisia ratkaisuja on häkellyttävässä määrin liikkeellä jo nyt kaikkialla muualla kuin vain serverissä. Hyvä myös huomata hinta. Arduino Pi-mikrotietokoneen hinta on n. 30 dollaria, ja sellainen ohjasi esim. tätä robottia, samoin siitä oli rakennettu DukeTab tablettitietokone. Aikanaan olin jo innostunut SunSpot laitteista ja ne olivat aika alkeellista ja suhteessa kallista teknologiaa tähän verrattuna. Hyllystä löytyy kuitenkin SunSpot 😉

Robotti pelailee shakkia

Ja jeei Vaadin-kavereille! Piipahdin heidänkin standillaan ja edelleen tuo iloa ja ylpeyttä nähdä suomalaisilla firmoilla standeja tämän kaliiberin kehittäjätapahtumassa toisella puolen maapalloa.

Tuossa linkki artikkeliin jossa pohdittiin Java-robotin hintaa ja hyötyjä:

https://weblogs.java.net/blog/editor/archive/2013/09/23/javaone-2013-impressions-1-so-who-needs-chess-playing-robot-anyway

Tässä pari mehukasta tuotelinkkiä muutenkin näyttelyjen puolelta:

https://vaadin.com/

http://www.jfrog.com/ (Artifactory ja Bintray, Mavenin käyttäjille)

https://saucelabs.com/ (Testaus pilvipalveluna, tästä bloggasin aiemmin)

http://www.cloudfoundry.com/ (Pilvipalvelualusta)

http://newrelic.com (Oma suosikkini ja käytössäkin, sovelluksen reaaliaikaista suorituskyky ja terveystilamonitorointia, monitorointi ulkoistettuna pilvipalveluna, mahtavan visuaalinen! Nyt näemmä myös mobiilisoftalle…)

http://www.jinfonet.com/ (Joku kysyi joskus raportointisoftista. Tää on nätti 😉

Mainokset

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s