JavaPolis this week in Antwerp
December 14th, 2007 at 10:29 pm by Jesper de JongThis week JavaPolis, the big European yearly Java conference, was held in Antwerp. Like the previous years, Monday and Tuesday were the “University” days and Wednesday, Thursday and Friday were the “Conference” days. I went to the Conference days.
On Wednesday, James Gosling, who was at JavaPolis for the first time, held a keynote presentation about the state of the Java universe. In the beginning of his presentation he mentioned some numbers, such as that there are 5 billion (!) Java enabled devices worldwide. Java really is everywhere. Almost everything that you do in the modern world somewhere goes through some system that is running Java, from your mobile phone to online banking. It’s so pervasive that you can be sure that Java is here to stay for a long time into the future. Also, Java is still getting better and faster with every release. The performance of Java 5 is 284% and Java 6 is 344% of Java 1.3. Gosling was also very enthusiastic about Netbeans 6.0, which has been released a few days ago. In fact, if you’re still using Emacs, then you should “go shoot yourself”, he said jokingly.
After James Gosling, Bruce Eckel, famous for his “Thinking in …” books, explained what an OpenSpace Conference or “unconference” is.
After the keynote I went to see OpenJDK: The First Year by Mark Reinhold, the Chief Engineer for Java SE at Sun. He spoke about the process of open sourcing Java, what the difficulties were and are and how the process went the past year and where it’s going. Most of the JDK is open already, but about 4% of the source code is closed at the moment and another 8% is open but not under the GPLv2 license. Parts that contain closed or non-GPLv2 code are the graphics rasterizer, font rasterizer, imaging APIs, sound engine, crypto providers and some SNMP code. There are already some projects underway by different people to make open source implementations of those parts and Sun is also negotiating with the parties that they bought the original closed code from. For some parts it was relatively easy, such as the font rasterizer, because there is already a free and open source implementation available (FreeType) which could be incorporated into OpenJDK without too much effort.
At 14:00 on Wednesday I went to Filthy Makeover by Chet Haase. He showed some programming techniques to make your Swing application look really nice and how to add animations to the GUI. I bought the book Filthy Rich Clients which he wrote together with Romain Guy.
In the afternoon I went to Practical JRuby on Rails by Charles Nutter, who is one of the guys working on JRuby at Sun, and Ola Bini. We had a Ruby on Rails workshop here at LogicaCMG a few weeks ago so I already knew a bit about Ruby on Rails and the talk was interesting. Unfortunately Charles and Ola didn’t have time to show how you can deploy a JRuby on Rails application in a WAR file on Tomcat, which I would have found interesting. You get tools with JRuby to do this, it involves using a servlet called Goldspike. I’ll have to try it out myself someday, when I have time…
Thursday I was late and missed the keynote… But there were a number of interesting sessions. First I went to the presentation about Scala by Martin Odersky. Scala is a programming language that runs on the JVM and that combines object-oriented and functional programming paradigms. The name stands for “Scalable Language”. Martin Odersky was hired by Sun a few years ago to try out some new language features such as generics, which were added to Java in version 1.5. Scala looks interesting, I’d like to have a closer look at it, but there are so many other things I’d also like to have a closer look at… 24 hours in a day is just not enough for me to look at everything I’d like to look at.
After lunch I went to a presentation by Joshua Bloch, one of the people who designed and implemented a large part of the Java platform at Sun (he now works at Google). His presentation was about the proposal to add closures to Java. If you’re following this, you probably know that there’s a bit of controversy about this topic. In his presentation, Josh Bloch pointed out many problems and difficulties with the closures proposal. I haven’t followed the closures proposal in depth, and I assumed that it would probably be an interesting feature to add to Java, but this presentation changed my mind. Josh showed how complicated and totally unreadable Java would become with closures and I agree that we should be very careful with adding such features to the language. Especially the non-local returns feature looked ugly, error-prone and confusing to me. Probably the advantages don’t weigh up to the disadvantages. We’ll see what happens. The closures debate with most likely not be finished before JDK 7 is released, so it will be some years before this is added to Java, if it’s added ever at all.
At 15:10 I was at the Java Posse live podcast recording. The Java Posse is probably the most famous Java podcast and it’s one of my favourite podcasts. Two of the Posse members (Dick Wall and Carl Quinn) were at JavaPolis, while the other two (Tor Norbye and Joe Nuxoll) were at home in the USA, they joined via a Skype connection with video and audio. There was free beer and it was fun to see the Java Posse guys and to be there. After the quick news items, they interviewed Josh Bloch and Neal Gafter (who wrote the Java compiler at Sun, now works at Google, and who leads the closures proposal that Josh talked about). They talked mainly about (potential) new language features for Java 7. Go and download episode #154 of The Java Posse and listen to it! (It’s not yet available at this time, but will be very soon).
Today, Friday, there was no keynote presentation. In the morning I went to see A Kanban System for Software Engineering by David Anderson, which was about a method to manage software development projects using a whiteboard to keep track of issues, bugs and other work items using a set of rules. It looked interesting although project management is not really my main interest.
The second presentation was about high-performance 2D and 3D graphics applications in Java by Frank Suykens from Luciad. He had an impressive looking demo of two applications, one with 3D graphics and one with 2D graphics, for air traffic control, and he explained that the 2D graphics application was a soft realtime system (one of the requirements for this application is that the screen updates every 300ms). He went into some technical detail about tuning garbage collection. Both applications use OpenGL for rendering the graphics via JOGL. He concluded that Java is very well suited for high-performance and even soft real-time graphics applications.
After lunch I went to Innovating (with) Java by our own Martin van Amersfoorth. He first compared developers to naked molerats (?!), which is a very ugly kind of African animal. He explained how innovation works and also talked a bit about LogicaCMG’s Working Tomorrow program, which is an program for students who want to do an interesting, innovative project as their graduation work.
Finally, I went to Test Driven Development by Lasse Koskela. He explained what test driven development is and what different approaches there are to it, and he did a live demo with an idea from someone from the audience: calculating volleyball scores. I knew Lasse beforehand from JavaRanch but I’d never met him before, so it was nice to say hello to him in person.
And that was JavaPolis for this year. It was once again very interesting to meet “the big guys” and to see what’s happening in the world of Java.
JavaPolis’ organiser Stephan Janssen has a great website, Parleys.com, on which all video, audio and presentations of JavaPolis will be posted in the coming time. It’s a very nice website; you can see the audio and video along with the slides, and everything will be made available on there for free, so you should certainly have a look there.
Popularity: 253 points


December 17th, 2007 at 4:25 pm
There’s really no reason why you would bother to deploy Rails in a java web container. Use Grails instead, which is a similar concept, but based entirely on Java (through the power of Groovy). Here’s what I wrote about it on this blog a month ago:
Grails is a Groovy version of Ruby on Rails, combining the power of Spring, Hibernate and Groovy. Grails will generate all the scaffolding needed to run a web-application, and almost no code is necessary, except the writing of POJOs. Because of that, creating an application from scratch is fast as lightning, and the generated code is straightforward and easy to change. When a POJO has been created, Grails will both create the GSPs (Groovy Server Pages) and the database. The POJOs are mapped to the database tables using GORM (Groovy Object Relational Mapping) which is nothing more than a wrapper on top of Hibernate. Of course there’s an extensive tag library for use in the GSPs, which does all the dynamic stuff you need, ajax included. Needless to say, the most popular ajax-frameworks are also easily available from within Grails.
January 5th, 2008 at 1:57 am
almost agree …. humm actually not agree at all. The dynamics of Ruby, the language, have been the most important reason Rails is as powerful as it is. Grails on the other hand is indeed better integrated with the Java runtime environment, aka the platform, but lacks the actual power that is only visible behind scenes. But, and here comes the ‘almost’ in place, there are two reasonable comments to made. 1). Do we *really* need all ruby dynamics? and 2) Groovy seems to be moving in a very good direction and seems to adopt some of the dynamics of Ruby so Grails might profit. Maybe the real ‘humm’ is more about clones in general: Whenever a clone of something becomes useful, either this clone has been a successful subject of marketing or the cloned one is soon going to be replaced by something more useful.