NetBeans Day 2005: A Huge Success
It started with a bang: loud rock music that set the mood. It ended with a reception where there was ample laughing, talking, and general celebrating. With over 550 attendees, NetBeans Day 2005 was a huge success!
The program started with Hideya Kawahara talking about and demoing Project Looking Glass. You might be wondering how Looking Glass is connected to NetBeans. Well, a lot of the code is written in Java and NetBeans is the Java Integrated Development Environment (IDE) that Hideya uses. My colleague Charlie Hunt has written an excellent article on how to use NetBeans to easily check out the code and then build/run Looking Glass. Besides, the demo is fun to watch so we invited him to NetBeans Day! And as expected, the demo got quite a response from the crowd.
Next up was Rick Ross of Javalobby. He did an excellent presentation that provided a historical perspective on NetBeans. One of the items he discussed was the importance of competition in the Java IDE market and the big impact that NetBeans has had.
Rick Ross was followed by Sun's number one blogger: Chief Operating Officer Jonathan Schwartz. Jonathan helped Todd Fast make an important announcement: code-aware developer collaboration will be added to NetBeans. What is "code-aware developer collaboration?" The easiest way to think about is this: instant messaging (IM) inside your IDE. But it is not just an IM client. You can share windows and even allow another developer to run commands on your system. For those of you familiar with Sun's Java Studio Enterprise (which is built on top of NetBeans), this feature is not new. Today's announcement was that this functionality is being open sourced and put into NetBeans. I will write more about this in the future.
After that, the demos started. Superstar NetBeans blogger and Dave Matthews look-alike Roman Strobl started things out with a two part demo. Part one was a set of features that are already in NetBeans that folks might have missed. These are shortcuts that can make coding faster and life easier. Part two was a look at some cool new stuff in the upcoming NetBeans release: improvements to the editor, additional types of refactoring, and every user interface developer's favorite: Project Matisse. Roman's partner on stage for these demos was another of our very talented NetBeans folks from Prague: Jan Becicka.
Out of all the stuff Roman and Jan showed in part one of their demo, I am picking two favorites: smart selection and the error stripe. Smart selection is not something I use very often, but it is handy in special cases, especially when refactoring code. Here's an example:
The entire text of actionPerformed() is selected. I did this without moving the cursor! The cursor was on line 217 at the end of "status." I pressed Alt-Shift-S and the editor selected "status." I pressed Alt-Shift-S a second time and the editor expanded the selection to include the entire line. Repeated pressing of Alt-Shift-S expanded the selection to the next level in the code, so that in this example I could select the block of code in the if statement, then the entire if statement, and so on. I stopped once I had the entire method selected. An additional press of Alt-Shift-S would have selected the entire class. Alt-Shift-A works in the other direction: it narrows the amount of code that is selected.
I want to mention the error stripe for two reasons: thousands of people have asked for it (myself included) and it is not in the NetBeans 4.1 installation. Why is it not installed by default as part of 4.1? That particular feature did not make the deadline for 4.1. Fortunately, it is available on the NetBeans Update Center. Select Tools > Update Center and then connect to the Update Center. You will see four modules listed under Libraries, each beginning with the words "Error Stripe." Download and install those and then you too will have an error stripe along side the scroll bar in your editor window:
The coolest thing Roman and Jan showed in the second part of their demo was Project Matisse. But I've written about it before
Okay, back to Roman and Jan's demo; I want to highlight my other favorite new feature: editor hints. These are little light bulbs that show up on the left edge of the editor window. Clicking the light bulb (or pressing Alt-Enter when the cursor is on that line) causes the editor to display some options. For example:
After I selected "Surround with try-catch," the editor changed my code so that it looks like:
Very handy. After Roman and Jan finished, I got up on stage and demoed three tools that provide monitoring and profiling. These tools let you see what is happening inside the JVM as your program is running. All three are available today as plugins for NetBeans 4.1. First up was the VisualGC plugin, which integrates VisualGC right into NetBeans. I followed that with a demo of the JMX plugin. It was developed by the JMX team and it has two really nice features: wizards for quickly adding JMX functionality to your application and shortcuts for running your application with JConsole. There are two very nice articles available from Jean-Francois Denise: a getting started guide and a tutorial.
I finished my demo with the NetBeans Profiler, which I have written about before, most recently in this entry. During my demo I talked about how JDK 5.0 Update 4 provides the support needed to use the Profiler. That piece of news got a very positive reaction from the crowd.
My demo was followed by a really cool JXTA plugin demo that was done by Bernard Traversat and James Todd. Remember that collaboration stuff I mentioned earlier? They've taken that feature and replaced the low-level guts with a JXTA service provider. So, no central server!
After that, I went over to the session on Sun Java Studio Enterprise, which was done by Prakash Narayan and Robin Smith. They explained the value proposition provided by Java Studio Enterprise and did some demos. The load testing feature they have looks handy, although I've never tried it. Praveen Savur helped them out with a UML demo. If you're into UML they have support for forward and reverse engineering. You can even do some refactoring from within a UML diagram.
During the final hour of presentations, I listened in as my colleague Tim Boudreau did a presentation on how to build plugins for NetBeans. I will write more on this topic in the future. In the mean time, if you are interested in building NetBeans plugins, in addition to Tim's blog be sure to check out Geertjan's blog.
After the technical presentations there were some awards. NetBeans is a community, and there are some people who have made outstanding contributions to that community. The NetBeans Community Awards were presented by James Gosling. This year's recipients were Vincent Brabant, Maxym Mykhalchuk, Manfred Riem, Bruno Souza, and Rich Unger. Each recipient was awarded a cool piece of original James Gosling art, a framed certificate, and a brand new ultra-fast Sun Ultra 20 workstation.
In addition to giving out awards, James Gosling also did a Matisse demo of his own. He brought Romain Guy up on the stage to assist. They showed Matisse being used to layout a form that used several of the data-aware components that are being developed by the SwingX project. In just a few minutes they assembled a fully functional MP3 player application. If you didn't see it and are attending JavaOne you will have another chance - it will be part of the keynote on Thursday.
So to sum it up: NetBeans Day 2005 was a fantastic success!