JavaOne 2007 – Day Four
Now for the final stretch of this year’s JavaOne conference: the pavilion closed on Thursday and we dismantled the booth pretty quickly. After half an hour everything was packed and we took our equipment back to the hotel. Hence, today I could really enjoy the conference without any booth duties.
“Comparing the Developer Experience of Java EE 5.0, Ruby on Rails, and Grails” looked really promising to me. I know Java EE from real programming practice, Rails and Grails just from reading some articles. The speaker, Thomas Daily, had a funny Australian accent and made quite a good show. He demonstrated how easy it is to create a simple CRUD application with all three technologies. For Java EE he had to use heavy machinery (i.e. NetBeans), though. He then presented some performance benchmarks which claimed that Java EE scales way better. The runner-up was Grails, followed by Rails. Tom Daily was somewhat biased towards Java EE (he doesn’t work for Sun for no reason), although his final recommendation was to use the tool that best fits the application. What I missed in this talk was some statements about maintainability. I would have liked to see how each of these environments coped with new requirements.
Hard core stuff was up next with “Cranking up Java Application Performance with DTrace“. DTrace allows to run instrumented code with zero impact on performance. At run time you can activate/deactivate probes in a live system. Right now, DTrace is only available on Solaris 10, but it will be available on at least one other operating system later this year. The Java VM is also instrumented, which allows to use DTrace at run-time for Java applications as well (Java 5 and newer). For Java 7 it is even planned to allow for statically adding probes to the application code. DTrace can produce a vast amount of tracing data in almost no time but the DTrace language helps to filter and aggregate this data. DTrace solves the developer’s dilemma: adding tracing statements is necessary for systemic analysis but even when switched off it usually has some impact on performance.
Java Champion Adam Bien gave a talk on “Java 6 Platform, Java DB, Swing, JNLP, Java Persistence API: The New Operating for Rich Internet Applications“. He covered a lot of ground in one hour and proved to be one of the überarchitects. Adam Bien strongly recommended to use business objects (i.e. real objects with state and behaviour) rather than SOA with dumb objects such as DTOs. The Java 6 platform and JPA make it even possible to run these business objects either on the server-side in an EJB container or on the client side outside of a container. However, I missed two topics. First, he talked a lot about the thin client challenge by which he did not mean real thin clients (i.e. presentation logic is on the server-side) but “thin clients” with just the presentation logic running on the client side. Some of these challenges do not come up with server-side presentation logic. Secondly, he should have at least mentioned approaches how to synchronize client-side database changes back to the server. Nevertheless, get hold of the slides and dive into this wealth of information.
I closed JavaOne 2007 with Neil Gafter’s “Closures for the Java Programming Language“. Neil Gafter is a brilliant speaker: perfect pace, well pronounced, deeply reflected – it’s just a pleasure to listen to him. He started with a number of cases where anonymous classes are not sufficient and argued how closures would help. Some of the code examples reminded me of my code and how I had to work around the limitations of anonymous classes. I used to develop in Smalltalk for quite some time and blocks are as natural as recursion (quoting Neil Gafter). He also argued how the Java API could be improved with closures. However, I am still undecided whether the Java language should be extended with closures. What once was a fairly small and clean language is gradually turning into a dreadnought. Java should have offered closures from the very beginning; adding it as an afterthought might have too much negative impact.

Adam Bien said,
May 28, 2007 @ 2:40 pm
Hi Guys,
thank you for the review of my session. My problem was the time – and the restricted amount of J1 slides
.
I would love to talk about synchronization, but in that particular session I wanted to emphasize the return of objects and some data binding ideas. Data Synchronisation is the next, logical step. Do you think there were still time left for the synchronization stuff ?
regards and thanks,
adam bien