JavaOne 2011 San Francisco – 2/4

No niin, uusi aamu San Franciscossa toi mukanaan seuraavan keynoten, tällä kertaa aiheena Java strategia. Oracle Technology Network järjesti pienimuotoiset juhlat edellisenä iltana ja vaikka siellä tuli vain piipahdettua ennen nukkumaan menoa, oli juhliin taas panostettu, puheiden suhde juhlimiseen oli sopiva, ja ainoat puku päällä olevat esiintyjät oli paikallinen Electro-bändi 😉

Sulattelin vielä eilen kuulemaani. Tulevan Java 8 version Lambda Expressions piirre on selkeästi yritys tuoda funktionaalista ohjelmointia mieto ripaus mukaan Javaan. Ei tehdä Javasta scalaa tai haskellia tai muutakaan, mutta esim. kokoelmien käsittelyn suhteen voidaan säästää hurja määrä koodia verrattuna vanhaan. Toisaalta hintana on uusien operaattorien tuominen mukaan ja sitä myöten se että uusi Java koodi ei välttämättä ensimmäistä kertaa historiassa näytä enää ollenkaan siltä Java I peruskurssin kamalta mitä opitaan alunperin.

Pistän vähän esimerkkejä lambdaj:stä kun ehdin, mutta tällä hetkellä liikkeellä on paljon virheellistä tietoa ja kun koodia ei vielä aivan helposti pääse kääntelemään tai ajamaan niin olen vähän epäluuloinen esimerkkien suhteen. Joka tapauksessa osallistuin sessioon jossa käytiin läpi paljolti mihin ne sopivat ja mihin ei ja pari ahaa elämystä syntyi. Tosin Scala-kielen pohjalta oli jo aika selvää että ensimmäinen sovelluskohde ovat kokoelmat ja niiden iterointi, järjestäminen, mäppääminen, jne. Tuossa kuvassa anyway esimakua:

Entäpä Jigsaw sitten? Ei voi olla tykkäämättä tekniikasta jonka avulla viimein päästään eroon jar helvetistä, classpathista, ja bootstrap classpathista. Huomattavaa on myös että riippuvuuksien hallintamekanismin ohella sen avulla jdk ja jre saadaan modulaarisiksi, ja saadaan ne käynnistymään nopeammin, ja käyttämään vähemmän muistia. Tätäkin työtä on jo aloitettu mutta taas mennään eteenpäin.

Ilolla panin myös merkille miten Jigsaw on suunniteltu mahdollisimman yhteensopivaksi Maven ja OSGI järjestelmien kanssa. Niillä on kuitenkin laaja käyttäjäkunta, ja jos Jigsaw yrittäisi korvata ne, sotahan siitä tulisi. Maven yhteensopivuus olisi näillä näkymin häkellyttävän hyvä – molempiin suuntiin. OSGIn kanssa oli jotain laajempia perustavaa laatua olevia ristiriitoja. Itse kun en OSGI järjestelmää syvällisesti tunne niin selitykset hieman menivät ohi.

JavaFX oli esillä taas aamun keynotessa.. Siitä tulee open sourcea. Osa Java SE alustaa… Ja se pyörii iOS:ssä eli esim. iPadissä.. 😉 Ja tietysti Linuxissa.

Osallistuin hands-on labiin jossa tehtiin JavaFX:llä lääketieteen sovellusta. Valitettavasti ohjeet olivat huonot, ympäristöt puutteelliset, ja suorastaan virheelliset, ja tapeltuani aikani niiden kanssa nappasin vain koodit ja ohjeet mukaan ja siirryin eteenpäin. JavaFX on vielä sen verran nopeasti liikkuva kohde ja varusteet vähän beta tasoa että ehkä se tuottavuus tulee puolen vuoden päästä. Joka tapauksessa, GA:n myötä sen ei enää pitäisi liikkua niin hurjasti. FXML on kiintoisa tekniikka leiskojen tekoon ja sen myötä on palattu taas alkuperäiseen ideaan workflowsta jossa suunnittelijat tekevät näytöt ja koodaajat pistävät ne toimimaan. Aika samantapaista tauhkaa kuin .NET ja Android alustalla.

Kuuntelin myös arkkitehtuuriluennon JavaFX:stä pintaa syvemmältä, ja näin aukesi mm. parhaat käytännöt säikeiden ja muistinkäytön suhteen. Kiinnostavaa tietoa saattaa olla että JavaFX säiemalli ei ole enää kuten Swingissä. Säikeitä on nyt enemmän. Tämä on tietysti hyvä asia suorituskyvyn kannalta mutta uutta hahmotettavaa kuitenkin.

Olen paljon pyöritellyt Java 7 Fork&Join frameworkiä, tänään oli ilo osallistua esitykseen jossa käytiin läpi sen palasia pintaa syvemmältä. Erityisesti sitä miten se toimii ja missä se toimii parhaiten, sekä missä se ei toimi. Esiintyjä oli erittäin hyvä kuivakan huumorinsa kera, ja mieleen jäi erityisesti kohta: ’In a beautiful, perfect world there would be one subtask for each core to run, but .. world is not beautiful. And it’s not perfect.’ 😉 Oli lainauksen takana asiaakin, Forkatut tehtävänpalaset pitää tosiaan jakaa säikeille ja paloitella sopiviin kokoihin thresholdin mukaan. Hyvä algoritmi oli KOKO/(MAGICNUMBER * CORES AVAILABLE), eli periaatteessa magicnumber voisi siis olla vaikka 1, jolloin työ jaettaisiin ytimien määrällä.. Mutta johtuen siitä että ytimet käyttävät aikaa muuhunkin kuten roskankeruuseen ja työt valmistuvat eri tahtiin, hyväksi havaittu magic number on… 8! 😉 Osoittakaa vääräksi jos pystytte 😉

No niin, päivä kääntyy taas kohti iltaa ja on aika blogata. Edellämainittujen ohella oli kiinnostava luento JPA 2.1 päivityksistä. Osaa käyttäjistä kiinnostanee mm. tuki Stored Procedureille. Lisäksi oli paljon suorituskyky-infoa siitä miten sitä kannattaa ja miten sitä ei kannata käyttää. Pistän lisätietoa näistä loppuraporttiin ja pari linkkivinkkiä jos vain muistan – luentokalvojahan saa sinällään raapia netistä jos omaa tunnukset, ja Tieturin kursseille valuu parhaat käytännöt taas kun ehdin päivittelemään 😉 Mistään rakettitieteestä ei ole kuitenkaan kysymys vaan fiksuja parhaita käytäntöjä. Haaviin muuten jäi myös EJB 3.2 tulevia piirteitä ja Java versio 8, 9, ja … 10 😉

Ai niin, ja Twitter liittyi OpenJDK:hon – IBM:n ja Applen ja muiden iloisten veikkojen ohella siis. Ja tässä vähän isompi uutinen….

Tomee eli Tomcat+EE 6 Web Profile serveri.. Julkistettiin ja ladattavissa jo osoitteesta http://openejb.apache.org/downloads.html – kiintoisa uusi alusta siis, ottaen huomioon pelkän tomcat webin suosion.

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