The Source for Java Technology Collaboration
User: Password:



Tom Ball

Tom Ball's Blog

Jackpot's Coming (Finally!)

Posted by tball on March 03, 2006 at 11:05 AM | Comments (7)

Patience is a virtue? I never really learned that growing up, and impatience has served me and most of my fellow developers much better in our careers. So it's been a frustrating time since JavaOne lining up my ducks (an expression which probably doesn't translate well, but visualize how hard that would be) to make Jackpot available. Yesterday we had a big breakthrough, though, with marketing buy-in for a phased release plan. "O frabjous day! Callooh! Callay!� He chortled in his joy."

There were two important requirements for a Jackpot release: provide a public, stable API that doesn't reference any javac internals, and fully integrate it into the IDE environment. The good news is that the read-only Java model developed by the javac and apt teams is now almost finished and Jackpot's API has been converted to reference it. Yes, the JCP process is painfully slow for those of us who lack patience, but both teams have delivered great work that should stand the test of time.

I have been moving more slowly on the IDE-integration front, but things are looking up. Because of the focus on rewriting the engine to use the new public APIs, I haven't had time yet to write any killer transformations. The early release will therefore just have sample commands which demonstrate Jackpot's potential, so expect some disappointment when you first try it. Its UI is also much too modal: you start a "session", invoke queries and transformers, then end the session to save the changes. To make matters worse, if you edit any files in the middle of a session, the session is invalid but you won't be notified of that until you try to save. My apologies for creating such a bad interface, but it's temporary.

This week's other good news is that because NetBeans 5.5 is now in preview, I will finally get some help from the overworked NetBeans UI team. We've only had one meeting so far, but I left with several excellent ideas for better integration of Jackpot and thus a better UI. Let my mistake be a warning to others: just because you are a good coder (or even a former Swing architect) doesn't mean you are a good UI designer. I never thought I was very good at design, but this meeting reinforced that awareness of my limits -- I guess once a systems engineer, always one.

So the current plan (don't call it a schedule) is as follows:
  • Early-access release in a week or two, as soon as I can pull it all together for distribution. This release will be focused on engineers interested in exploring Jackpot's rule language and API so they can write their own queries and transformation (you can join the project here). We're looking to attract smart engineers who want to create and contribute transformations for the rest of the world to use. As I said, the UI will be rough and the included set of commands very limited, so this release won't be of much interest to folks who just want to use canned commands. This first release will just be NetBeans binary modules, since I don't want to hold up access while going through the open source process steps. Source code for the distributed queries and transformers will be provided as samples, however.

  • Because we'll be distributing Jackpot via the NetBeans Development Update Center, there will be frequent updates depending upon community feedback. We'd like as much feedback and response as possible, similar to Swing's pre-1.0 bi-weekly updates that proved so useful. Source code for Jackpot's IDE integration and rules editor modules will be made available in the NetBeans CVS repository during this period.

  • A beta release of Jackpot, with the new UI and richer command suite, is targeted for the JavaOne 2006 timeframe. Because this will be a more stable release, it can be distributed via the NetBeans Beta Update Center and run on NetBeans 5.0 or 5.5.

  • Jackpot 1.0 in early fall 2006, depending upon feedback and meeting normal release requirements.
I want to thank you for (im)patiently waiting, and look forward to your comments, suggestions, and criticism once Jackpot is available.

Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Do you have a link to the Jackpot site for more info?

    Posted by: wiverson on March 03, 2006 at 12:14 PM

  • Why, yes I do. ;-) It's not too hard to figure out if you are familiar with the NetBeans site, but there isn't much content there yet. One of the big tasks this week is to take the content from the internal Jackpot site, clean it up and convert it to follow the NetBeans style guidelines. I'll post a new blog entry when everything is available.

    Here is the Jackpot home page.

    Posted by: tball on March 03, 2006 at 01:08 PM

  • I'm still not sure I get what Jackpot is. What kind of cool code transformations do you have in mind (even if you haven't implemented them yet)? Is it at all similar to IDEA's "Structural replace"?

    Posted by: spiff on March 03, 2006 at 04:29 PM

  • Tom--does the dependency on changes to Javac mean that Jackpot will be a Mustang-only technology? Also, what do you envision that can be done with Jackpot that can't be done with, say, the existing refactoring tools on the market (some of which are pretty impressive, like RefactorIt). Thanks, Patrick

    Posted by: pdoubleya on March 04, 2006 at 06:44 AM

  • No, Jackpot will run on Tiger (Java 5) and can operate on any Java source by using the NetBeans project's source level. In the future I'll post my take on how Jackpot compares to similar tools (not the official marketing stance, of course!), as I am well aware that there are some powerful alternatives. Java tools sure have changed in ten years, haven't they?

    Posted by: tball on March 04, 2006 at 08:27 AM

  • Yes, cool, perfect ...
    What the hell Jackpot is?

    Posted by: pavelt on March 06, 2006 at 04:42 AM

  • I'm just wondering whether Jackpot can be used as the refactoring engine in the first place....
    The other thing that I'd probably investigate would be to provide some sort of "auto correction" feature with PMD and FindBugs suggestions....

    Posted by: alexlamsl on March 06, 2006 at 09:07 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds