“[…] it was up there with the best presentations I have ever attended. Dave Koelle was awesome. He presented the story clearly, coherently, with a touch of humor, and a lot of enthusiasm. The room, containing 136 people, as I later found out, was clearly totally engrossed in his story. I saw many nodding heads when Dave talked about the frustrations of MIDI programming. He had some great slides that showed long code listings of how things are done traditionally and how they are done with the JFugue API. And he played bits of music to illustrate his point, showing how the music was constructed.”
Michael Nascimento Santos reported (Link):
“From Thursday, I would like to highlight the excellent JFugue talk delivered mainly by David Koelle and with special guest star Geertjan Wielenga. David is a terrific speaker, his work is amazingly cool, his demos rocked and he managed to be funny. Geertjan […] focused on demonstrating how JFugue was simple to use, which just makes more people interested in his application and, well, NetBeans. So, another note to J1 selection team: we want more music-related talks, preferably with David!”
JavaOne itself was a blast. I met lots of interesting people, including many names in the industry that I’ve been wishing to meet, and forged new relationships. In addition, some of the technology was pretty cool, particularly SunSPOTs and some of the latest in Filthy-Rich Clients. JavaFX was cool, but I think it still needs a little work to complete with Flash and to integrate unidirectionally with Java itself.
As my follow-up act to JFugue, which brings easy music programming to the masses, I had already started work on another API that would allow for easy animation programming. Sprites and animated graphics are not trivial; like JFugue, my new animation API would make animation possible in only a few lines.
However, it’s possible that my animation API has been made redundant by some things I’ve seen recently on the JDesktop and SwingLabs sites. Specifically, Chet Haase has been working on a timing framework that makes animation (and other time-based control) easier. I’m pleased that Chet and I had very similar architectures for our timing mechanisms (including the use of interpolators). I might as well use his, since it’s already out there!
Switching gears ever so slightly, Romain Guy is one of the people behind Aerith, a very cool “smashup” (Swing mashup) of Google Maps, Flickr, and Yahoo’s geoocoding webservice. The UI is incredibly pretty, and it’s easy-to-create Web 2.0-ish client apps like this that will result in a resurged interest and appreciation for Swing.
Chet and Romain are working on a book, Filthy-Rich Clients (here‘s a related presentation), about these super-pretty user interfaces that use motion and animation to produce a more engaging user experience. Their book will be released in time for JavaOne – I am very much looking forward to getting my own copy!
Finally, I can’t mention all of that without also mentioning that Joshua Marinacci, also one of the Aerith guys, has been working on Painters, which are encapsulate bits of graphic code. Painters were used to do some of the neat Aerith effects.
So, what does this mean for my animation API? Well, it seems that there’s still no good sprite/graphic animation API out there. I think I’ll continue my development, but I’ll leverage Chet’s timing framework. And depending on how much time I have, you might get a sneak peak of my new API in action during my JavaOne technical session!
While we’ve always been able to download the source code to see what goes on behind-the-scenes in Java’s classes, this is the first time that the javac compiler and JVM code will be revealed. Sun should finish releasing the source code to its implementation of the Java specification by the first half of 2007 (ref).
What they won’t be releasing is the programming language or specification itself; this is goverened by the Java Community Process (ref). And, the license under which this is being released is the “GPL with Classpath Exception”, which means that your product doesn’t have to fall under the GPL just because it includes Java (ref – and with the obvious caveat that I am not a lawyer. FYI: Common misconceptions about the GLP license).