JavaOne Day Three

JavaOne Day Three

Last night I went to a couple of BOFs (Birds of a Feather sessions). The first one was on the new Tiger features. This was mostly Q & A and requests for new features in J2SE (the C# analog would be in the language and BCL, with a few runtime issues thrown in).

Having an organized panel event to do this is a very interesting thing to do, and there were a bunch of people who came to listen rather than ask specific questions. It’s sort of like a cross between what we do at “Ask the experts” and our cabana sessions, but I think the fact that it’s both community driven and public makes it different from what we’ve traditionally done. We could do more in this area.

The second BOF was on Eclipse, but I didn’t last since it was all about people writing packages for Eclipse, not users of Eclipse. I met up with Luke Hutteman (SharpReader) for a drink afterwards.

All the Platinum sponsors get their own keynotes, and I decided to skip the Nokia one this morning. There is a lot of Java stuff in the mobile space, but I think that this will remain a niche market for a fair amount of time. Some companies will make good money here, but it doesn’t have the opportunity you’d find in the web or rich client (or even PDA) area. The number of downloaded ring tones has been mentioned a couple of times at the conference, but I don’t think there is a strong connection between that and downloadable software. Yet.

What’s new with NetBeans IDE

Steve Wilson, engineering director, netbeans

3.7 million downloads since June 2000
70,000 on the mailing list

Interestingly, from a show of hands, many people use the IDE, but very few (<5%) use it to build rich clients.

The talk was very much a feature dump, so it wasn’t terribly informative. They did start with a release roadmap:

3.5.1 August 2003
3.6: April 2004
4.0: Q3 2004
4.1: Q4 2004

Features they talked about:

• New look and feel (not using “metal”)
• Code folding (aka regions in VS)
• Auto-hide windows (as seen in VS)
• Automatic refactoring. Their approach seems very similar to ours – they are using the javac compiler to get their program information, and they support a similar set of refactorings (rename, extract method, etc.). They also do preview. It wasn’t clear whether they do cross-project renames
• Ant-based project system (they had no real project system in the past)

The big thing that they demoed (after a few demo problems) was integrated support for JFluid. This is a technology that allows for dynamic bytecode injection into an already running code, and they’re using it for application profiling.

The demo is fairly impressive. Not only do you get CPU and memory profiling as you run your application, you can walk up to an already running application, do some profiling on it, and then leave it the way that you found it.

I know that we have some profiling support in VS Team System, but I don’t know the details, so I won’t attempt to make a comparison.

Java Studio Creator Model and Architecture talk

The Java Studio Creator product is Sun’s value-add on top of Netbeans. I didn’t know enough about how beans work for this talk to be of much use.

Aspect-Oriented Programming: Great new thing or great leap backwards?

• Gregor Kiczales
• Graham hamilton from Sun
• Cedric bust – BEA
• James Gosling

This was an interesting panel discussion. Gregor spent a few (8) minutes on a discussion of the “what and why” of AOP.

Some of the area of application mentioned were:
• Design patterns
• Swith thread safety
• Policy enforcement (authenticaitno, synchronization, architecture)
• Transaction

There was common agreement that there current weren’t a set of “right rules” for safe AOP.

I found a lot to like in Gosling’s position, which I’ll paraphrase (probably poorly):

Gosling – you can always find ways where it’s easier to slice it one way or to slice it the other way, in nouns or verbs, and as systems evolve, you end up with a quadratic explosion in code complexity.

The point here is that O-O cuts the system one way – in terms objects and methods – and AOP cuts the system in another way. Some things are easier in O-O, and others are easier in AOP. But when you put them together, you have to deal with the complexity of both approaches.

There was some discussion about when/whether AOP will get to a final state, where it seems obvious what to do. Gosling likened the current situation to a food fight, and noted that there is still food in the air.