Alex Miller lives in St. Louis. He writes code for a living and currently work for Terracotta Tech on the Terracotta open-source Java clustering product. Prior to Terracotta he worked at BEA Systems and was Chief Architect at MetaMatrix. His main language for the last decade has been Java, although Alex have been paid to program in several languages over the years (C++, Python, Pascal, etc). Alex has posted 43 posts at DZone. You can read more from them at their website. View Full User Profile

Interview: Stefan Schmidt on Spring Roo

09.03.2009
| 9176 views |
  • submit to reddit

The Strange Loop conference is a unique software developer conference in St. Louis featuring excellent speakers and a wide variety of languages and technologies.  This interview with Stefan discusses his Strange Loop talk "Extreme Web Productivity with Spring Roo"Dr. Stefan Schmidt (@schmidtstefan) has been working with SpringSource for almost two years and has been a key developer on the Spring Roo team in Sydney, Australia. Spring Roo is a project designed to assist you in creating fully working Java applications based on Spring technologies.

Strange Loop: Stefan, can you start by telling me a little about the motivation for this project? What problem is Roo trying to solve?

Stefan: Roo's mission statement is to fundamentally and sustainably improve Java developer productivity without compromising engineering integrity or flexibility. It delivers these productivity gains for any type of application, and even a developer with limited experience can easily create a complete application in just 10 minutes! Importantly, Roo achieves this with absolutely no lock-in and allows you to remove Roo if you wish with about 4 mouse clicks.

Strange Loop: You say that it's possible to spin up an application in 10 minutes. What is included in a skeleton application like that? Does Spring primarily handle the plumbing or can it guide you through custom parts like building a domain model?

Stefan: Spring Roo helps dealing with boilerplate code and configuration artefacts by managing them on behalf of the developer. For example, with the help of Spring Roo the developer can create a best practice Spring Framework 3 application which includes complete JPA-based persistence, RESTful controllers, XML compliant JSPs, Tiles-based templating, internationalised messages, Dojo integration, front- and back-end validation, JMS, email, automated tests and many more features. The Spring Shell (which is included with Roo) guides the developer through the process of creating the application by offering advanced command completion and the built-in intelligent hinting system. This makes it really easy and natural to use Roo.

Strange Loop: It seems that Spring Roo is designed to be a pluggable architecture. What kinds of plugins are people working on inside and outside of SpringSource? Would it make sense for enterprises to create their own plugins to follow their own project templates?

Stefan: There are quite a number of new add-ons currently being developed both inside and outside of SpringSource. The functionality reaches from enhancing features of existing add-ons all the way to add-ons which offer integration with other open source projects.

Strange Loop: With respect to tooling, how does the command line support differ from that provided in Eclipse and Spring IDEs?

Stefan: Roo can be used via the standalone command-line shell or SpringSource Tool Suite (STS). Both share the same internals and expose the same set of Roo commands. The STS version ensures developers who prefer to work solely within the STS IDE can enjoy full Roo services with some neat IDE-like features such as CTRL + R dispatch of a Roo command. The command line version allows you to build an app without even loading any IDE, including deploying it to an embedded Tomcat, running Junit and Selenium tests, and building deployment artefacts like WARs.

Strange Loop: Is there an opportunity for working with languages other than Java with Spring Roo?

Stefan: Java is today's most popular programming language, with extremely good tooling support and runtime characteristics. With Roo you can enjoy a significantly productive Java-based programming experience and not need to learn a new language, plus your resultant applications will run extremely quickly and have absolutely no dependency on Roo. For these reasons Java is central to Roo's mission statement and there are no present plans to support other JVM languages. Looking beyond the JVM, we're actively planning Roo support for languages such as ActionScript and JavaScript.

Strange Loop: What does the future roadmap hold for Spring Roo?

Stefan: We have a lot of very interesting ideas for Spring Roo. Among other new features we plan to offer support for fourth generation front-ends like Flex and GWT as well as integration with Spring projects such as Spring Integration, Spring Batch, and improved Spring Web Flow support etc. Stay tuned!

Strange Loop: Thanks, Stefan! I look forward to your talk at Strange Loop and checking out Spring Roo!

Find out more about Strange Loop:

 

References
Published at DZone with permission of its author, Alex Miller. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)