JFall 2008

Last Wednesday, I visited JFall 2008, the yearly fall conference of the Dutch Java User Group, NLJUG. The location was Spant!, a theatre in Bussum, The Netherlands. There were many interesting sessions and I thought it might be interesting to share my opinion about the sessions I attended.

Keynote: ‘SOA, Web 2.0 and the new EAI’ by Duane Nickull of Adobe Systems

I think the main conclusion of this talk was that there is no single definition of the terms “Web 2.0” and “SOA”. Maybe the talk was more interesting for decision makers. I, as a developer, didn’t found it that interesting. But the good news is that the music of Duane’s own band that was played before his talk started was pretty good. Perhaps he should bring his band for a live performance next time…

‘Waarom renderen we de view laag eigenlijk nog op de server?’ by Andrej Koelewijn of IT-eye

The title is in Dutch. It means ‘Why do we still render the view layer on the server?’. Andrej’s short answer to this question was “We shouldn’t do that anymore”. He had some strong arguments on why we shouldn’t, the most important being all the difficulties we still have in remembering the state of each view on the server side. He showed us an application he had built for one of his clients. He built a GUI entirely in JavaScript, using the jQuery framework. The web server only served some static HTML, CSS and the like. All data was retrieved via RESTful web services, which were made using Grails. He called his application a “Client/Server 2.0 application”. This name illustrates his vision that we are moving from old school “dumb terminals”, via “Client/Server 1.0” (like, e.g. Oracle Forms) and web interfaces (JSP, JSF, etc.) to a new Client/Server solution, where the client application lives within a browser.

I think Andrej’s view is refreshing. A strong point of his session was that he was able to prove that this “Client/Server 2.0” model can be implemented successfully, by showing us the application he made for his client. It indeed was a pretty good looking, responsive application. However, I think his ideas may be a little bit too progressive to apply already in larger projects today. Although based on standards (JavaScript, HTML, CSS), not the entire stack he used is really a standard. For example the jQuery framework: what if it ceases to exist over a couple of years? You can’t simply replace it with some other framework that implements the same standard. Another thing is that the development tools for this type of development aren’t as mature as the tools for the more traditional stack.

I think we might be seeing a shift towards a stack like the one Andrej showed us in a couple of years. But for that to happen, some standardization is needed among the JavaScript frameworks and some more mature developer tools are needed as well.

Peter did an interesting, in-depth talk on the Java Memory Model in relation to concurrency. This is not the sort of talk that generates a lot of discussion, but I did learn a lot. Peter writes on his blog: “Eventually my goal is to give presentations on large international (Java) conferences to become a concurrency authority”. Perhaps he should work on his presentation skills a little, but with his impressive knowledge he is certainly on the right track!

This keynote was right after the lunch. Reggie and his colleagues anticipated on an after-lunch dip by keeping it funny and spectacular. After a short T-shirt-throwing session, Reggie started with some unofficial (?) announcements about the upcoming release of JavaFX 1.0. After that the stage was for Chuk-Munn Lee, who gave an inspiring demonstration of the power of JavaFX. He coded a graphics-oriented applet in just a couple of minutes; very impressive! I thought that would be the climax of this session, but it did get even better. A Sun guy from the UK (forgot his name, sorry) had a very cool demo invloving a Wiimote, a wooden screen (“Every computing project should include some woodwork”, he said.), three infrared LEDs, a beamer and of course a PC, Java and JavaFX. I think telling what happened is not cool, but it was inspired by the Wii projects of Johnny Chung Lee. Hopefully the NLJUG will post a video of the demo on their site.

A Dutch title again, meaning ‘Java on the silver screen? Java applications for Blue-ray’. Although I don’t think I’m going to use this in my work, I found it interesting to see a totally different application of Java. While it could have been a nice starting point for some home grown Blu-ray apps, unfortunately the closed nature of the Blu-ray platform will prevent this sort of hobbyism. That is probably the most important conclusion that could be drawn from this session. And perhaps that was exactly the reason why there were no demo’s in this talk. The lack of demo’s made the talk a little bit more dull than one could expect given the title.

An excellent session! Instead of just showing off all cool features of the Groovy language, Paul managed to anticipate on what is usefull for a real life developer (hence the title of his talk). While Groovy has some realy nice features, most developers will not be able to go back to work the next day and say: “From now on we will replace all Java code by Groovy code.” Paul had a very realistic approach by suggesting that Groovy could be used for Unit Testing, databse scripting and mock-ups, whithout the need to have any Groovy code in the production code base. I think that is a very good approach. I’ve seen a lot of conference talks where a new language or a revolutionary framework was discussed and the only thing I thought afterwards was: “Nice, but of no use in my current project.” Paul’s approach at least gets me thinking of acutally using some of the cool new stuff he talked about.

On the topic itself: for what I’ve seen, Groovy indeed is a very powerful language. The closures feature is a good example of that power. My opinion is that this power does come at a price, though. The more power there is, the more careful one has to be. I think in Groovy it might be easier to mess things up. It is a good idea to write compact code. But there is a point where code gets too compact. In my opinion it is very important that source code can be understood easily by other programmers. By making things too compact, understanding the meaning of a piece of code generally gets more difficult. So I think some caution should be used when adopting Groovy. But if you’re a fan of doing as much as possible on one single line of code, Groovy might be your language…

This was the last session I attended. It turned out to be the first public presentation of Wilfred’s new open source framework for encoding binray files. (His slides are already available on SlideShare.) It was an interesting session, but the main conclusion was that “Preon” is not finished yet. When finished, it can be a very powerful solution. However, there are still a lot of things to be sorted out. I hope Wilfred can announce the 1.0 release at JSpring 2009…