Disclaimer: I work for IT Mill Ltd
One day I decided that I’d had enough of writing code like this:
Panel googlePanel = new Panel("Google");
OrderedLayout layout = new OrderedLayout(OrderedLayout.ORIENTATION_HORIZONTAL);
TextField searchField = new TextField("");
layout.addComponent(searchField);
Button searchButton = new Button("Search");
layout.addComponent(searchButton);
Button luckyButton = new Button("I'm feeling lucky");
layout.addComponent(luckyButton);
That piece of code builds a panel containing a Google-like search field and buttons using IT Mill Toolkit. Don’t get me wrong, I think IT Mill Toolkit is great for the kinds of software we do at work! You can quickly build a full AJAX-y Web 2.0 experience (buzzword galore!) without needing to touch any JavaScript or CSS. 1
My biggest grief with the above code is it’s verbosity and convoluted logic when trying to imagine what it will look like on screen. It’s really hard to follow and imagine that the result will look like this

And that is a simple example. More complex layouts can be exhausting to dream up.
So I sat down and started to hack away on a small JRuby application using the IT Mill Toolkit. What a joy! A dynamic, highly expressive and productive language like Ruby combined with all the strengths of IT Mill Toolkit is just a breath of fresh air!
The result? I present to you: Toolkitr

No more verbosity, the Java code required to produce the “Google-panel” can now be generated from this
panel ("Google") {
horizontal {
text_field("")
button("Search")
button("I'm feeling lucky")
}
}
If you are required to use Java, as I mostly am, the generated code can be cut-n-pasted into your project. Just like that.
I’ve been using this for a few months 2 on different projects now and I can tell you that my productivity when coding up new user interfaces has skyrocketed! The code/deploy/test cycle has gone from 2.5 minutes on my largest project (it’s hueg!) to as fast as I can type and click a button.
To play with Toolkitr yourself, just grab the WAR, deploy it in Tomcat/Jetty/whatever, point your browser to http://localhost:8080/Toolkitr and off you go.
Do keep in mind that this is beta software (thats classic :D) and a bit of a hack if I may say so myself, but it works.
If someone’s interested, I’ll post the syntax rules and more detailed information about Toolkitr.
So what next? An entire application framework based on this? Should we call it Toolkit on Rails? :)
(1) You do have to touch CSS if you want to customize the look of the application though. The default theme, however, is very good looking thanks to Jouni, so for basic applications there’s no need to theme.
(2) Yes, I am a bit lazy with the blogging ;)