Day 4 started with a keynote held by Marc Fleury inventor of JBoss. This was the craziest presentation so far and more like an Eminem show than the normal “technical” style of presentation. Afterwards Erich Gamma spoke about the Process they are using developing Eclipse in a highly distributed environment. Our project could learn a lot from these techniques because we are facing very similar problems. He also showed IBM’s upcoming team development tool called “JAZZ”.
Next to the keynotes I attended the talk about Grail hold by the inventor of Grails Graeme Rocher. Once again it was very interesting to see a dynamic language environment in action. Grails can be seen as kind of a façade for frameworks like EJB, Hibernate, Spring … which is written in Groovy. The goal is to provide Java newbie’s an easy start into the complex world of Java where you do not have to touch one single XML file to build for example a web application.
After lunch I first attended the talk about JSR-277 Java-Module-System by Stanley M. Ho leader of JSR-277. The goal of this JSR is to eliminate the problems that come with the JAR deployment (e.g. CLASSPATH hell, JAR hell). There this JSR describes a new packaging format as well as a new language feature which is coped in JSR-294. Afterwards I attended the talk called “Dynamic Applications with Faces and Ajax” by Roger Kitain the lead architect of JSF at SUN. This talk was about the possibility to ajaxify the JSF components today and how to integrate this into the upcoming JSF 2.0 standard where this point will be a major one.
Neal Gafter’s talk about Closures for Java was besides Brian Goetz’s talks one of the most fascainating one. Those guys really know how to talk about a very complex topic in a very clear way so that almost everyone can understand it.
I was closing the day with Ted Newards talk about Interoperability between Java and .NET. This was one of the funniest talk. Ted is a very funny guy but he also has a lot of very deep knowledge in the field of both frameworks. I think his day must have more than 24 hours.
December 15th, 2006
The keynote was hold by representatives of the sponsors of the JavaPolis 06. For Oracle presented their Application Service Suite and Sun of course was proud to officially announce the version 6 of Java as well as the movement from Java to open source.
The first talk I visited on this day was about Apache Tuscany hold by Andrew Borley. The decision for this talk was based on a conversation I had recently with my colleague Michael about thinking to use Tuscany in our project. The summary of this talk is that Tuscany seems to be a great to solve the problem of tying services together but it seems to be not production ready at the moment for our project needs.
After lunch Peter and I decided to watch Failure Happens by Bill Venners. This talk was mainly about best practices in Exception Handling. Afterwards we were watching the Brian Goetz sessions: Effective Concurrent Java and Java Performance Myths. The first session was about best practices in concurrent programming, most of them taken from his book. As I am already reading his book there was not to much new in it for me nevertheless watching Brain Goetz is an incredibly experience. The second part about Java Performance Myths was very impressing for me. He stated that in the beginning of Java (release 1.0), Java was really slow in every part but this has changed a lot till nowadays. The problem today is that there are a lot of “do it that way and you gain an performance improvement” on the web which maybe were useful (most of them were not) but nowadays can have a large performance decrease. The best way is just to get your program right and only if you experience performance problems then measure them and if you figured out the problem improve that piece. In most situations the JVM is a much better performance booster than the normal programmer. For example in modern JVM’s the allocation and deallocation of memory for Objects is more efficient that the C version malloc/free. He also stated that due to the dynamicity of the JVM it is very hard to do benchmarking and if you do not understand what’s the JVM doing internally you should never rely on Micro benchmarks. The reason for that is that you do not know what happened during measurement. It is possible that the class was interpreted or already compiled to native instructions or was in the progress of being compiled. There are much more things to consider one thing I’d like to mention is code erasure by the JVM. Most times when you write Micro benchmarks you do not use the computation result you wanted to measure but this could cause that the JVM erasures the code for computation and you are only measuring the time between where nothing really happened besides the System.currentTimeMillis() call.
In the evening we were attending the “Free Beer” session called “Meet and Greet” where we were drinking free beer with some of our “idols”.
December 15th, 2006