Spring Roo is a lightweight developer tool for rapid java application development. The recent Spring Roo 1.1.0.M1 release allows developers to build working web applications – complete with a Google Web Toolkit (GWT) front end.
I tried a quick prototype using Spring Roo 1.1.0.M1 release. My initial impression was it was good for prototype mode and speed starting new applications, which can be extended further. I still need to understand its scope, on how they plan to use it for existing applications which already uses Spring or for enterprise application integration. I feel with Spring Roo , they have templatized common patterns further,created some best practices for code generation, like creating entity persistence object using JPA, web ui , unit test generation , automation QA test using Selenium and build projects.
In my view ,rapid application development in Java is not new , though it was limited, for instance using tools to create persistence ORM objects , creating dynamic UI from domain objects but it was not collectively applied to entire product development. Since Spring already had an abstraction layer on various underlying technology , next step they thought was to abstract the template even further using Roo. As I mentioned earlier, the scope needs to be defined , I can generate something quickly but then it needs to be customized heavily based on various requirements – like Organizations User interfaces guidelines , security , integration with other systems and so on. Once you have customized it, how do you sync up with the generated code if you need to make changes.
Typically I haven’t seen one to one map between a screen and a domain object , the screen would have various other layouts and may need to pull data from combination of sources. There are various teams in project doing different tasks – User interfaces , services integration , writing data queries (stored procedure), writing persistence code , which might be working parallelly and how does the rapid development works in the case. There are many challenges in enterprise application development and my initial impression with Spring Roo rapid development framework is the usage – it is limited to certain scopes and not the entire enterprise application.