Kicking the tyres
Wow - been getting a bit "10,000 foot view" recently. Back to good ol' Java. In particular, Spring Roo.
I had a bit of an idea for a basic database-backed web app, but the thought of all that XML-fiddling, boilerplate Java rubbish just to get something going was turning me right off. I'll admit, I seriously contemplated trying Ruby on Rails to get started ... then I remembered a colleague mentioning Roo as the Java answer to Rails. Java, Spring, Spring MVC and Maven best practices all driven from a console app?! Had to be worth a try!
I ran through the "pizza" sample, doing the setup for my app at the same time. Apart from a hiccup with my local Nexus instance (I always forget to add new repositories to the public Group!), it was super-smooth.
What struck me was how I was able to concentrate on my domain objects (aka entities in Roo-speak) and how they interacted. In four lines, I can make a typical tested, persisted POJO with a full CRUD web GUI!:
roo> entity --class ~.DescribedThing --testAutomatically roo> field string --fieldName name --notNull roo> field string --fieldName description --notNull roo> web mvc all --package ~.web
It's really fun to "meta-program" like this. Less boilerplate, fewer typos (thanks Tab auto-complete!) and more designing.
I'm going to continue developing Roo-style for as far as it will take me and see how it goes.