Awards and cool tools June 8, 2001— During this year’s JavaOne conference, the sessions covering low-level APIs were only about half full — in contrast to previous years, where they were jam packed. Meanwhile, the application template and design patterns sessions were filled to overflowing. The implication is that tool builders and system library providers no longer dominate JavaOne; application developers — people who are using the language and its libraries to solve real-world problems in real time — are taking over the conference.It’s a sign that the platform is maturing and that Java is ready for prime time. In keeping with that theme, this wrap-up article presents the As-I-See-It Prime-Time Awards. It then finishes up with a look at a couple of marvelously cool tools you’ve just got to have.The As-I-See-It Prime-Time AwardsIn keeping with a tradition that has been going on in my JavaOne wrap-up articles for several years now, I hereby present the following collection of ersatz awards, all of which have been bestowed after a careful deliberative process that took well over 100 milliseconds. Stand-Up Comedian AwardPresented to the most entertaining speaker of the show, Gilad Bracha, for his presentation on Java generics. It was hard to get all of the pearls, but here’s a small sample:On one of the code authors: “Actually, he was involved in the early days. But we haven’t been able to eradicate all of his code…”On the spec: “It’s fairly conservative. We didn’t want to do a live experiment on 2 million developers.”On the 1.4 compiler: “Actually, it’s a lobotomized version of the generics compiler.”On a particularly complex example: “If you’re familiar with functional programming, you’ll recognize this example. If not, the mental gymnastics will do you good.”Rock Star AwardFor the session with the longest line of attendees and the largest number of people turned away at the door, this award goes to Joshua Bloch (the author of the Java Collections API) for his talk on effective Java programming. If you are one of the hundreds who missed the talk, or one of the thousands who wish you could have been there to miss it, then buy his book, Effective Java Programming Language Guide, (Addison Wesley Professional). It features even more of the wisdom he has collected on elegant and effective Java programming.Most Unheralded Cool New Technology AwardVisiComp’s VisiVue: the most amazing new technology you’ve never heard of is an awesome tool that exposes a program’s inner workings in the form of animated graphics. We’ll take a look at that in the next section, along with a cool customizer for the GridBagLayout.Cool tools you can’t live withoutTo finish up this year’s coverage of JavaOne, here are some super cool tools that you’ll want to have in your tool bag, right next to your power drill and chainsaw.Make GridBag usable!GridBagLayouthas always been a powerful layout management tool that is murderously difficult to use. It could do everything you need, if you could only figure out how to use it.Well, help has arrived! At the session on Java look-and-feel guidelines, Jiri Mzourek, team lead for the NetBeans user interface team, announced a freely available customizer tool for GridBagLayout(see Resources.) Mzourek went on to say that buttons were best aligned by putting them in a panel that uses a plain GridLayout. But the free GridBag customizer makes a great choice for lining up those panels with the remainder of the components in the interface.Expose your codeHow would you like to look inside your program and see what it’s doing? How would you like to watch it populate its data structures, see which thread is active, and watch the thread of execution as it winds its way through the application?VisiComp’s VisiVue application animator does just that. As your application runs, animated graphics appear that visually display the program’s operation. The result takes advantage of the human capacity for dynamic pattern recognition: You can see things that are going on in your program that would be hard to detect any other way. For example, one demo showed the growth of a binary tree as input data arrived. Watching a lopsided tree growing on screen can quickly point out the folly of using that algorithm for sorting when the incoming data is mostly in order at the outset.A second demo showed a hashtable, with most of the data going into the last bucket instead of being randomly distributed, which indicated that there was a bug in the algorithm. It turned out that bytes of the data were being combined with an OR operation, instead of exclusive-OR, with the result being that the hash indexes tended towards the largest possible value. That’s the kind of bug that could easily go undetected for the life of the application.In addition to logic bugs, watching the program operate at runtime can also highlight performance bottlenecks. Sure, you could use a performance measurement tool and receive accurate data that you can analyze and compare to subsequent runs. When performance is critical, that’s the right way to solve the problem. But when you just want to know where the program is spending its time, an application animator can give you a window into the program’s operation that makes major bottlenecks obvious. In contrast to VisiVue’s transparent window, a standard debugger gives you what VisiComp CEO/CTO Ron Hughes described as “a hole drilled in a black box.” You can see a single point in the program’s operation, but you don’t get a sense of the overall flow. Both tools are helpful. Both are necessary.VisiVue works by implementing the class file byte codes — by inserting extra instructions into the class file to perform the graphic operations. Sun’s HotSpot Virtual Machine or another VM can then run the resulting class file. Hughes indicated that the instrumentation tends to make an average application run 16 times slower — but the resulting graphics can still be too fast to follow, so a throttle was added to let you slow it down even further.The ability of the VM to run a program while simultaneously carrying on statement-by-statement graphic operations says a lot about the underlying platform’s speed and the quality of the graphics engine it includes. The dynamic illustration of those performance characteristics, coupled with the coolness factor of the application, no doubt account for the fact that, during his keynote, James Gosling, vice president and fellow at Sun Microsystems, invited Hughes up on the stage to demo VisiVue. Since a program typically includes hundreds, if not thousands, of data structures, VisiVue includes a filtering capability so you can choose the structures you want to see. All in all, at 79, it’s a heck of a cool tool that lets you see what your program is actually doing, thereby allowing you to see if your program performs the way you expect it to. That kind of information can be invaluable.Eric Armstronghas been programming and writing professionally since before there were personal computers. His production experience includes artificial intelligence (AI) programs, system libraries, real-time programs, and business applications in a variety of languages. He wrote The JBuilder2 Bible and authored the Java/XML programming tutorial available at http://www.java.sun.com/xml. Java