Saturday, May 12, 2007

JavaOne Day 4 - Toy Show, Comparing (G)Rails and JavaEE, DTrace in Java

JavaOne 2007 is over, it's time to put the conference badge away and start working on the ideas that I was inspired with. It's a damn long list. I should ask my manager for a week off now (if not more) to have enough time to scratch the surface of things on my TODO list. Rama? :)

Friday was the Toy Show day. If you didn't attend, check out the video online, it was quite a show with a lot of interesting and inspiring demos.

From the sessions:

I went to a session called "Comparing the Developer Experience of Java EE 5.0, Ruby on Rails, and Grails: Lessons Learned from Developing One Application". Having a year of experience developing Rails applications and a couple of years on and off with JaveEE, I was mainly interested in seeing how Grails compares to these two.

The session was somewhat disappointing, mainly because the guys running the session were coming from the JavaEE world and all they were trying to prove was that JavaEE is still the best choice nowadays. Don't take me wrong, JaveEE is certainly a cool technology and has its place in the industry, but there are often better ways to solve some problems or parts of complex problems.

The worst of all was their benchmarking strategy. Comparing Rails running on WEBrick to Grails and JaveEE applications running on Glassfish and Sun Java System Application Server is nonsense. That's like comparing PHP application with Derby backend to JavaEE app with an Oracle or Postgres cluster as the backend. I think that there is a pretty good reason why Sun doesn't bundle Java with Postgres as Java DB but uses Derby instead. WEBrick has it's place in the Rails world, but it's certainly not a production server that scales well.

Also if you create a CRUD application in Rails using the scaffold method instead of the scaffold generator, as they did, you might as well recompile your JSP pages for each request in the JavaEE application to be fair. So the benchmark was flawed for many reason.

I wish they benchmarked the Rails app deployed on a recommended production setup or even more interesting would be to see how the Rails application deployed as a WAR on Glassfish performs. This is one of the things that is on my long TODO list to do after JavaOne.

I also went to a Java DTracing session ("Cranking Up Java Application Performance with DTrace"). Adam Leventhal, one of the creators of DTrace, obviously knew what he was talking about and Jarod Jenson, a consultant specializing on DTrace was truly amazing - throughout the session he was typing like a crazy monkey and DTracing applications in real time! If they make a video of this session available online, this is definitely something you want to see :).

It wasn't big news that it was possible to DTrace Java applications. The limited support was there in JDK 5.0, but with JDK 6.0 things have improved by heaps. There is a lot of new probes in the JVM and these probes can be enabled without even restarting the application! JDK 7.0 will bring support for creating user defined probes in Java applications. This will be a major step forward.

Overall JavaOne was really good, I had a lot of fun and enjoyed it a lot. Too bad that it lasts only four days. I'm already looking forward to next year's conference and I'm definitely going to do everything in my power to come again!


rama said...

week of vacation? I just sent you to a week-long conference after being on the job for a month. One thing at a time. ;)

Igor Minar said...

Don't worry. I don't take that for granted. :-)