JavaOne 2011 San Francisco – 4/4

No niin, viimeistä päivää viedään. Aaamu pärähti käyntiin Community Keynotella jossa oli jo rennompi tunnelma. Oracle oli hauskasti myynyt jokaiselle kolmesta diamond partneristaan puolesta tunnista tuntiin keynote aikaa heti alusta. Kun Java ihmiset tämän huomasivat, alkoivat he tahallisesti myöhästymään keynoteseista, eli porukkaa valui sisään verkkaiseen tahtiin. Osasyy saattoi tänään olla myös eilisen appreciation event. Hassua kyllä moni alkoi jo tekemään lähtöä kotiin, vaikka tämä viimeisin päivä on aina omasta mielestä rento opiskelupäivä kun maratoni alkaa olla lopuillaan.

Keynoten jälkeen piipahdin kokeilemassa vielä toisen kerran JavaFX:ää labrassa. Täytyy sanoa että en ole vaikuttunut näistä hands on lab systeemien järjestelyistä. Puhujat mumisevat, ääni ei kuulu vaan peittyy hurinan alle, ohjeet ovat vanhoja, huonoja, ristiriitaisia, ja ympäristöissä asennusvirheitä ratkottavana. Ja ne jenkkinäppikset, joissa on aina napsuttimet väärissä paikoissa.. Hidastaa muutenkin koodausta. Sitten kun labrat ovat suurinpiirtein copy-paste harjoitustehtäviä, on kyseenalaista mitä jää käteen. No itselle ainakin ne labra pdf:t, näkee ainakin mitä niissä on yritetty tehdä, josko sitten rauhallisemmalla ajalla olisi aikaa itse koettaa.

Siltikin – aika vaikuttavia nuo JavaFX Charting-kontrollit, erilaiset barchart ja piechart kontrollit ja sensellaiset. Aika äkkiä niillä leipoo kaikenlaisia reaaliaika-metriikkanäkymiä pienellä vaivalla.

Sitten lisää sessioita. Java plug-inista oli mielenkiintoista tarinointia, sehän nousee jälleen JavaFX:n myötä kiinnostavammaksi kun appleteilla voi jopa tehdä jotain. Oli vinkkejä mm. suorituskyvystä, digitaalisista allekirjoituksista, debuggauksesta, ja tietoa tulevien versioiden uusista piirteistä. Osa parannuksista on lähes ilmaisia – sen kun asentaa JRE 7 tai 8 ja jo toimii paremmin.

JavaFX producer-consumer workflowsta oli myös asiaa, jälleen kerran yritetään saada aikaan malli jossa olisi erikseen designer ja developer, designer tekee kauniit näytöt ja developer koodaa niiden toiminnallisuuden. Mielenkiinnolla jään odottamaan että pääsen käsiksi Scene Builderiin – sitä odottaessa kaikki on käsin koodausta. Onneksi CSS3 tyylisivujen tuki on kerrassaan mahtavaa.

On aika kietaista reissu kasaan, edessä enää viimeinen it’s a wrap tapahtuma, sitten verkot katoavat alta, ja Java One passilla ei ole enää mitään merkitystä. Viikko on ollut kuten tavallista synapseja paukuttava, ja kestää hetken sulatella tätä intensiivipakettia. Koneelle alkaa olemaan pudonnut pdf tiedostot ja parleys.com esityksiä, niissäkin riittää lueksittavaa esim. lentokoneessa – harmi että parleysiin ei ole ipad clienttia. Android clientti löytyy 😉

Palataan asiaan vielä loppyhteenvetojen merkeissä, mutta välitön fiilis oli että tänä vuonna oli taas energiaa, joku vertasi twitter kanavalla tätä sovelluskehittäjien Woodstockiin. Ihan niin pitkälle en menisi, mutta paljon uutta tuli, suunta on hyvä, ja omasta mielestä on hienoa että pitkästä aikaa alustalla on roadmappia raotettu vuosiksi eteenpäin. Sikäli mikäli nyt mitään voi tänä päivänä ylipäätään suunnitella.

 

Mainokset

JavaOne 2011 San Francisco – 3/4

Kolmas päivä JavaOne seminaaria ei lähtenytkään käyntiin keynotella vaan nyt keskitytään tiukkaan asiaan. Tänään teemoja omassa kalenterissani olivat mm. G1 roskankeruun tuunaaminen, JavaFX sovellusten automatisoitu yksikkötestaus, Kinect, sekä JAX-RS uusin versio.

Muutin suunnitelmia viime hetkellä:
 Generational garbage collection tuning osoittautui koskevan IBM virtuaalikonetta ainoastaan, ja sitäpaitsi perusvinkkejä joita olen itse opettanut jo vuosia Tehokas Java kurssilla. menin varasijalla olleeseen esitykseen joka oli dynaamisten scriptikielten turpaanvetokisa. Toisin sanoen JRuby, Groovy, Scala ja Clojure kielten asiantuntijat ottivat toisistaan – tai ainakin toistensa kielistä – mittaa. Yleisö valitsi voittajat demojen ja trash talkin perusteella. Vaikka Ruby sai suosiota ja sen polustaja käytti referenssinä 10 miljardin projektia, yleisö äänesti Scala sekä Groovy kielet jaetulle voittajasijalle. Hännänhuipuksi jäi odotettavasti Clojure. Kaikki näistä kielistähän ovat mielenkiintoisia,mutta kaikkea ei voi osata jokainen yhtäaikaa. Tieturikin on panostanut näissä Scalaan toistaiseksi, tosin Groovy ja Grails alkavat jo ylittää uutiskynnystä niinsanoakseni. Ja itse pidän myös Jruby ja Ruby On Rails tyylistä.Tämä on muuten kirjoitettu ipadillä, ykkösversiolla. Sen näppis on häkellyttävän hyvä nopeaan kymmensormijärjestelmään tottuneelle. Testasin rinnan Motorola Xoom näppistä, ja se on jostain kumman syystä käsittämättömän hisas ja kankea. Ja miksi shift näppäintä on pakko painaa ensin ja erikseen kun applessa sen voi painaa totutusti pohjaan ja kirjoittaa monta isoa kirjainta samalla kertaa? Haluan androideihin paremman näppiksen! Pari kirjoitusvirhettä sallittakoon, iPadin touchpad näppis on vain _melkein_ yhtä hyvä kuin aito näppis 😉

No niin, seuraava tuleva versio Java ee7:stahan tulee olemaan kiintoisaa. Siitä puhutaan jo nyt tulevaisuuden PaaS standardina. Se ei kuitenkaan ole kaikki mitä on tuloillaan, tässä pari makupalaa:

– EJB 3.2 tulee sisältämään uudistuksia jotka pääosin liittyvät tuohon multi-tenancy piirteeseen, eli ajoon eri ympäristöissä, pilvessä tai ei, ja tietysti lisää annotaatioita, parempi yhteensopivuus muiden EE perheen tekniikoiden kanssa, jne.  Ehkä kiinnostavin ja mullistavin piirre olisivat uudet QoS annotaatiot sekä Cache API.

– JSF 2.2 tuunaa muutamaa pikkuasiaa. Esim nykymallissa monet EE annotaatiot toiivat lähinnä managed beaneissä, tulevassa versiossa myös validatoreissa, konverttereissa, custom komponenteissa, jne. Lisäksi luvassa paljon hienosäätöä, lisää voi lukea esim. http://jdevelopment.nl/jsf-22/

JPA 2.1 tulee tukemaan stored procedureja paremmin, tukee ON osaa joineissa antaen siis valita millä perusteella joinit tapahtuvat.. Lisäksi ’fetch groups’ ja ’fetch plans’ auttavat optimoimaan mitä dataa milloinkin haetaan, jos ei kaikkea halutakaan kerralla.

Lisäksi ahmin lisää JavaFX asiaa koska Tieturin tarjonnassa on nyt siitä uutta koulutusta tuoreeltaan ja täytyy tietää pintaa syvemmältä aiheesta. mm. layout management oli kiinnostava aihe – jälleen eroja ja parannuksia Swingiin verrattuna. Oracle muuten viestii selvästi että Swingiin ei enää panna paukkuja, se kuihtuu pois. Kiintoisaa mm. miten JavaFX:ssä max ja preferredsize toimivat, ja miten ruudulta voi kätkeä osia tilapäisesti rikkomatta käyttöliittymää. Luennon esitti Oraclen Amy Fowler, joka on myös innokkaasti tweettaillut ja blogannut viikosta.

Kiintoisa luento oli myös Physics in JavaFX, jossa käytiin läpi fysiikkamallinnusta esim. Angry Birds tyyppisissä peleissä. Fysiikan laithan koskevat kaikkia muita paitsi Chuck Norrisia.

Joka tapauksessa, luennon aiheena oli fysiikkamoottorin kytkeminen JavaFX esitysmuotoon, ja PhysicsFX moottorin julkistus joka helpottaa asiaa. Hauska havainnollinen esimerkki hyödyistä oli mp3 soitin joka havainnollistaa soitettavat biisit palloina joita tippuu suppilosta. Mitä hyötyä on siitä että applikaatio näyttää hauskalta ja sitä on mukava katsella? No olisiko meillä jo riittävän paljon niitä kivuliaasti käytettäviä työajanhallintasoftia joissa tarvitaan insinöörikoulutus ja 20 napinpainallusta per operaatio... 😉

 

Jaahas, ja lisää huomenissa. Torstai on seminaarin viimeinen päivä ja viimeinen tilaisuus imeä tietoa, verkostoitua, haalia demoja, esitteitä, visioita, ja vaikutteita joten voi olla että tänään täytyy Oracle Appreciation Event ottaa kevyen kaavan mukaan 😉

 

 

 

 

 

 

 

 

 

 

 

RIP Steve Jobs

Eilen oli Oracle Appreciation Party. Juhlatunnelmiin sekottui suruakin, Steve Jobs nimittäin nukkui pois ja tieto vyöryi twitterissä myrskyn lailla tukkien sen ajoittain täysin. Se nousu hetkessä twitterin käytetyimmäksi avainsanaksi. Juhlissa Sting esitti osanottonsa yhteisölle, ja omisti yhden kappaleistaan Stevelle. Omasta puolestani olen pahoillani että mies innovoi, keksi uutta ja keksi uudestaan on nyt poissa. Liikaa ei ole vastaavia suuria luovia mieliä maailmassa, näin lonkalta en osaa heti mainita yhtäkään. Steve oli yksi suurista. Kuten Sting asian muotoili, tämä on niitä iltoja joissa jokainen muistaa mitä oli tekemässä.

 

Jotenkin kuvaavaa oli, että Twitter-ajan hiljainen hetki tapahtui siten että seremoniamestari luki kännykästään Applen sivuilta tiedotteen. Applen sivuille muuten pystytettiin virtuaalinen hautakivi ainakin täksi päiväksi, ja Youtube sykkii muisteluvideoita ja muuten vain mielen purkamista.

 

 
Nykymaailmassa on aina tapana glorifioida menneitä ja sankarikultin palvomisestahan tässäkin on kyse, mutta toisin kuin monessa muussa tapauksessa, tässä on kyse ansaitusta sankarinviitasta.

San Franciscon Apple Storen eteen kertyi muistelijoita ja kanban-tapaan pieniä viestejä ikkunaan, siitä muodostui sateessakin pyhättö miehelle joka uskalsi veistää omat polkunsa ja olla erilainen.

 

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.

Java One 2011 San Francisco – Prelude

No niin, saapuminen San Franciscoon, kone myöhässä pari tuntia hurrikaanin vuoksi, ja kauhea härdelli lentoasemilla kuten aina. Loppu hyvin kaikki hyvin, sain tavarat hotelliin ja asetuin kodiksi. Uskomatonta miten kalliissa jenkkihotellissa wi-fi on erikseen maksullinen, suomessa on tottunut että jopa rupisemmissa pikkuhotelleissakin on nykyään ilmainen wi-fi tai edes kaapeliyhteys. Lisäksi tämä jenkkien high-speed internet muistuttaa nopeudeltaan 1200bps modeemeita joita tuli 80-luvulla käytettyä bbs:n pyörittelyyn.. Mitähän tykkäisivät jenkkiläiset meikäläisen kotilaajakaistasta jossa bitit vilkkuvat 200Mbs tahtiin..?

Joka tapauksessa, konferenssi on alkanut. Tsekkasin varustepaketin, ja tänä vuonna ei näemmä konferenssiohjelmaa saa enää paperilla ollenkaan, vaan vain virtuaalisena. Sinänsä hatunnoston arvoinen temppu, mutta kun android versio ei jostain syystä näytä aikataulua, ja sessioissa tulee varmasti olemaan taas viime hetken peruutuksia ja muutoksia, ja javaone sessiot tänäkin vuonna on hajautettu ympäriinsä lähestön hotelleihin, niin kiintoisa viikkohan tästä tulee.. 😉 Hupaisaa kyllä ipad versio toimii paremmin ja ajattelinkin tällä reissulla bloggailla ja liikuskella puhtaasti ipadin varassa. Jetlag vaivaa sen verran että kovin raskasta ohjelmaa ei voi sunnuntaille ottaa, mutta eipä java sessiot täysipainoisesti vielä tänään käynnistykään.

Huhutaan jostain kiinnostavista julkistuksista.. Nähtäväksi jää miten laajalti kiinnostavia. Katselin Larry Ellisonin Oracle Openworld keynoten, joka nyt ei itselle sisältänyt maatajärisyttävän kiinnostavia asioita. Mieleen jäi kuitenkin kiintoisa perustelu sille miksi Exalogic ja Exadata serverit ovat hintansa väärtejä. IBM:ää kyrmytettiin sillä että heillä on maailman nopein superkone – integer laskutoimituksiin. Exalogic + Exadata yhdistelmää kehuttiin nopeimmaksi datan siirtämiseen ja Javan ajamiseen. Jos olisi liikaa dollareita taskussa niin kyllähän nuo alustat vakuuttavalta vaikuttavat, mutta itse pyörin eniten Intel Linux ja Windows purkkien parissa, ja joskus harvemmin törmää IBM purnukoihin.

Joka tapauksessa, San Franciscossa on uusi aamu, ja sitten kohden alkavaa JavaOne Technical Keynotea, jossa toivon mukaan on enemmän asiaa jaettavaksi asti. Ja siitä se päivä sitten alkaa 😉

Joka tapauksessa Larry Ellisonin keynote on tänään sunnuntaina, ja huomenna aamulla on Java technical keynote, eli saapa nähdä mitä tulee näkyville..

JavaOne 2011 alkaa sunnuntaina

No niin, JavaOne 2011 pärähtää taas käyntiin sunnuntaina, San Franciscossa. Uusia julkistuksia ja sovellutuksia siis luvassa ja tiivis paketti uusia kujeita ainakin allekirjoittaneelle.

Tänä vuonna sain myös OpenWorld passin mutta valitettavasti aika ei salli sitä paljonkaan hyödyntää. Kritiikistä huolimatta JavaOne tapahtumat on tänäkin vuonna hajautettu ympäri kaupunkia joten seminaariin osallistuminen menee vähän suunnistuskisaksi etenkin kun viime hetken eventti muutoksia ja peruutuksia on aina luvassa. Onneksi on virallinen JavaOne sovellus Nexus S Androidiini, ipadiin ja xoomiin.

Luvassa on siis viisi päivää tiukkaa asiaa aamusta iltaan, 400 teknistä sessiota joista valita, tutut 50 000 osallistujaa (molemmilla tapahtumilla, JavaOnessa varmaan 10-15 000).  Käytössä myös The Zone, eli Hilton-Nikko-Parc55 hotellien väliset kadut jotka on taas poikkaistu muulta liikenteeltä. Luvassa on varmasti esitietoa ensi vuonna tulevasta Java SE 8 alustasta, tulevasta Java EE 7 ’pilvipalvelu’ alustasta, sekä JavaFX 2.0 versiosta joka pääsee pian pois betasta.

Muutama tärkeä iltaeventti verkostoitumismielessä:

– OTN Night maanantaina 19:30-22:00 Yerba Buena Gardens alueella (Groove Grounds)

– Appreciation Event 19:30-1:00 Treasure Islandilla, mukana menossa mm. Sting ja Tom Petty and the Heartbrakers, sekä tietysti Larry.

– It’s a wrap! lopputapahtuma torstaina 16:00-19:00 Yerba Buena Gardens alueella. Viime eventin pääesiintyjä ’Take My Breath Away’ Berlin ja San Franciscon paikallinen bändi The Five Hundreds ovat soittelemassa ja luvassa haikea tapahtuman loppubriefi ja oiva tilaisuus sulatella julkistuksia ja uutta tietoa.

Tässä tärkeimmät: http://www.oracle.com/javaone/network/face-to-face/index.html

Aion bloggailla päivittäin tapahtumasta eli spagettikoodia lukemalla saa jonkinlaisen kuvan siitä mihin suuntaan piilaaksossa tuulee vuonna 2011.

 

Edit: Ja ehdottomasti suomalaisten ei kannataa unohtaa JavaOne 2011 Vaadin Meetup tapahtumaa torstai iltana josta lisää tässä. Ilmaista kaljaa ja sielun ravintoa! 😉

https://vaadin.com/meetup/san-francisco-2011-10

 

JavaFX on kuollut – eläköön JavaFX!!

Tämä oli JavaOne seminaarin suurin uutispommi joten ajattelin kirjoitella vähän analyysiä ja mietelmiä JavaFX 2.0 versiosta.

Käytännössä Oracle julkisti JavaFX 2.0 roadmapin, jossa JavaFX Script kääntäjää ei enää päivitetä vaan julkaistaan Javalle (ja muille virtuaalikonekielille, kuten Scalalle) rajapinnat joilla JavaFX piirteitä voi hyödyntää. Tämä oli kiintoisa pommi koska käytännössä se tarkoittaa että JavaFX 1 scriptikielellä tehdyt sovellukset ovat käytännössä kuolleita – tulevat toimimaan vielä mutta uusia ei kannata tehdä. JavaFX 2 alustaa taas ei ole edes testikäytössä vielä kuukausiin, ja aitoon projektiin sitä voi käyttää aikaisintaan ensi vuonna, jos aikataulut pitävät. Eli JavaFX kehittäjillä on tässä kohtaa limbomainen tila, vanhaa ei kannata tehdä, uutta ei voi tehdä – vielä.

Toki jos JavaFX kiinnostaa tämän väliajan voi käyttää loistavasti treenaillen vielä JavaFX scriptikielellä asioita – koska samat rakenteet tulevat säilymään jatkossakin, esim. scene graph, valmiskontrollit, jne. Kun ymmärtää alustan toiminnan on se helppo aikanaan ottaa Java-kielen kautta täysin käyttöön. Lisäksi nyt tehdyt javafx scriptiratkaisut toki tulevat toimimaan jatkossakin – käännettyä bytecodea kun lopulta ovat.

Selitetäänpä hieman taustoja. JavaFX 1 kehitti uuden scriptikielen joka oli suunniteltu vain käyttöliittymäkehitykseen. Sen etuna Swingiin oli yksinkertaisuus ja lisäominaisuudet kuten binding, jolla voi helposti sitoa arvoja muuttujiin ja funktioihin. Koodia tarvittiin hyvään käyttöliittymään murto-osa Swing koodin määrästä. Lisäksi alustaan rakennettiin mm. kovan suorituskyvyn videokirjastoja ja suorituskykyä, 3d-kiihdytystä, sisäänrakennettua tukea eli ääni, video, kuva ja muille mediaformaateille.

JavaFX 2.0 perustuu puhtaasti käännetylle koodille. Mielestäni päätös on rohkea mutta vaikea, se tarkoittaa tätä vuoden siirtymäkautta. Mutta kun kielenä on Java, saavutetaan muutamia etuja:

– Ei tarvita erikoisia koodieditoreita, vaan tutut vanhat riittävät
– Ei tarvitse opiskella uusia kieliä samanaikaisesti Javan kanssa, Java riittää
– Javan ohella myös Scala ja muut JRE kielet ovat mahdollisia (ja demonstroituja jo)
– Yhteesopivuus on saumatonta Swingin kanssa – Swing sovellus pääsee suoraan käsiksi kaikkiin JavaFX piirteisiin ja komponentteihin, ja voi käytää haluamaansa. Esim. CSS tukea tai HTML5 tukea tai vaikkapa Charts kaavioita. Näin voi helpommin valita miten paljon JavaFX:ää haluaa sensijaan että täytyy heti tehdä täysi siirtymä. Jotkut kutsuvat tätä Swing 2.0:ksi.

Eli hyötyjä on useita. Ehkä pienenä haittana on että Java kielenä on hieman vanhanaikainen ja kankea, eikä erityisesti tähän suunniteltu. Lohtuna uskon että Java 7 piirteet (goodbye to get/set, jne) + JavaFX:stä portattavat piirteet (binding) tekevät kielestä paremman.

Miksi touhotan JavaFX:stä? Eikö se ole vain epäonnistunut tekniikka muiden joukossa? Itse uskon edelleen alustaan kovasti. Se on alusta nykypäivään ja tulevaisuuteen. Swing on ollut hyvä kirjasto hiirellä käytettäviin pc käyttöliittymiin kun halutaan harmaita lomakepohjaisia business sovelluksia. Nykyäivänä kuitenkin laitteet monipuolistuvat – iPad, iPhone, iPod, Android puhelimet, erilaiset muut sulautetut ympäristöt.. kosketusnäytöt, kiihtyvyysanturit, jne antavat mahdollisuuden olla yhteydessä laitteeseen tavalla mihin näppäimistö ja hiiri eivät pysty. Lisäksi malli antaa hyvän tuen Developer-Designer workflow:lle jossa kehittäjä keskittyy toiminnallisuuteen ja ui-suunnittelija ulkoasuun.

Toki alusta antaa mahtavia piirteitä koko Java alustan käyttöön kuten:

– kiihdytetyt videot ja multimediatiedostotuki – demossa pyöriteltiin 160 videovirtaa yhdenaikaisesti pallopinnalla – ja demokone oli normi pelikonetason kotikone. Tyypillisessä kannettavassa kuulemma pyörii 60-70 kevyestikin. Tämä onnistuu uskomattomalla pinnanalaisella kikkailulla josta kehittäjän ei tarvitse välittää. Tämä suorituskyky pesee mennen tullen esim. HTML 5 kyvykkyyden tai muutkin selaimissa tapahtuvat jipot.

– Valmiit komponentit kuten Charts ja Controls, ei mitään suuria yllätyksiä täällä mutta Swingin tapaan paljon valmista tavaraa on – ne pitää nyt vain portata JavaFX 2.0 alustalle, ja roadmap näyttäisi että tämä tapahtuu ensi vuoden Q3:en mennessä jolloin JavaFX 2.0 General Availability release ilmestyy.

– Alustaan lisätään entistä parempi tuki HTML ja HTML 5 tekniikoille, ja lupaus on 100% tuesta standardinmukaiselle CSS3-tyylisivukielelle. Näitä käyttäen on naurettavan helppoa koristella käyttöliittymää ilman että täytyy tietää Javasta juurikaan mitään. Web kehittäjät voivat käyttää olemassaolevaa osaamistaan. Yksi tarkoitus JavaFX:ssä onkin houkutella uusia kehittäjiä joilla ei ole ennestään Java-taustaa – esim. php koodaajia, web designereita, tms.

Tulossa on pidemmällä aikavälillä myös malli jossa Javalla koodattu JavaFX koodi muuntuu tarvittaessa HTML 5 + JavaScript + CSS yhdistelmäksi – mahdollisesti vähän Google Web Toolkit/Vaadin tapaan. Tämä on suunnattu niille laitteille joihin Javaa ei saa eikä tule saamaan. Tästä on vielä aikaista puhua koska se on täysin uusi piirre ja roadmapilläkin vielä kaukana, mutta kiinnostava konsepti tämäkin..