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..

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