Devoxx, JavaFX

Bij de Devoxx was JavaFX behoorlijk vertegenwoordigd in sessies en keynotes. Behalve de keynotes heb ik geen JavaFX sessies bezocht – op JFall had ik al wat van JavaFX gezien. JavaFX lijkt een fraaie taal en techniek voor maken van GUI’s: op een weblog van Sun staat een kort verslag over JavaFX bij Devoxx. Het fraaie van JavaFX is het declaratief kunnen programmeren van GUI’s, in plaats van moeten programmeren in een mix van XML en Javascript variant gebruiken zoals bij Adobo’s flex. Toch weet ik niet zo heel zeker of ik een nieuwe taal als JavaFX wil gaan leren.

The new stuff (RIA)

Sinds zeer recent ben ik begonnen aan een nieuw project. Het project is nog heel vers, maar aangezien ontwikkelingen snel gaan wil ik toch al over wat technische overwegingen schrijven.
Als frontend hebben we na korte overweging voor Adobe Flex gekozen. Ik was nooit erg enthousiast over de HTML/Javascript combinatie, dus eerste keus is een RIA-framework (over GUI, zoals dat vroeger heette) dat ook echt bedoeld is voor RIA. In tegenstelling tot de 13-dozijn DHTML/Ajax/XHTML frameworks is de keuze dan gelukkig wat overzichtelijker. Gezien voorgaande ervaring hebben we voor Flex gekozen boven JavaFX. W

Heel toevallig, las ik nu een artikel van een oud-collega, over Spring Security in combinatie met Flex. RIA-applicaties zijn wat veiligheid betreft risicovoller: op de client is dikker (qua software en logica) dan bij tradionele HTML-interfaces. Wanneer geen rekening mee gehouden wordt, is er grotere kans dat de server onbeschermd ontbloot is.
In het artikel wordt uitgegaan van de combinatie Flex/Spring/BladeDS als basis voor de architectuur van de applicatie. BladeDS is een remoting-framework, waarmee de Flex-client-applicatie, op de computer van de gebruiker communiceert met de applicatie op de server. Spring-security is een wordt als een filter-class op de server-side toegevoegd. Samen met wat client-side code in flex, zorgt het geheel ervoor dat de gebruiker een nette login-box krijgt, wanneer hij de applicatie wilt gebruiken. Lees de details in: Integrating Flex, BlazeDS, and Spring security op de Adobe Developer Center.

Rich clients en kringloopwinkels

Zo’n 8 jaar geleden waren kringloopwinkels en en tweedehands spullen bepaald niet populair. Hoogstens voor studenten die op kamers gingen of (andere) armlastige mensen. Sinds enkele jaren is het hebben van tweedehands spullen helemaal hip, en zijn kringloop winkels druk bezocht. Hoe komt dat? Simpel door markplaats (overigens ooit een dochterorganisatie van een kringlooporganisatie Het Goed). Markplaats zorgde ervoor dat kopen van tweedehands goederen veel laagdrempeliger was. Een indirect gevolg van de toename van kopen van tweedehands goederen via internet, was dat kringloopwinkels ook weer populair werden. Voordeel van een kringloopwinkel bovenop Markplaats is ten slotte dat je makkelijke artikelen direct kunt zien voor aankoop, zonder allerlei adressen eerst te hoeven bezoeken.

Ik denk dat de desktop-applicatie, in de vorm van de rich-client een soortgelijke ontwikkeling doormaakt qua populariteit aan het doormaken zijn.

Begin jaren 2000 werd de desktopapplicatie plots een stuk minder populair. Heel veel, vooral administratieve, applicaties werden als webapplicatie gebouwd of omgezet.
Men kwam er snel achter dat de UI van webapplicaties zo zijn beperkingen heeft. Oorspronkelijk is het WWW ontworpen voor online bekijken van artikelen en online formulieren bedoeld voor verzenden van berichten als bestellingen of klachten. Bij een webapplicatie verwacht een gebruiker veel meer dan die beperkte functionaliteit: sneltoetsen, makkelijk kunnen scrollen, makkelijk kunnen doorklikken (dus een snelle interface).

Als oplossing hiervoor kwamen technieken als Javascript, Ajax en slimmere web-browsers als Google Chrome, Firefox3 of IE8 (probeer maar eens een moderne webapplicatie met IE6 te gebruiken). Op die manier kan toch een redelijk soepel voelende en uitgebreide applicatie geschreven worden, die helemaal in een webbrowser werkt.
Los van het probleem dat rich internetapplicaties (RIA) als Google Docs of Zoho nog steeds soms wat traag aanvoelen, ligt het grootste probleem in de ontwikkeling van die applicaties. De ontwikkeling van webapplicaties is een stuk moeilijker en omslachtiger. Aanwijzing hiervoor zijn de vele webframeworks voor webapplicaties zoals voor HTML/Ajax: Wicket, Spring Webflow, JSF, Struts, GWT.  Dat deze applicaties zo snel opkomen en vaak weer in populareit dalen zegt volgens mij wel wat over de kwaliteit.

Er komen inmiddels ook frameworks die niet op html zijn gebaseerd: Flex, Microsoft, Mozilla Xul of Sun’s JavaFx. Als je een webapplicatie in zo’n framework bouwt, bouw je bijna applicatie die bijna hetzelfde werkt als een tradionele desktopapplicatie.
Ofwel, via een omweg wordt de desktopapplicatie weer populair. De voordelen van een webapplicatie: leesbare html, automatisch indexbare tekst bestaat of niet-nodig-zijn van een extra plugin blijken opeens niet zo belangrijk. Kortom, de desktop-applicatie is stiekem weer hot geworden.