RIA’s @ Devoxx 2008
15 December 2008 17:44 · Ernst-jan van der Laan · Algemeen, Evenementen, Flex, Java, Mobiel, Ruby
Van 8 tot en met 12 december was hij er weer JavaPolis, uhh Devoxx 2008. Een afgeladen programma met alle nieuwe trends en achtergrond info over alles wat direct en indirect met Java te maken heeft.
Ondergetekende had zich het doel gesteld om zijn kennis op het gebied van rich internet applicaties (RIA’s) eens bij te spijkeren. Dus op naar de sessie over JavaFX, Flex, GWT en Silverlight. Ja, zelfs Microsoft was deze keer aanwezig om de verstokte Java ontwikkelaar over te halen.
In dit artikel ga ik proberen een kort overzicht te geven van elk van de raamwerken en dan af te sluiten met waar ik zie dat elk raamwerk het meest tot zijn recht komt
Flex
Gedurende een drie uur durende presentatie gaven Matt Chotin, James Ward en Chet Haase van Adobe een goede presentatie over de nabije toekomst van Flex. Het voornaamste doel van de nieuwe release van Flex (codenaam Gumbo) is om designers meer controle te laten houden over het designwerk en hierdoor de ontwikkelaars te ontlasten van al het visuele werk.
Om dit te bereiken is in het nieuwe Flex raamwerk een nieuw componentmodel gemaakt waarbij de functionaliteit gescheiden is van de layout. Als voorbeeld gaven ze een scrollbar die bestaat uit twee knoppen en een schuif die allemaal gebruikt kunnen worden om een waarde binnen een bepaald bereik te kunnen wijzigen.
De designer kan in Adobe Photoshop en Illustrator zijn design maken en daarna met het nieuwe programma Catalyst layer(groups) koppelen aan actiecomponenten. Tevens is de designer in staat om al de transities en animaties op een tijdlijn in te stellen, zodat de ontwikkelaar dit niet meer hoeft te doen. Vervolgens kan Catalyst dit wegschrijven in het MXML formaat. De ontwikkelaar gebruikt deze MXML bestanden weer om aan de gedefinieerde actiecomponenten de businesslogica te hangen.
Klinkt allemaal heel eenvoudig maar je kan er heel erg mooie web sites mee maken. En dat vind ik ook de kracht van Flex. Ben je opzoek naar een presentatieraamwerk waar je, onafhankelijk van op welk desktopplatform het moet draaien, hele gelikte GUI’s mee wil maken dan is Flex the way to go. Het zelfs heel eenvoudig om dezelfde webapplicatie buiten de browser als een desktop applicatie te laten draaien met Adobe Air.
Enige nadeel is wel dat je voor al dit moois nog wel even moet wachten tot eind 2009
Google Web Toolkit
Na zoveel moois gezien te hebben bij de Flex presentatie, op naar de volgende sessie over Google Web Toolkit (GWT). Didier Gerard and Pierre Mage gaven eerst een introductie van GWT 1.5 waarna Dmitry Buzdin op de do’s en don’ts in ging. Aangezien ik nog totaal geen ervaring heb met GWT was met name het eerste gedeelte interessant.
Met GWT maak je in de taal Java je GUI als ware het een desktop client. In de GWT is een redelijk aantal Widgets opgenomen waarmee je een GUI kan bouwen. Als je hiermee klaar bent kan je met de GWT deze Java bestanden laten omzetten naar browser specifieke ‘binaire’ Javascript files. De GWT garandeert vervolgens dat je GUI op elke browser er hetzelfde uitziet.
Een belangrijk verschil met bijvoorbeeld Flex en JavaFX is dat de widgets veel meer gericht zijn op ’standaard’ desktop applicaties. Hier dus geen fancy controls voor animaties, overgangen en media players.
Een ander belangrijk aspect is dat, omdat de GWT al van de taal Java gebruikt maakt is het heel eenvoudig om te integreren met bestaande Java applicaties. En wil je dezelfde applicatie buiten de browser draaien kan dat ook met Google Gears.
JavaFX
Devoxx had dit jaar wel de eer dat JavaFX hier als eerste in zijn 1.0 versie getoond kon worden. Gedurende de key note op woensdagochtend kreeg het publiek een mooie introductie van JavaFX te zien door het Sun Microsystems team dat aanwezig was (zie ook Devoxx 2008: JavaFX, Java 7 en scripttalen). Dit was trouwens één van de betere presentaties, die in schril contrast stond met de presentaties van IBM die hemeltergend slecht waren.
Sun Microsystems heeft duidelijk grote plannen met JavaFX. Voor het maken van RIA’s waarbij de nadruk licht op fancy animaties, layout, media, etc. moet ik zeggen dat het er gelikt uitziet. Ook hier kan de designer, net zoals bij Flex, in Adobe Illustrator 3 zijn design maken waarna hij het kan exporteren naar het FX fileformaat, waarmee de ontwikkelaar dan weer aan de slag kan. Alleen dat is nu al wel direct beschikbaar en niet pas eind 2009
.
De ontwikkelaar zal wel een nieuwe scripttaal moeten leren met een afwijkende syntax van Java zelf, al kan je natuurlijk wel heel makkelijk functies in bestaande Java bibliotheken/applicaties aanspreken. Verder gaf Sun Microsystems zelf al aan dat er nog heel weinig ’standaard’ controls zijn. Dus voor je listbox en textfield ben je aangewezen op Swing applicaties/applets. Hier zullen ze in de nabije toekomst wel verandering in gaan aanbrengen.
Wat verder cool is aan JavaFX is de mogelijkheid om je (FX-)applet op te pakken vanuit je browser en daarna op je desktop te plaatsen. Een soort instant webstart ‘so to speak’ (en dat is ook wat gebeurt onder de motorkap).
Het grootste onderscheidende aspect van JavaFX met alle andere raamwerken is het feit dat alles ook zou moeten draaien op je telefoontje. Eind februari moet dit met de nieuwe release van JavaFX mogelijk zijn. Ze lieten nu al een demo zien waarbij een plaatje via een JavaFX applicatie van de desktop naar de mobiele telefoon ‘verplaatst’ werd.
Silverlight
Onder het mom “ken uw vijanden goed om ze te kunnen verslaan” ben ik dus ook naar de presentatie van Microsoft geweest om te zien wat er allemaal kan met Silverlight. Allereerst gaf Katrien De Graeve van Microsoft een korte demo/tour door de mogelijkheden van Silverlight. Nu moet ik ook zeggen dat het er ook weer goed verzorgd uitzag. Net zoals bij JavaFX en Flex ook hier weer de nadruk op visuele goodies.
Qua ontwikkeling ook hier de focus op het laten samenwerken van de designer en ontwikkelaar met behulp van een skinable component raamwerk. Net zoals bij JavaFX en Flex ook hier weer de mogelijkheid om van Illustrator te exporteren naar het intermediate formaat XAML waarmee de ontwikkelaar weer aan de slag kan. Maar Microsoft heeft natuurlijk ook zijn eigen tool hiervoor.
Wat wel weer aardig was de presentatie van Kevin Dockx, die liet zien dat ook Ruby inmiddels is binnengedongen in de Microsoft wereld. Met behulp van IronRuby liet hij zien dat je ook Ruby kan gebruiken om Silverlight mee te maken. Dus voor ons Ruby team zou ik Silverlight zeker niet willen uitsluiten. Zeker aangezien Silverlight nu al op Windows en OS X draait en binnenkort ook op Linux.
Welk raamwerk, wanneer?
Wanneer zou je nu welk raamwerk moeten/kunnen gebruiken? Dat was de vraag waarmee ik zat, na al deze sessies bijgewoond te hebben. Ik denk dat het onderstaande een aardige aanbeveling is.
Als je een ‘filthy rich GUI’ nodig hebt met lekker veel visuele goodies die niet op een mobiele telefoon hoeft te draaien dan is Flex een uitstekende keuze. Als alternatief zou je ook Microsoft Silverlight kunnen gebruiken, zeker met de komende ondersteuning voor Linux.
Moet zo’n applicatie ook gaan draaien op een mobiele telefoon dan zou ik me nu gaan verdiepen in JavaFX. De applicatie werkelijk draaien op je mobile telefoon kan pas vanaf medio februari, maar er is nu wel al een emulator beschikbaar. O ja, installeer gelijk ook maar NetBeans 6.5 want hier zijn alle tools in beschikbaar.
Heb je echter een meer traditionele rich client nodig voor het maken van een zakelijke web interface, dan kom je toch bij GWT of de andere web raamwerken zoals JSF, Seam, etc. uit. En zowel GWT als JSF hebben het nadeel dat al je een keer een component zelf moet schrijven hier heel veel tijd in gaat zitten.
En om nog maar even met het onderwerp van Ivar Jacobson zijn presentatie af te sluiten: “BE SMART!”. Begin met wat je al weet en bouw daar op voort door vooral te blijven leren.













Flex (lees Flash) draait prima op mobieltjes hoor
(Flash Lite) en ook onder Linux (welke wel een stuk minder stabiel is).
Diederick - January 4, 2009 16:55
Goed verslag Ernst-Jan van Devoxx 2008, bedankt.
Gerard van Oel - January 13, 2009 14:31
Beste Ernst-jan
Dankzij Java 6 Update 10 is het uitrollen van een applicatie via webstart kinderspel geworden. Bij deze versie is het ook mogelijk om Applets meer RAM te geven (dit in tegenstelling tot de 96 MB limiet van vroeger).
Wat ik mij nu afvraag, waarom zouden applets vandaag de dag niet een her-introductie kunnen maken als RIA? Praktisch is het de kracht van een desktop app geintegreerd in je webpagina. Het enige nadeel welke ik kan bedenken is dat het ontwerpen van een grafisch interface omslachtig is (als in, veel regels code). Maar in ruil daarvoor kan je grafisch alles maken wat je wil. (Custom renderers, paint methods overwriten etc.)
Hoe is jou visie hier op?
Jeffrey - April 7, 2009 14:54
Jeffrey,
Dat schrijven van veel code valt ook wel mee, ik heb eind vorig jaar met NetBeans heel eenvoudig een Swing applicatie in elkaar gezet. Ik denk dat het gebruik van applets voor het maken van een RIA voornamelijk problemen geeft met de inter-applet communicatie. Nu kan je wel de hele pagina door 1 applet vervangen, maar dit heeft ook weer zijn nadelen.
Ik zie het gebruik van Swing voornamelijk voor het maken van een klassieke applicatie met een menubar en edit schermen. En dan kan webstart wel een goede methode zijn om de code te distribueren.
De door mij beschreven technieken voor het maken van RIA’s beschikken tevens over veel meer controls oor het weergeven en manipuleren van multimedia. Dat is iets waar in AWT/Swing niet zo veel support voor is.
Ernst-Jan - April 8, 2009 14:02
Ernst-Jan,
Voor eenvoudige applicaties is het uiteraard niet veel werk, maar om een ook een rijke gebruikerservaring te creeren zul je echt wel wat regels code moeten schrijven, simpelweg omdat het niet standaard out-of-the-box in Swing zit. Ik heb het dan met name over gebruik van blur-effecten, transitions tussen schermen, geanimeerde laadschermen, imagebackgrounds die meeschalen etc.
Als je dit doortrekt naar de grafische afdeling ben je het misschien met mij eens dat de “graphic pipeline” niet echt kort is. Ik zie een artist niet de GUI “even” programmeren. Het feit dat JavaFX gemaakt is, waarmee artists met een plug-in hun design kunnen exporteren, bevestigt dit eigelijk en is alleen maar positief.
Zijn de nadelen welke kleven aan een hele pagina door 1 applet vervangen niet dezelfde als die kleven aan Flex , Silverlight en JavaFX?
Tot slot, heb je misschien ooit het Java Media Framework overwogen om te integreren in je Swing applicatie? (http://en.wikipedia.org/wiki/Java_Media_Framework)
Jeffrey - April 8, 2009 15:35
Jeffrey,
Dat van die grafische pipeline, ben ik helemaal met je eens. Dat punt probeerde ik ook te maken door aan te geven dat multimedia (manipulatie) in swing niet standaard zit ingebakken.
Wat betreft het multimedia raamwerk heb ik nooit de behoefte gehad, simpelweg omdat ik dat niet nodig had. Ik maak weinig tot geen gebruik van rich clients in de zin van filmpjes/animaties enzo.
Ernst-Jan - April 8, 2009 16:10