Scooter Framework; Java Made CRUD And Simple
The Scooter framework which recently released version 1.0 RC2 earlier this year, offers a Rails like, RESTful web platform for Java developers using Java. InfoQ spoke with John Chen, creator of the Scooter Framework project
The development of the Scooter framework has been inspired by the simplicity of use exhibited in Ruby on Rails. The Scooter framework presents an alternative for developing Java web applications using Struts, Spring and Hibernate, with a CRUD generator and the ActiveRecord as key features. The intent of the Scooter framework is that XML editing and annotations are not required, and that only basic knowledge in Servlet/JSP and JDK1.4 is necessary.
The final release for the Scooter 1.0 version is currently planned for June-July this year.
The current release features:
- Runtime Configuration: Change all configuration property files on the fly, including log4j.properties.
- Runtime Compilation: Edit Java source files and refresh the browser to see changes immediately.
- Runtime Schema Change: Detect database schema changes automatically.
- Flexible Controller: A POJO-like controller, before/after/skip filters, flash and global scopes, pagination support etc.
- Active Record: Support for belongsTo, hasOne, hasMany, hasManyThrough, polymorphic associations, nested include, cascade, counter cache, actAsTaggable, etc.
- Enterprise ORM: Support auto detecting composite primary key, named sql, views, functions, stored procedures, multiple databases, transactions, reference data cache, etc.
- I18N: Support internationalization at all layers of the framework.
- Web 2.0 support: AJAX, Markdown, Taggable interface.
- RESTful Web Services: Automatic RESTify data store.
- Routes: Configurable ways of controlling web access to data, resources and nested resources.
- Other features: Code generator, code statistics, auto CRUD, auto REST, data browser, logging, embedded-web server etc.
Other features planned for the 1.0 version include:
Future plans for Scooter:
- Web server performance enhancements
- Development of a dev center module: a web-based dev center for editing java code
- Documentation and help for developers
- A View template engine: The current view is based on JSP. The new template engine will allow developers to write view code once and run in multiple platforms such as browser, iPhone, iPad, Android, etc.
- Integrate with java open-source tools: JasperReport, Lucene, JQuery, etc.
- Add support for OpenID, Captcha, RSS, JSON
Interesting but what about the Play! framework?
I'm wondering how this one compete with the Play! framework as it seems more focused on the JEE aspect while the Play! one is acting more as a stateless REST alternative to the traditional JEE infrastructure that heavily rely on sessions.
How does it compare with Grails
Yeah, okay, but...
Reminds me of when Java was young, and people were complaining because it wasn't a straight copy of C++. It is what it is. Choose a tool that does what you need. No need to warp some other tool.
Re: Yeah, okay, but...
frameworks and libraries that java has too. How should I do?
IMHO I think the only one good thing in RoR world is RoR itself.
Re: How does it compare with Grails
(and yes, I know I can develop Grails services in Java...)
Re: Yeah, okay, but...
But if I want Java as a language, neither Rails nor Grails are a choice.
Re: Interesting but what about the Play! framework?
What I find a bit odd is that neither the framework's page nor the company page of "Amazing Force" reveils any real info on who's behind that project.
So as far as this goes, Play would be a better choice in that area because it already has multiple developers and it's clear who's behind it.
How does it compare to Stripes ?
Arun P R
Re: Yeah, okay, but...
2. Ruby/Rails runs on JRuby
Life is filled with choices.
Great work but it's time to move on
While I admire his intelligent and persistent in using Java, I think it's time to move on.
For those of you who said that "yeah, Rails/Grails is not Java and if the project requires Java, we have no choice", what makes you think that you have the choice to use this framework and not limited to pure JEE, Spring, Struts, Struts2 or even (get ready for the horror) J2EE (because the of IT setups still using the old WebSphere).
Developing software is not just writing code, but involving picking your IDE, writing unit-tests, implementing a solid build/continuus integration/SCM processes, and dealing with the mindset of developers for that particular platform. My experience using Java for (web) application development hasn't been smooth. Most of the time, I had to deal with complexities of the frameworks and tools. I began to think that maybe Java is better off for writing frameworks (Spring, Struts2, EJB) or system-programming (Hadoop, HBase) and not (web) application programming.