Convention over Configuration In The Persistence Layer Helps Only Green Field Projects
My last post "You shouldn't compare Rails to Java EE 5, or
JavaScript/Ruby to the Java language..." caused an interesting
discussion in the artima
forum. Bill Venners discusses the question whether "Convention Over
Configuration" is only interesting for green fields projects.
In general Convention Over Configuration is of course interesting for
all projects. In the new Java EE 5 convention over configuration
together with dependency injection greatly simplifies the programming
model. So already existing resources (JMS, DataSources, JCA), can be
injected without the need for additional deployment descriptors. This
feature is very useful and powerful for all projects (I will cover it
in one of my next posts in detail).
On the other hand using the database as a metadata for UI generation is
only useful for green field projects with no exlicit policies for the
design and layout of the database (what is very unlikely, at least in
bigger companies :-)). Especially this great feature in Ruby On Rails
can be only used for new and very agile projects. In case you have
already an existing database, it is probably not designed for this
purpose, so you have still to override the default and provide your
configuration (OR-mapping).
In this case Convention Over Configuration has no advantage and could
become even dangerous (in case someone forgets to provide the mapping).
If I review my last projects, I had often to deal with existing
databases or strange enterprise policies regarding the naming of
tables, columns or regarding the normalisation etc.
So just use the right technology for the challenges in your projects - there are still no silver bullets out there :-).
Very true indeed. The Rails/Trails/Grails applications only cover an specific niche, JEE aplications cover another and some times both niches overlap in some place.
Posted by Andres Almiray on September 02, 2006 at 03:06 AM CEST #
Hmmm, you're apparently only vaguely familiar with Grails. With Grails you can reuse existing Java classes mapped with Hibernate. You can also create new Java classes, map them with Hibernate to an existing database and use them with Grails.
Grails != Ruby on Rails
Posted by Steven Devijver on September 05, 2006 at 06:52 PM CEST #
It means that Grails will be RoR killer. Ruby and R0R is still nothing to be compared with Java
Posted by pcdinh on September 05, 2006 at 09:22 PM CEST #