Hippo let me go to Devoxx, the Java developers conference formerly known as Javapolis. In this post I'll try to cover most of what I have seen and heard and be warned. It's the longest post I have ever written.
Very early in the morning we took the train to Antwerp to be almost in time for the keynote. Halfway the first keynote about JavaFX we arrived at the venue, a cinema complex. It took me about a minute to realise that the speaker on the screen was actually in a different room than me. Even though the room was big, you can't fit 3000 people in it (yes that many people were attending). At Devoxx all talks were recorded and displayed live on the big cinema screens with the speaker on the left hand side and the presentation or demo at the right hand side. It's a very nice way to watch the talks if you're on a spot where you're unable to see the speaker and you don't need to let your eyes constantly focus on different distances.
The JavaFX demo was one of the "cool new features" talks on Devoxx. They showed what you could do with multimedia on your site and even drag the applet out of your browser and place it on your desktop. The you can start up the applet from your desktop without opening the browser. I'm not sure if all content providers would like you to see the content without their banners or they have to create inline advertisements. Another thing I wondered is how secure it is to move the applet from the browser to the desktop.
The second keynote speach was about RFID. Big Brother was watching us during the whole conference because the name tags had RFID tags on them. The organisation monitored how many people attended the talks.
What's new in Java 7
What's a conference about Java without a talk about the feature of Java? During the second day's keynote we were told about the most important changes. Some of them were minor. One very handy improvement is multi exception catching. So with Java 7 you don't have to use separate catch'es for every type of exceptions but you can group them in one catch if the catch behaviour is similar. The real big change in Java 7 is modularity. Sun finally took some time to solve the jar-hell. A few months ago I wanted to develop some feed import tool for Hippo CMS 6. Abdera seemed to be a good solution but needs HttpClient 3 to run. Hippo Repository 1 depends on HttpClient 2 so I had to look for a different feed import tool (later Bart solved this problem, allowing HttpClient 3 to communicate with our Repository). With the new modularity I would have been able to make Abdera depend on HttpClient 3 while the rest of the CMS would use HttpClient 2. Sun is going to use parts of OSGi in their modularity solution and it will develop new featured in the open.
Hippo CMS sneak preview
Arjé showed a sneak preview of Hippo CMS 7 built with Apache Wicket and Hippo Repository based on Apache Jackrabbit. The great new feature is the faceted view on the content. Another great new feature is the template editor. It's not necessary anymore to define a schema, the layout and some business logic before you see a simple template with just one field. In Hippo CMS 7 you just choose the type of field, give it a name and place it at the right position which decreases the amount of boring work. Arjé didn't only do a product presentation but also promoted the new Hippo forge where developers can start their own project to extend Hippo CMS. Of course it was not new to me but always nice to hear the response from the audience.
The title of the talk was "Ajax for everything — Building better rich internet applications faster with JSF" but it turned out to be a shameless plug for Oracle JDeveloper. On one hand, yes I'd love to just drag & drop to create a web application and not worrying about the correct syntax. On the other hand it made me remember the days I tried to create a website with Adobe GoLive. It was nice to place the objects on the page, but for fine tuning you still had to dive into the code, get rid of the crap it added and place your customisations. The JDeveloper demo showed how easy it was to display and edit some (Oracle) DB table on your web application but didn't mention how to configure the DB connection. I think you still need to know a lot more about JSF before you can safely use this drag & drop interface.
BPM 2.0 by IBM
At IBM's presentation about BPM 2.0 we saw how easy it could be to manage your business process workflows from a web browser. In just a few clicks an app was created to manage appointments through Google calendar and let the whole world know it through Twitter. The workflow also included a path for what to do if the time slot was already booked. It seemed very easy and I wonder where the catch is.
REST is the new buzz word
Forget Web 2.0, maybe use AJAX in your title, but REST is the buzzword of Devoxx 2008. Luckily it wasn't only a buzzword but also the subject of one of the talks. To be honest, I had heard of REST before but didn't fully understand what all the fuzz was about and too lazy to actually read more about it. I'll only cover one talk explicitly but there were many more with REST in the subject or mentioning it.
RESTful design, patterns and anti-patterns
Stefan Tilkov walked us through REST in his one hour talk. He didn't only explain what REST is about, but also what a lot of developers are doing wrong from a REST point of view. Yes I do abuse the HTTP POST method because sometimes it's more practical, sorry for that. Now I know GET shouldn't have a side effect while POST could have. That's probably why browsers ask permission to do the POST again when you hit the refresh button. Some other developers still don't understand the use of the correct HTTP response code. If you return a 500 server error instead of a 404 not found (or better, 410 gone) when a page does not exist anymore, Google will keep the old page in its cache. If you want to learn about REST, he's the right person.
I attended two talks that afterwards didn't teach me new stuff. Too bad the programme did not mention what level the talks were meant for because these were for beginners. During these talks I tried to collect the mentioned blogs to add to Google Reader.
For the ideal world, this was an excellent talk. Tell people which common mistakes they make and how they can be solved. Maybe if I was the pointy haired boss or a freshman at college, my eyes would be opened. I hoped to hear some practical coding solutions. It was more a talk about processes that are wrong, both in project management and by the implementation team. Yes if I had enough time or if customers knew what the realistic amount of visitors were, I could apply every part of the talk. In reality visitor want their site "to perform". Or the product has to be delivered "yesterday". On the other hand, we must not forget what is told and should measure where the bottleneck is instead of guessing which part of the application performs badly.
Not my cup of tea but very interesting
Concurrent Garbage collection
Garbage collection is something I take for granted, but should I? Java should handle that for me, shouldn't it? In most cases, Well, you can't have enough knowledge about what you're doing, especially if you develop applications for the real world that are used in an uncontrollable environment like the Internet. It's very handy to know why your application doesn't perform once in a while because it's collecting all the garbage you created and throwing it away. Although I'm not a hard core Java developer the talk did interest me.
Last but not least
The future of Parleys.com
The last talk I attended showed multiple rewrites of Parleys.com. The first was a very flashy (without using Flash) version made with JavaFX. But why use JavaFX if it can be done with Google's WebToolkit. Oh, could there be an iPhone version too? Just the right kind of talk to end with around 8 p.m. after 2 very short nights. Was that all? No, parleys.com also developed a very nice application to convert and combine conference talks and the presentation into one (Flash) movie without manually having to look for the moment the slide changes or when the demo starts. It saved them hours per talk to publish the conference talk to the web and I think it's a very useful product.